From f3a68a04fcd2e186ac1c4d19cc337a4659e1696a Mon Sep 17 00:00:00 2001 From: Haotien Hsu Date: Mon, 8 May 2023 18:46:14 +0800 Subject: [PATCH 001/418] Test: Don't check results when no type-c ports For those devices without type-c ports, the queryPortStatus test is always failed.Because there are no PortStatus for the callbacks. Adding an additional condition branch to skip the results checking when there are no PortStatus. Bug: 281643316 (https://partnerissuetracker.corp.google.com/issues/281643316) Signed-off-by: Haotien Hsu (cherry picked from https://android-review.googlesource.com/q/commit:392d530a649b709187fe8bf53512ef234051662f) Merged-In: Ibf599038b542d5d81a2af9ab2097f2f868be0447 Change-Id: Ibf599038b542d5d81a2af9ab2097f2f868be0447 --- usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp b/usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp index 19830a6b8a..0883de2349 100644 --- a/usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp +++ b/usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp @@ -95,6 +95,7 @@ class UsbCallback : public ::testing::VtsHalHidlTargetCallbackBaseWaitForCallback(kCallbackNameNotifyPortStatusChange_1_1); EXPECT_TRUE(res.no_timeout); EXPECT_EQ(2, res.args->last_usb_cookie); - EXPECT_EQ(PortMode::NONE, res.args->usb_last_port_status.status.currentMode); - EXPECT_EQ(PortMode::NONE, res.args->usb_last_port_status.status.supportedModes); - EXPECT_EQ(Status::SUCCESS, res.args->usb_last_status); + // if there are no type-c ports, skip below checks + if (!res.args->usb_last_port_status.status.portName.empty()) { + EXPECT_EQ(PortMode::NONE, res.args->usb_last_port_status.status.currentMode); + EXPECT_EQ(PortMode::NONE, res.args->usb_last_port_status.status.supportedModes); + EXPECT_EQ(Status::SUCCESS, res.args->usb_last_status); + } } GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(UsbHidlTest); INSTANTIATE_TEST_SUITE_P( -- GitLab From cef01a32a1bafd450adcbc733920f31e52b209dc Mon Sep 17 00:00:00 2001 From: Hang Lu Date: Wed, 30 Aug 2023 18:27:25 +0800 Subject: [PATCH 002/418] Remove the active deletion action of callbacks The active deletion action will cause binder blocked in some corner cases. As serviceDied will take care of its deletion, remove the active deletion has no side effect and could fix the issue. Test: none Bug: 296817256 Change-Id: Ib30b3910202e6bbd86ac59e0e69fbeb0a890dd38 --- health/aidl/default/Health.cpp | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/health/aidl/default/Health.cpp b/health/aidl/default/Health.cpp index 1d8cc132a7..352a658fb8 100644 --- a/health/aidl/default/Health.cpp +++ b/health/aidl/default/Health.cpp @@ -235,15 +235,6 @@ std::optional Health::ShouldKeepScreenOn() { return healthd_config_->screen_on(&props); } -namespace { -bool IsDeadObjectLogged(const ndk::ScopedAStatus& ret) { - if (ret.isOk()) return false; - if (ret.getStatus() == ::STATUS_DEAD_OBJECT) return true; - LOG(ERROR) << "Cannot call healthInfoChanged on callback: " << ret.getDescription(); - return false; -} -} // namespace - // // Subclass helpers / overrides // @@ -287,8 +278,10 @@ ndk::ScopedAStatus Health::registerCallback(const std::shared_ptrhealthInfoChanged(health_info); IsDeadObjectLogged(res)) { - (void)unregisterCallback(callback); + auto res = callback->healthInfoChanged(health_info); + if (!res.isOk()) { + LOG(DEBUG) << "Cannot call healthInfoChanged:" << res.getDescription() + << ". Do nothing here if callback is dead as it will be cleaned up later."; } return ndk::ScopedAStatus::ok(); } @@ -335,13 +328,13 @@ ndk::ScopedAStatus Health::update() { void Health::OnHealthInfoChanged(const HealthInfo& health_info) { // Notify all callbacks std::unique_lock lock(callbacks_lock_); - // is_dead notifies a callback and return true if it is dead. - auto is_dead = [&](const auto& linked) { + for (const auto& linked : callbacks_) { auto res = linked->callback()->healthInfoChanged(health_info); - return IsDeadObjectLogged(res); - }; - auto it = std::remove_if(callbacks_.begin(), callbacks_.end(), is_dead); - callbacks_.erase(it, callbacks_.end()); // calls unlinkToDeath on deleted callbacks. + if (!res.isOk()) { + LOG(DEBUG) << "Cannot call healthInfoChanged:" << res.getDescription() + << ". Do nothing here if callback is dead as it will be cleaned up later."; + } + } lock.unlock(); // Let HalHealthLoop::OnHealthInfoChanged() adjusts uevent / wakealarm periods -- GitLab From f43406a5a7481f2cfac53805f548aa86b2e664f4 Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Wed, 11 Jan 2023 13:27:26 +0000 Subject: [PATCH 003/418] Add check_feature helper Test: VtsAidlKeyMintTargetTest (cherry picked from commit 3d2ba0a137debcbf48a4efdd2016fe132293b6bc) (cherry picked from commit b7d44a2eefc18bdb3fab322813613b564240eff5) (cherry picked from https://android-review.googlesource.com/q/commit:352c383e0d9b6bbf98fd54afc63821e08cf6f9ee) Merged-In: I4a5b2a41172c15ae29efb5b177eb86cea5527b4e Change-Id: I4a5b2a41172c15ae29efb5b177eb86cea5527b4e --- .../keymint/aidl/vts/functional/Android.bp | 1 + .../vts/functional/KeyMintAidlTestBase.cpp | 24 +++++++++++++++++++ .../aidl/vts/functional/KeyMintAidlTestBase.h | 1 + 3 files changed, 26 insertions(+) diff --git a/security/keymint/aidl/vts/functional/Android.bp b/security/keymint/aidl/vts/functional/Android.bp index 77eea8afd6..2de19d5f32 100644 --- a/security/keymint/aidl/vts/functional/Android.bp +++ b/security/keymint/aidl/vts/functional/Android.bp @@ -30,6 +30,7 @@ cc_defaults { "VtsHalTargetTestDefaults", ], shared_libs: [ + "libbinder", "libbinder_ndk", "libcrypto", ], diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp index 20324117b9..c81d9a02d3 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -1679,6 +1680,29 @@ void p256_pub_key(const vector& coseKeyData, EVP_PKEY_Ptr* signingKey) *signingKey = std::move(pubKey); } +// Check whether the given named feature is available. +bool check_feature(const std::string& name) { + ::android::sp<::android::IServiceManager> sm(::android::defaultServiceManager()); + ::android::sp<::android::IBinder> binder(sm->getService(::android::String16("package_native"))); + if (binder == nullptr) { + GTEST_LOG_(ERROR) << "getService package_native failed"; + return false; + } + ::android::sp<::android::content::pm::IPackageManagerNative> packageMgr = + ::android::interface_cast<::android::content::pm::IPackageManagerNative>(binder); + if (packageMgr == nullptr) { + GTEST_LOG_(ERROR) << "Cannot find package manager"; + return false; + } + bool hasFeature = false; + auto status = packageMgr->hasSystemFeature(::android::String16(name.c_str()), 0, &hasFeature); + if (!status.isOk()) { + GTEST_LOG_(ERROR) << "hasSystemFeature('" << name << "') failed: " << status; + return false; + } + return hasFeature; +} + } // namespace test } // namespace aidl::android::hardware::security::keymint diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h index ec3fcf6a3e..890bb56ff9 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h @@ -346,6 +346,7 @@ vector make_name_from_str(const string& name); void check_maced_pubkey(const MacedPublicKey& macedPubKey, bool testMode, vector* payload_value); void p256_pub_key(const vector& coseKeyData, EVP_PKEY_Ptr* signingKey); +bool check_feature(const std::string& name); AuthorizationSet HwEnforcedAuthorizations(const vector& key_characteristics); AuthorizationSet SwEnforcedAuthorizations(const vector& key_characteristics); -- GitLab From 06343d55fe0cb4c9a237c138a19731f623ced8cc Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Thu, 2 Nov 2023 13:33:54 -0700 Subject: [PATCH 004/418] health: Remove 2.0 HAL implementation. Remove HIDL 2.0 service implementation and unused helper libraries. Test: TH Bug: 308450739 Change-Id: I8e1eb743d978315ae9b5b516d3e2e9dc6151d2c2 --- health/2.0/README.md | 184 +---------- health/2.0/default/Android.bp | 72 ----- health/2.0/default/Health.cpp | 306 ------------------ health/2.0/default/HealthImplDefault.cpp | 69 ---- health/2.0/default/healthd_common_adapter.cpp | 77 ----- health/2.0/default/include/health2/Health.h | 79 ----- health/2.0/utils/README.md | 22 -- .../libhealthhalutils/HealthHalUtils.cpp | 30 +- health/2.0/utils/libhealthservice/Android.bp | 38 --- .../libhealthservice/HealthServiceCommon.cpp | 93 ------ .../include/health2/service.h | 22 -- .../utils/libhealthstoragedefault/Android.bp | 38 --- .../StorageHealthDefault.cpp | 24 -- .../include/StorageHealthDefault.h | 34 -- 14 files changed, 10 insertions(+), 1078 deletions(-) delete mode 100644 health/2.0/default/Android.bp delete mode 100644 health/2.0/default/Health.cpp delete mode 100644 health/2.0/default/HealthImplDefault.cpp delete mode 100644 health/2.0/default/healthd_common_adapter.cpp delete mode 100644 health/2.0/default/include/health2/Health.h delete mode 100644 health/2.0/utils/libhealthservice/Android.bp delete mode 100644 health/2.0/utils/libhealthservice/HealthServiceCommon.cpp delete mode 100644 health/2.0/utils/libhealthservice/include/health2/service.h delete mode 100644 health/2.0/utils/libhealthstoragedefault/Android.bp delete mode 100644 health/2.0/utils/libhealthstoragedefault/StorageHealthDefault.cpp delete mode 100644 health/2.0/utils/libhealthstoragedefault/include/StorageHealthDefault.h diff --git a/health/2.0/README.md b/health/2.0/README.md index 8a7c922e14..1c636c74cd 100644 --- a/health/2.0/README.md +++ b/health/2.0/README.md @@ -1,181 +1,7 @@ -# Implement the 2.1 HAL instead! +# Deprecated. -It is strongly recommended that you implement the 2.1 HAL directly. See -`hardware/interfaces/health/2.1/README.md` for more details. +Health HIDL HAL 2.0 is deprecated and subject to removal. Please +implement the Health AIDL HAL instead. -# Upgrading from Health 1.0 HAL - -1. Remove `android.hardware.health@1.0*` from `PRODUCT_PACKAGES` - in `device///device.mk` - -1. If the device does not have a vendor-specific `libhealthd` AND does not - implement storage-related APIs, just do the following: - - ```mk - PRODUCT_PACKAGES += android.hardware.health@2.0-service - ``` - - Otherwise, continue to the next step. - -1. Create directory - `device///health` - -1. Create `device///health/Android.bp` - (or equivalent `device///health/Android.mk`) - - ```bp - cc_binary { - name: "android.hardware.health@2.0-service.", - init_rc: ["android.hardware.health@2.0-service..rc"], - proprietary: true, - relative_install_path: "hw", - srcs: [ - "HealthService.cpp", - ], - - cflags: [ - "-Wall", - "-Werror", - ], - - static_libs: [ - "android.hardware.health@2.0-impl", - "android.hardware.health@1.0-convert", - "libhealthservice", - "libbatterymonitor", - ], - - shared_libs: [ - "libbase", - "libcutils", - "libhidlbase", - "libutils", - "android.hardware.health@2.0", - ], - - header_libs: ["libhealthd_headers"], - - overrides: [ - "healthd", - ], - } - ``` - - 1. (recommended) To remove `healthd` from the build, keep "overrides" section. - 1. To keep `healthd` in the build, remove "overrides" section. - -1. Create `device///health/android.hardware.health@2.0-service..rc` - - ```rc - service vendor.health-hal-2-0 /vendor/bin/hw/android.hardware.health@2.0-service. - class hal - user system - group system - capabilities WAKE_ALARM - file /dev/kmsg w - ``` - -1. Create `device///health/HealthService.cpp`: - - ```c++ - #include - int main() { return health_service_main(); } - ``` - -1. `libhealthd` dependency: - - 1. If the device has a vendor-specific `libhealthd.`, add it to static_libs. - - 1. If the device does not have a vendor-specific `libhealthd`, add the following - lines to `HealthService.cpp`: - - ```c++ - #include - void healthd_board_init(struct healthd_config*) {} - - int healthd_board_battery_update(struct android::BatteryProperties*) { - // return 0 to log periodic polled battery status to kernel log - return 0; - } - ``` - -1. Storage related APIs: - - 1. If the device does not implement `IHealth.getDiskStats` and - `IHealth.getStorageInfo`, add `libhealthstoragedefault` to `static_libs`. - - 1. If the device implements one of these two APIs, add and implement the - following functions in `HealthService.cpp`: - - ```c++ - void get_storage_info(std::vector& info) { - // ... - } - void get_disk_stats(std::vector& stats) { - // ... - } - ``` - -1. Update necessary SELinux permissions. For example, - - ``` - # device///sepolicy/vendor/file_contexts - /vendor/bin/hw/android\.hardware\.health@2\.0-service\. u:object_r:hal_health_default_exec:s0 - - # device///sepolicy/vendor/hal_health_default.te - # Add device specific permissions to hal_health_default domain, especially - # if a device-specific libhealthd is used and/or device-specific storage related - # APIs are implemented. - ``` - -1. Implementing health HAL in recovery. The health HAL is used for battery -status checks during OTA for non-A/B devices. If the health HAL is not -implemented in recovery, `is_battery_ok()` will always return `true`. - - 1. If the device does not have a vendor-specific `libhealthd`, nothing needs to - be done. A "backup" implementation is provided in - `android.hardware.health@2.0-impl-default`, which is always installed to recovery - image by default. - - 1. If the device does have a vendor-specific `libhealthd`, implement the following - module and include it in `PRODUCT_PACKAGES` (replace `` with appropriate - strings): - - ```bp - // Android.bp - cc_library_shared { - name: "android.hardware.health@2.0-impl-", - recovery_available: true, - relative_install_path: "hw", - static_libs: [ - "android.hardware.health@2.0-impl", - "libhealthd." - // Include the following or implement device-specific storage APIs - "libhealthstoragedefault", - ], - srcs: [ - "HealthImpl.cpp", - ], - overrides: [ - "android.hardware.health@2.0-impl-default", - ], - } - ``` - - ```c++ - // HealthImpl.cpp - #include - #include - using android::hardware::health::V2_0::IHealth; - using android::hardware::health::V2_0::implementation::Health; - extern "C" IHealth* HIDL_FETCH_IHealth(const char* name) { - const static std::string providedInstance{"default"}; - if (providedInstance != name) return nullptr; - return Health::initInstance(&gHealthdConfig).get(); - } - ``` - - ```mk - # device.mk - PRODUCT_PACKAGES += android.hardware.health@2.0-impl- - ``` +See [`hardware/interfaces/health/aidl/README.md`](../aidl/README.md) for +details. diff --git a/health/2.0/default/Android.bp b/health/2.0/default/Android.bp deleted file mode 100644 index 73cd553058..0000000000 --- a/health/2.0/default/Android.bp +++ /dev/null @@ -1,72 +0,0 @@ -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "hardware_interfaces_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["hardware_interfaces_license"], -} - -cc_defaults { - name: "android.hardware.health@2.0-impl_defaults", - - recovery_available: true, - cflags: [ - "-Wall", - "-Werror", - ], - - shared_libs: [ - "libbase", - "libhidlbase", - "liblog", - "libutils", - "libcutils", - "android.hardware.health@2.0", - ], - - static_libs: [ - "libbatterymonitor", - "android.hardware.health@1.0-convert", - ], -} - -// Helper library for implementing health HAL. It is recommended that a health -// service or passthrough HAL link to this library. -cc_library_static { - name: "android.hardware.health@2.0-impl", - defaults: ["android.hardware.health@2.0-impl_defaults"], - - vendor_available: true, - srcs: [ - "Health.cpp", - "healthd_common_adapter.cpp", - ], - - whole_static_libs: [ - "libhealthloop", - ], - - export_include_dirs: ["include"], -} - -// Default passthrough implementation for recovery. Vendors can implement -// android.hardware.health@2.0-impl-recovery- to customize the behavior -// of the HAL in recovery. -// The implementation does NOT start the uevent loop for polling. -cc_library_shared { - name: "android.hardware.health@2.0-impl-default", - defaults: ["android.hardware.health@2.0-impl_defaults"], - - recovery_available: true, - relative_install_path: "hw", - - static_libs: [ - "android.hardware.health@2.0-impl", - "libhealthstoragedefault", - ], - - srcs: [ - "HealthImplDefault.cpp", - ], -} diff --git a/health/2.0/default/Health.cpp b/health/2.0/default/Health.cpp deleted file mode 100644 index 65eada85d0..0000000000 --- a/health/2.0/default/Health.cpp +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#define LOG_TAG "android.hardware.health@2.0-impl" -#include - -#include -#include -#include - -#include -#include - -using HealthInfo_1_0 = android::hardware::health::V1_0::HealthInfo; -using android::hardware::health::V1_0::hal_conversion::convertFromHealthInfo; - -extern void healthd_battery_update_internal(bool); - -namespace android { -namespace hardware { -namespace health { -namespace V2_0 { -namespace implementation { - -sp Health::instance_; - -Health::Health(struct healthd_config* c) { - // TODO(b/69268160): remove when libhealthd is removed. - healthd_board_init(c); - battery_monitor_ = std::make_unique(); - battery_monitor_->init(c); -} - -// Methods from IHealth follow. -Return Health::registerCallback(const sp& callback) { - if (callback == nullptr) { - return Result::SUCCESS; - } - - { - std::lock_guard lock(callbacks_lock_); - callbacks_.push_back(callback); - // unlock - } - - auto linkRet = callback->linkToDeath(this, 0u /* cookie */); - if (!linkRet.withDefault(false)) { - LOG(WARNING) << __func__ << "Cannot link to death: " - << (linkRet.isOk() ? "linkToDeath returns false" : linkRet.description()); - // ignore the error - } - - return updateAndNotify(callback); -} - -bool Health::unregisterCallbackInternal(const sp& callback) { - if (callback == nullptr) return false; - - bool removed = false; - std::lock_guard lock(callbacks_lock_); - for (auto it = callbacks_.begin(); it != callbacks_.end();) { - if (interfacesEqual(*it, callback)) { - it = callbacks_.erase(it); - removed = true; - } else { - ++it; - } - } - (void)callback->unlinkToDeath(this).isOk(); // ignore errors - return removed; -} - -Return Health::unregisterCallback(const sp& callback) { - return unregisterCallbackInternal(callback) ? Result::SUCCESS : Result::NOT_FOUND; -} - -template -void getProperty(const std::unique_ptr& monitor, int id, T defaultValue, - const std::function& callback) { - struct BatteryProperty prop; - T ret = defaultValue; - Result result = Result::SUCCESS; - status_t err = monitor->getProperty(static_cast(id), &prop); - if (err != OK) { - LOG(DEBUG) << "getProperty(" << id << ")" - << " fails: (" << err << ") " << strerror(-err); - } else { - ret = static_cast(prop.valueInt64); - } - switch (err) { - case OK: - result = Result::SUCCESS; - break; - case NAME_NOT_FOUND: - result = Result::NOT_SUPPORTED; - break; - default: - result = Result::UNKNOWN; - break; - } - callback(result, static_cast(ret)); -} - -Return Health::getChargeCounter(getChargeCounter_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_CHARGE_COUNTER, 0, _hidl_cb); - return Void(); -} - -Return Health::getCurrentNow(getCurrentNow_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_CURRENT_NOW, 0, _hidl_cb); - return Void(); -} - -Return Health::getCurrentAverage(getCurrentAverage_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_CURRENT_AVG, 0, _hidl_cb); - return Void(); -} - -Return Health::getCapacity(getCapacity_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_CAPACITY, 0, _hidl_cb); - return Void(); -} - -Return Health::getEnergyCounter(getEnergyCounter_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_ENERGY_COUNTER, 0, _hidl_cb); - return Void(); -} - -Return Health::getChargeStatus(getChargeStatus_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_BATTERY_STATUS, BatteryStatus::UNKNOWN, _hidl_cb); - return Void(); -} - -Return Health::update() { - if (!healthd_mode_ops || !healthd_mode_ops->battery_update) { - LOG(WARNING) << "health@2.0: update: not initialized. " - << "update() should not be called in charger"; - return Result::UNKNOWN; - } - - // Retrieve all information and call healthd_mode_ops->battery_update, which calls - // notifyListeners. - battery_monitor_->updateValues(); - const HealthInfo_1_0& health_info = battery_monitor_->getHealthInfo_1_0(); - struct BatteryProperties props; - convertFromHealthInfo(health_info, &props); - bool log = (healthd_board_battery_update(&props) == 0); - if (log) { - battery_monitor_->logValues(); - } - healthd_mode_ops->battery_update(&props); - bool chargerOnline = battery_monitor_->isChargerOnline(); - - // adjust uevent / wakealarm periods - healthd_battery_update_internal(chargerOnline); - - return Result::SUCCESS; -} - -Return Health::updateAndNotify(const sp& callback) { - std::lock_guard lock(callbacks_lock_); - std::vector> storedCallbacks{std::move(callbacks_)}; - callbacks_.clear(); - if (callback != nullptr) { - callbacks_.push_back(callback); - } - Return result = update(); - callbacks_ = std::move(storedCallbacks); - return result; -} - -void Health::notifyListeners(HealthInfo* healthInfo) { - std::vector info; - get_storage_info(info); - - std::vector stats; - get_disk_stats(stats); - - int32_t currentAvg = 0; - - struct BatteryProperty prop; - status_t ret = battery_monitor_->getProperty(BATTERY_PROP_CURRENT_AVG, &prop); - if (ret == OK) { - currentAvg = static_cast(prop.valueInt64); - } - - healthInfo->batteryCurrentAverage = currentAvg; - healthInfo->diskStats = stats; - healthInfo->storageInfos = info; - - std::lock_guard lock(callbacks_lock_); - for (auto it = callbacks_.begin(); it != callbacks_.end();) { - auto ret = (*it)->healthInfoChanged(*healthInfo); - if (!ret.isOk() && ret.isDeadObject()) { - it = callbacks_.erase(it); - } else { - ++it; - } - } -} - -Return Health::debug(const hidl_handle& handle, const hidl_vec&) { - if (handle != nullptr && handle->numFds >= 1) { - int fd = handle->data[0]; - battery_monitor_->dumpState(fd); - - getHealthInfo([fd](auto res, const auto& info) { - android::base::WriteStringToFd("\ngetHealthInfo -> ", fd); - if (res == Result::SUCCESS) { - android::base::WriteStringToFd(toString(info), fd); - } else { - android::base::WriteStringToFd(toString(res), fd); - } - android::base::WriteStringToFd("\n", fd); - }); - - fsync(fd); - } - return Void(); -} - -Return Health::getStorageInfo(getStorageInfo_cb _hidl_cb) { - std::vector info; - get_storage_info(info); - hidl_vec info_vec(info); - if (!info.size()) { - _hidl_cb(Result::NOT_SUPPORTED, info_vec); - } else { - _hidl_cb(Result::SUCCESS, info_vec); - } - return Void(); -} - -Return Health::getDiskStats(getDiskStats_cb _hidl_cb) { - std::vector stats; - get_disk_stats(stats); - hidl_vec stats_vec(stats); - if (!stats.size()) { - _hidl_cb(Result::NOT_SUPPORTED, stats_vec); - } else { - _hidl_cb(Result::SUCCESS, stats_vec); - } - return Void(); -} - -Return Health::getHealthInfo(getHealthInfo_cb _hidl_cb) { - using android::hardware::health::V1_0::hal_conversion::convertToHealthInfo; - - updateAndNotify(nullptr); - HealthInfo healthInfo = battery_monitor_->getHealthInfo_2_0(); - - std::vector info; - get_storage_info(info); - - std::vector stats; - get_disk_stats(stats); - - int32_t currentAvg = 0; - - struct BatteryProperty prop; - status_t ret = battery_monitor_->getProperty(BATTERY_PROP_CURRENT_AVG, &prop); - if (ret == OK) { - currentAvg = static_cast(prop.valueInt64); - } - - healthInfo.batteryCurrentAverage = currentAvg; - healthInfo.diskStats = stats; - healthInfo.storageInfos = info; - - _hidl_cb(Result::SUCCESS, healthInfo); - return Void(); -} - -void Health::serviceDied(uint64_t /* cookie */, const wp& who) { - (void)unregisterCallbackInternal(who.promote()); -} - -sp Health::initInstance(struct healthd_config* c) { - if (instance_ == nullptr) { - instance_ = new Health(c); - } - return instance_; -} - -sp Health::getImplementation() { - CHECK(instance_ != nullptr); - return instance_; -} - -} // namespace implementation -} // namespace V2_0 -} // namespace health -} // namespace hardware -} // namespace android diff --git a/health/2.0/default/HealthImplDefault.cpp b/health/2.0/default/HealthImplDefault.cpp deleted file mode 100644 index 08fee9ea71..0000000000 --- a/health/2.0/default/HealthImplDefault.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include - -using android::hardware::health::V2_0::IHealth; -using android::hardware::health::V2_0::implementation::Health; - -static struct healthd_config gHealthdConfig = { - .energyCounter = nullptr, - .boot_min_cap = 0, - .screen_on = nullptr}; - -void healthd_board_init(struct healthd_config*) { - // use defaults -} - -int healthd_board_battery_update(struct android::BatteryProperties*) { - // return 0 to log periodic polled battery status to kernel log - return 0; -} - -void healthd_mode_default_impl_init(struct healthd_config*) { - // noop -} - -int healthd_mode_default_impl_preparetowait(void) { - return -1; -} - -void healthd_mode_default_impl_heartbeat(void) { - // noop -} - -void healthd_mode_default_impl_battery_update(struct android::BatteryProperties*) { - // noop -} - -static struct healthd_mode_ops healthd_mode_default_impl_ops = { - .init = healthd_mode_default_impl_init, - .preparetowait = healthd_mode_default_impl_preparetowait, - .heartbeat = healthd_mode_default_impl_heartbeat, - .battery_update = healthd_mode_default_impl_battery_update, -}; - -extern "C" IHealth* HIDL_FETCH_IHealth(const char* name) { - const static std::string providedInstance{"backup"}; - healthd_mode_ops = &healthd_mode_default_impl_ops; - if (providedInstance == name) { - // use defaults - // Health class stores static instance - return Health::initInstance(&gHealthdConfig).get(); - } - return nullptr; -} diff --git a/health/2.0/default/healthd_common_adapter.cpp b/health/2.0/default/healthd_common_adapter.cpp deleted file mode 100644 index 0b5d869496..0000000000 --- a/health/2.0/default/healthd_common_adapter.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Support legacy functions in healthd/healthd.h using healthd_mode_ops. -// New code should use HealthLoop directly instead. - -#include - -#include -#include -#include -#include - -using android::hardware::health::HealthLoop; -using android::hardware::health::V2_0::implementation::Health; - -struct healthd_mode_ops* healthd_mode_ops = nullptr; - -// Adapter of HealthLoop to use legacy healthd_mode_ops. -class HealthLoopAdapter : public HealthLoop { - public: - // Expose internal functions, assuming clients calls them in the same thread - // where StartLoop is called. - int RegisterEvent(int fd, BoundFunction func, EventWakeup wakeup) { - return HealthLoop::RegisterEvent(fd, func, wakeup); - } - void AdjustWakealarmPeriods(bool charger_online) { - return HealthLoop::AdjustWakealarmPeriods(charger_online); - } - protected: - void Init(healthd_config* config) override { healthd_mode_ops->init(config); } - void Heartbeat() override { healthd_mode_ops->heartbeat(); } - int PrepareToWait() override { return healthd_mode_ops->preparetowait(); } - void ScheduleBatteryUpdate() override { Health::getImplementation()->update(); } -}; -static std::unique_ptr health_loop; - -int healthd_register_event(int fd, void (*handler)(uint32_t), EventWakeup wakeup) { - if (!health_loop) return -1; - - auto wrapped_handler = [handler](auto*, uint32_t epevents) { handler(epevents); }; - return health_loop->RegisterEvent(fd, wrapped_handler, wakeup); -} - -void healthd_battery_update_internal(bool charger_online) { - if (!health_loop) return; - health_loop->AdjustWakealarmPeriods(charger_online); -} - -int healthd_main() { - if (!healthd_mode_ops) { - KLOG_ERROR("healthd ops not set, exiting\n"); - exit(1); - } - - health_loop = std::make_unique(); - - int ret = health_loop->StartLoop(); - - // Should not reach here. The following will exit(). - health_loop.reset(); - - return ret; -} diff --git a/health/2.0/default/include/health2/Health.h b/health/2.0/default/include/health2/Health.h deleted file mode 100644 index 6410474511..0000000000 --- a/health/2.0/default/include/health2/Health.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef ANDROID_HARDWARE_HEALTH_V2_0_HEALTH_H -#define ANDROID_HARDWARE_HEALTH_V2_0_HEALTH_H - -#include -#include - -#include -#include -#include -#include - -using android::hardware::health::V2_0::StorageInfo; -using android::hardware::health::V2_0::DiskStats; - -void get_storage_info(std::vector& info); -void get_disk_stats(std::vector& stats); - -namespace android { -namespace hardware { -namespace health { -namespace V2_0 { -namespace implementation { - -using V1_0::BatteryStatus; - -using ::android::hidl::base::V1_0::IBase; - -struct Health : public IHealth, hidl_death_recipient { - public: - static sp initInstance(struct healthd_config* c); - // Should only be called by implementation itself (-impl, -service). - // Clients should not call this function. Instead, initInstance() initializes and returns the - // global instance that has fewer functions. - static sp getImplementation(); - - Health(struct healthd_config* c); - - void notifyListeners(HealthInfo* info); - - // Methods from IHealth follow. - Return registerCallback(const sp& callback) override; - Return unregisterCallback(const sp& callback) override; - Return update() override; - Return getChargeCounter(getChargeCounter_cb _hidl_cb) override; - Return getCurrentNow(getCurrentNow_cb _hidl_cb) override; - Return getCurrentAverage(getCurrentAverage_cb _hidl_cb) override; - Return getCapacity(getCapacity_cb _hidl_cb) override; - Return getEnergyCounter(getEnergyCounter_cb _hidl_cb) override; - Return getChargeStatus(getChargeStatus_cb _hidl_cb) override; - Return getStorageInfo(getStorageInfo_cb _hidl_cb) override; - Return getDiskStats(getDiskStats_cb _hidl_cb) override; - Return getHealthInfo(getHealthInfo_cb _hidl_cb) override; - - // Methods from ::android::hidl::base::V1_0::IBase follow. - Return debug(const hidl_handle& fd, const hidl_vec& args) override; - - void serviceDied(uint64_t cookie, const wp& /* who */) override; - - private: - static sp instance_; - - std::recursive_mutex callbacks_lock_; - std::vector> callbacks_; - std::unique_ptr battery_monitor_; - - bool unregisterCallbackInternal(const sp& cb); - - // update() and only notify the given callback, but none of the other callbacks. - // If cb is null, do not notify any callback at all. - Return updateAndNotify(const sp& cb); -}; - -} // namespace implementation -} // namespace V2_0 -} // namespace health -} // namespace hardware -} // namespace android - -#endif // ANDROID_HARDWARE_HEALTH_V2_0_HEALTH_H diff --git a/health/2.0/utils/README.md b/health/2.0/utils/README.md index c59b3f34df..3fc8dabe3e 100644 --- a/health/2.0/utils/README.md +++ b/health/2.0/utils/README.md @@ -6,25 +6,3 @@ by healthd). C++ clients of health HAL should use this library instead of calling `IHealth::getService()` directly. Its Java equivalent can be found in `BatteryService.HealthServiceWrapper`. - -# libhealthservice - -Common code for all (hwbinder) services of the health HAL, including healthd and -vendor health service `android.hardware.health@2.0-service(.)`. `main()` in -those binaries calls `health_service_main()` directly. - -# libhealthstoragedefault - -Default implementation for storage related APIs for (hwbinder) services of the -health HAL. If an implementation of the health HAL do not wish to provide any -storage info, include this library. Otherwise, it should implement the following -two functions: - -```c++ -void get_storage_info(std::vector& info) { - // ... -} -void get_disk_stats(std::vector& stats) { - // ... -} -``` diff --git a/health/2.0/utils/libhealthhalutils/HealthHalUtils.cpp b/health/2.0/utils/libhealthhalutils/HealthHalUtils.cpp index 3c353e6a78..67f0ecc382 100644 --- a/health/2.0/utils/libhealthhalutils/HealthHalUtils.cpp +++ b/health/2.0/utils/libhealthhalutils/HealthHalUtils.cpp @@ -24,34 +24,14 @@ namespace hardware { namespace health { namespace V2_0 { +// Deprecated. Kept to minimize migration cost. +// The function can be removed once Health 2.1 is removed +// (i.e. compatibility_matrix.7.xml is the lowest supported level). sp get_health_service() { - // For the core and vendor variant, the "backup" instance points to healthd, - // which is removed. - // For the recovery variant, the "backup" instance has a different - // meaning. It points to android.hardware.health@2.0-impl-default.recovery - // which was assumed by OEMs to be always installed when a - // vendor-specific libhealthd is not necessary. Hence, its behavior - // is kept. See health/2.0/README.md. - // android.hardware.health@2.0-impl-default.recovery, and subsequently the - // special handling of recovery mode below, can be removed once health@2.1 - // is the minimum required version (i.e. compatibility matrix level 5 is the - // minimum supported level). Health 2.1 requires OEMs to install the + // Health 2.1 requires OEMs to install the // implementation to the recovery partition when it is necessary (i.e. on // non-A/B devices, where IsBatteryOk() is needed in recovery). - for (auto&& instanceName : -#ifdef __ANDROID_RECOVERY__ - { "default", "backup" } -#else - {"default"} -#endif - ) { - auto ret = IHealth::getService(instanceName); - if (ret != nullptr) { - return ret; - } - LOG(INFO) << "health: cannot get " << instanceName << " service"; - } - return nullptr; + return IHealth::getService(); } } // namespace V2_0 diff --git a/health/2.0/utils/libhealthservice/Android.bp b/health/2.0/utils/libhealthservice/Android.bp deleted file mode 100644 index 8023692247..0000000000 --- a/health/2.0/utils/libhealthservice/Android.bp +++ /dev/null @@ -1,38 +0,0 @@ -// Reasonable defaults for android.hardware.health@2.0-service.. -// Vendor service can customize by implementing functions defined in -// libhealthd and libhealthstoragedefault. - - -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "hardware_interfaces_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["hardware_interfaces_license"], -} - -cc_library_static { - name: "libhealthservice", - vendor_available: true, - srcs: ["HealthServiceCommon.cpp"], - - export_include_dirs: ["include"], - - cflags: [ - "-Wall", - "-Werror", - ], - shared_libs: [ - "android.hardware.health@2.0", - ], - static_libs: [ - "android.hardware.health@2.0-impl", - "android.hardware.health@1.0-convert", - ], - export_static_lib_headers: [ - "android.hardware.health@1.0-convert", - ], - header_libs: ["libhealthd_headers"], - export_header_lib_headers: ["libhealthd_headers"], -} diff --git a/health/2.0/utils/libhealthservice/HealthServiceCommon.cpp b/health/2.0/utils/libhealthservice/HealthServiceCommon.cpp deleted file mode 100644 index 039570a7c0..0000000000 --- a/health/2.0/utils/libhealthservice/HealthServiceCommon.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "health@2.0/" -#include - -#include -#include -#include -#include -#include -#include -#include - -using android::hardware::IPCThreadState; -using android::hardware::configureRpcThreadpool; -using android::hardware::handleTransportPoll; -using android::hardware::setupTransportPolling; -using android::hardware::health::V2_0::HealthInfo; -using android::hardware::health::V1_0::hal_conversion::convertToHealthInfo; -using android::hardware::health::V2_0::IHealth; -using android::hardware::health::V2_0::implementation::Health; - -extern int healthd_main(void); - -static int gBinderFd = -1; -static std::string gInstanceName; - -static void binder_event(uint32_t /*epevents*/) { - if (gBinderFd >= 0) handleTransportPoll(gBinderFd); -} - -void healthd_mode_service_2_0_init(struct healthd_config* config) { - LOG(INFO) << LOG_TAG << gInstanceName << " Hal is starting up..."; - - gBinderFd = setupTransportPolling(); - - if (gBinderFd >= 0) { - if (healthd_register_event(gBinderFd, binder_event)) - LOG(ERROR) << LOG_TAG << gInstanceName << ": Register for binder events failed"; - } - - android::sp service = Health::initInstance(config); - CHECK_EQ(service->registerAsService(gInstanceName), android::OK) - << LOG_TAG << gInstanceName << ": Failed to register HAL"; - - LOG(INFO) << LOG_TAG << gInstanceName << ": Hal init done"; -} - -int healthd_mode_service_2_0_preparetowait(void) { - IPCThreadState::self()->flushCommands(); - return -1; -} - -void healthd_mode_service_2_0_heartbeat(void) { - // noop -} - -void healthd_mode_service_2_0_battery_update(struct android::BatteryProperties* prop) { - HealthInfo info; - convertToHealthInfo(prop, info.legacy); - Health::getImplementation()->notifyListeners(&info); -} - -static struct healthd_mode_ops healthd_mode_service_2_0_ops = { - .init = healthd_mode_service_2_0_init, - .preparetowait = healthd_mode_service_2_0_preparetowait, - .heartbeat = healthd_mode_service_2_0_heartbeat, - .battery_update = healthd_mode_service_2_0_battery_update, -}; - -int health_service_main(const char* instance) { - gInstanceName = instance; - if (gInstanceName.empty()) { - gInstanceName = "default"; - } - healthd_mode_ops = &healthd_mode_service_2_0_ops; - LOG(INFO) << LOG_TAG << gInstanceName << ": Hal starting main loop..."; - return healthd_main(); -} diff --git a/health/2.0/utils/libhealthservice/include/health2/service.h b/health/2.0/utils/libhealthservice/include/health2/service.h deleted file mode 100644 index d260568301..0000000000 --- a/health/2.0/utils/libhealthservice/include/health2/service.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ANDROID_HARDWARE_HEALTH_V2_0_SERVICE_COMMON -#define ANDROID_HARDWARE_HEALTH_V2_0_SERVICE_COMMON - -int health_service_main(const char* instance = ""); - -#endif // ANDROID_HARDWARE_HEALTH_V2_0_SERVICE_COMMON diff --git a/health/2.0/utils/libhealthstoragedefault/Android.bp b/health/2.0/utils/libhealthstoragedefault/Android.bp deleted file mode 100644 index 3de8789713..0000000000 --- a/health/2.0/utils/libhealthstoragedefault/Android.bp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Default implementation for (passthrough) clients that statically links to -// android.hardware.health@2.0-impl but do no query for storage related -// information. -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "hardware_interfaces_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["hardware_interfaces_license"], -} - -cc_library_static { - srcs: ["StorageHealthDefault.cpp"], - name: "libhealthstoragedefault", - vendor_available: true, - recovery_available: true, - cflags: ["-Werror"], - shared_libs: [ - "android.hardware.health@2.0", - ], -} diff --git a/health/2.0/utils/libhealthstoragedefault/StorageHealthDefault.cpp b/health/2.0/utils/libhealthstoragedefault/StorageHealthDefault.cpp deleted file mode 100644 index aba6cc364b..0000000000 --- a/health/2.0/utils/libhealthstoragedefault/StorageHealthDefault.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include "include/StorageHealthDefault.h" - -void get_storage_info(std::vector&) { - // Use defaults. -} - -void get_disk_stats(std::vector&) { - // Use defaults -} diff --git a/health/2.0/utils/libhealthstoragedefault/include/StorageHealthDefault.h b/health/2.0/utils/libhealthstoragedefault/include/StorageHealthDefault.h deleted file mode 100644 index 85eb210262..0000000000 --- a/health/2.0/utils/libhealthstoragedefault/include/StorageHealthDefault.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef ANDROID_HARDWARE_HEALTH_V2_0_STORAGE_HEALTH_H -#define ANDROID_HARDWARE_HEALTH_V2_0_STORAGE_HEALTH_H - -#include - -using android::hardware::health::V2_0::StorageInfo; -using android::hardware::health::V2_0::DiskStats; - -/* - * Get storage information. - */ -void get_storage_info(std::vector& info); - -/* - * Get disk statistics. - */ -void get_disk_stats(std::vector& stats); - -#endif // ANDROID_HARDWARE_HEALTH_V2_0_STORAGE_HEALTH_H -- GitLab From 9891be01f8122ef919f9b6d24bc850e05e7ca500 Mon Sep 17 00:00:00 2001 From: Frederick Mayle Date: Fri, 3 Nov 2023 14:39:24 -0700 Subject: [PATCH 005/418] use getDescription in test failure message getMessage is often empty. getDescription will always include at least the status code. Test: atest VtsHalRemotelyProvisionedComponentTargetTest Change-Id: Id401184a3c3642188e26fa2ec03f19515f89ae4f --- .../VtsRemotelyProvisionedComponentTests.cpp | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/security/rkp/aidl/vts/functional/VtsRemotelyProvisionedComponentTests.cpp b/security/rkp/aidl/vts/functional/VtsRemotelyProvisionedComponentTests.cpp index 62463ebc7b..756e820d30 100644 --- a/security/rkp/aidl/vts/functional/VtsRemotelyProvisionedComponentTests.cpp +++ b/security/rkp/aidl/vts/functional/VtsRemotelyProvisionedComponentTests.cpp @@ -391,7 +391,7 @@ class CertificateRequestTestBase : public VtsRemotelyProvisionedComponentTests { for (auto& key : keysToSign_) { bytevec privateKeyBlob; auto status = provisionable_->generateEcdsaP256KeyPair(testMode, &key, &privateKeyBlob); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); vector payload_value; check_maced_pubkey(key, testMode, &payload_value); @@ -436,7 +436,7 @@ TEST_P(CertificateRequestTest, EmptyRequest_testMode) { auto status = provisionable_->generateCertificateRequest( testMode, {} /* keysToSign */, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionProtectedData( deviceInfo, cppbor::Array(), keysToSignMac, protectedData, testEekChain_, eekId_, @@ -461,7 +461,7 @@ TEST_P(CertificateRequestTest, NewKeyPerCallInTestMode) { auto status = provisionable_->generateCertificateRequest( testMode, {} /* keysToSign */, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto firstBcc = verifyProductionProtectedData( deviceInfo, /*keysToSign=*/cppbor::Array(), keysToSignMac, protectedData, testEekChain_, @@ -471,7 +471,7 @@ TEST_P(CertificateRequestTest, NewKeyPerCallInTestMode) { status = provisionable_->generateCertificateRequest( testMode, {} /* keysToSign */, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto secondBcc = verifyProductionProtectedData( deviceInfo, /*keysToSign=*/cppbor::Array(), keysToSignMac, protectedData, testEekChain_, @@ -521,7 +521,7 @@ TEST_P(CertificateRequestTest, NonEmptyRequest_testMode) { auto status = provisionable_->generateCertificateRequest( testMode, keysToSign_, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionProtectedData( deviceInfo, cborKeysToSign_, keysToSignMac, protectedData, testEekChain_, eekId_, @@ -565,7 +565,7 @@ TEST_P(CertificateRequestTest, NonEmptyRequestCorruptMac_testMode) { auto status = provisionable_->generateCertificateRequest( testMode, {keyWithCorruptMac}, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_INVALID_MAC); } @@ -585,7 +585,7 @@ TEST_P(CertificateRequestTest, NonEmptyRequestCorruptMac_prodMode) { auto status = provisionable_->generateCertificateRequest( testMode, {keyWithCorruptMac}, getProdEekChain(rpcHardwareInfo.supportedEekCurve), challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_INVALID_MAC); } @@ -711,7 +711,7 @@ TEST_P(CertificateRequestV2Test, EmptyRequest) { auto challenge = randomBytes(size); auto status = provisionable_->generateCertificateRequestV2({} /* keysToSign */, challenge, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionCsr(cppbor::Array(), csr, provisionable_.get(), challenge); ASSERT_TRUE(result) << result.message(); @@ -732,7 +732,7 @@ TEST_P(CertificateRequestV2Test, NonEmptyRequest) { SCOPED_TRACE(testing::Message() << "challenge[" << size << "]"); auto challenge = randomBytes(size); auto status = provisionable_->generateCertificateRequestV2(keysToSign_, challenge, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionCsr(cborKeysToSign_, csr, provisionable_.get(), challenge); ASSERT_TRUE(result) << result.message(); @@ -747,7 +747,7 @@ TEST_P(CertificateRequestV2Test, EmptyRequestWithInvalidChallengeFail) { auto status = provisionable_->generateCertificateRequestV2( /* keysToSign */ {}, randomBytes(MAX_CHALLENGE_SIZE + 1), &csr); - EXPECT_FALSE(status.isOk()) << status.getMessage(); + EXPECT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_FAILED); } @@ -762,13 +762,13 @@ TEST_P(CertificateRequestV2Test, NonEmptyRequestReproducible) { bytevec csr; auto status = provisionable_->generateCertificateRequestV2(keysToSign_, challenge_, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto firstCsr = verifyProductionCsr(cborKeysToSign_, csr, provisionable_.get(), challenge_); ASSERT_TRUE(firstCsr) << firstCsr.message(); status = provisionable_->generateCertificateRequestV2(keysToSign_, challenge_, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto secondCsr = verifyProductionCsr(cborKeysToSign_, csr, provisionable_.get(), challenge_); ASSERT_TRUE(secondCsr) << secondCsr.message(); @@ -786,7 +786,7 @@ TEST_P(CertificateRequestV2Test, NonEmptyRequestMultipleKeys) { bytevec csr; auto status = provisionable_->generateCertificateRequestV2(keysToSign_, challenge_, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionCsr(cborKeysToSign_, csr, provisionable_.get(), challenge_); ASSERT_TRUE(result) << result.message(); @@ -804,7 +804,7 @@ TEST_P(CertificateRequestV2Test, NonEmptyRequestCorruptMac) { bytevec csr; auto status = provisionable_->generateCertificateRequestV2({keyWithCorruptMac}, challenge_, &csr); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_INVALID_MAC); } @@ -818,7 +818,7 @@ TEST_P(CertificateRequestV2Test, CertificateRequestV1Removed_prodMode) { auto status = provisionable_->generateCertificateRequest( false /* testMode */, {} /* keysToSign */, {} /* EEK chain */, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_REMOVED); } @@ -832,7 +832,7 @@ TEST_P(CertificateRequestV2Test, CertificateRequestV1Removed_testMode) { auto status = provisionable_->generateCertificateRequest( true /* testMode */, {} /* keysToSign */, {} /* EEK chain */, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_REMOVED); } @@ -916,7 +916,7 @@ TEST_P(CertificateRequestV2Test, DeviceInfo) { bytevec csr; irpcStatus = provisionable_->generateCertificateRequestV2({} /* keysToSign */, challenge_, &csr); - ASSERT_TRUE(irpcStatus.isOk()) << irpcStatus.getMessage(); + ASSERT_TRUE(irpcStatus.isOk()) << irpcStatus.getDescription(); auto result = verifyProductionCsr(cppbor::Array(), csr, provisionable_.get(), challenge_); ASSERT_TRUE(result) << result.message(); -- GitLab From 6c3ed373a05dfaff4ad46de03761936721331f86 Mon Sep 17 00:00:00 2001 From: sadiqsada Date: Tue, 7 Nov 2023 16:07:59 -0800 Subject: [PATCH 006/418] Add IP Streamer interface This interface is used to push TS data from a socket to test IPTV frontend. Bug: 288170590 Test: atest VtsHalTvTunerTargetTest Change-Id: I95f0f74cb6bb9b73c9584d335b52937ab56830e1 --- .../aidl/vts/functional/utils/IpStreamer.cpp | 57 +++++++++++++++++++ .../aidl/vts/functional/utils/IpStreamer.h | 48 ++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 tv/tuner/aidl/vts/functional/utils/IpStreamer.cpp create mode 100644 tv/tuner/aidl/vts/functional/utils/IpStreamer.h diff --git a/tv/tuner/aidl/vts/functional/utils/IpStreamer.cpp b/tv/tuner/aidl/vts/functional/utils/IpStreamer.cpp new file mode 100644 index 0000000000..02b2633256 --- /dev/null +++ b/tv/tuner/aidl/vts/functional/utils/IpStreamer.cpp @@ -0,0 +1,57 @@ +#include "IpStreamer.h" + +IpStreamer::IpStreamer() {} + +IpStreamer::~IpStreamer() {} + +void IpStreamer::startIpStream() { + ALOGI("Starting IP Stream thread"); + mFp = fopen(mFilePath.c_str(), "rb"); + if (mFp == nullptr) { + ALOGE("Failed to open file at path: %s", mFilePath.c_str()); + return; + } + mIpStreamerThread = std::thread(&IpStreamer::ipStreamThreadLoop, this, mFp); +} + +void IpStreamer::stopIpStream() { + ALOGI("Stopping IP Stream thread"); + close(mSockfd); + if (mFp != nullptr) fclose(mFp); + if (mIpStreamerThread.joinable()) { + mIpStreamerThread.join(); + } +} + +void IpStreamer::ipStreamThreadLoop(FILE* fp) { + mSockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (mSockfd < 0) { + ALOGE("IpStreamer::ipStreamThreadLoop: Socket creation failed (%s)", strerror(errno)); + exit(1); + } + + if (mFp == NULL) { + ALOGE("IpStreamer::ipStreamThreadLoop: Cannot open file %s: (%s)", mFilePath.c_str(), + strerror(errno)); + exit(1); + } + + struct sockaddr_in destaddr; + memset(&destaddr, 0, sizeof(destaddr)); + destaddr.sin_family = mIsIpV4 ? AF_INET : AF_INET6; + destaddr.sin_port = htons(mPort); + destaddr.sin_addr.s_addr = inet_addr(mIpAddress.c_str()); + + char buf[mBufferSize]; + int n; + while (1) { + if (fp == nullptr) break; + n = fread(buf, 1, mBufferSize, fp); + ALOGI("IpStreamer::ipStreamThreadLoop: Bytes read from fread(): %d\n", n); + if (n <= 0) { + break; + } + sendto(mSockfd, buf, n, 0, (struct sockaddr*)&destaddr, sizeof(destaddr)); + sleep(mSleepTime); + } +} diff --git a/tv/tuner/aidl/vts/functional/utils/IpStreamer.h b/tv/tuner/aidl/vts/functional/utils/IpStreamer.h new file mode 100644 index 0000000000..d073003c98 --- /dev/null +++ b/tv/tuner/aidl/vts/functional/utils/IpStreamer.h @@ -0,0 +1,48 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * IP Streamer class to send TS data to a specified socket for testing IPTV frontend functions + * e.g. tuning and playback. + */ + +class IpStreamer { + public: + // Constructor for IP Streamer object + IpStreamer(); + + // Destructor for IP Streamer object + ~IpStreamer(); + + // Starts a thread to read data from a socket + void startIpStream(); + + // Stops the reading thread started by startIpStream + void stopIpStream(); + + // Thread function that consumes data from a socket + void ipStreamThreadLoop(FILE* fp); + + std::string getFilePath() { return mFilePath; }; + + private: + int mSockfd = -1; + FILE* mFp; + bool mIsIpV4 = true; // By default, set to IPV4 + int mPort = 12345; // default port + int mBufferSize = 188; // bytes + int mSleepTime = 1; // second + std::string mIpAddress = "127.0.0.1"; // default IP address + std::string mFilePath = "/data/local/tmp/segment000000.ts"; // default path for TS file + std::thread mIpStreamerThread; +}; \ No newline at end of file -- GitLab From 7a19139503a3204c3ddc1a3a0254d1932d027ef8 Mon Sep 17 00:00:00 2001 From: sadiqsada Date: Tue, 7 Nov 2023 16:09:09 -0800 Subject: [PATCH 007/418] Update VTS cases for IPTV tuning IPTV tuning relies on a socket streaming TS data. This CL uses the interface defined in IpStreamer to test whether TS data is availble on a socket, and decides to send LOCKED event based on the result. Bug: 288170590 Test: atest VtsHalTvTunerTargetTest Change-Id: I79c933458f01f18d35e85c53f67f3c1d3d21dbce --- tv/tuner/aidl/vts/functional/Android.bp | 1 + .../aidl/vts/functional/FrontendTests.cpp | 7 +++ tv/tuner/aidl/vts/functional/FrontendTests.h | 1 + .../functional/VtsHalTvTunerTargetTest.cpp | 60 +++++++++++++++++++ 4 files changed, 69 insertions(+) diff --git a/tv/tuner/aidl/vts/functional/Android.bp b/tv/tuner/aidl/vts/functional/Android.bp index 513007b4a8..09e63fc56b 100644 --- a/tv/tuner/aidl/vts/functional/Android.bp +++ b/tv/tuner/aidl/vts/functional/Android.bp @@ -37,6 +37,7 @@ cc_test { "FrontendTests.cpp", "LnbTests.cpp", "VtsHalTvTunerTargetTest.cpp", + "utils/IpStreamer.cpp", ], generated_headers: [ "tuner_testing_dynamic_configuration_V1_0_enums", diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.cpp b/tv/tuner/aidl/vts/functional/FrontendTests.cpp index b0f614ed9b..b7b01859b2 100644 --- a/tv/tuner/aidl/vts/functional/FrontendTests.cpp +++ b/tv/tuner/aidl/vts/functional/FrontendTests.cpp @@ -475,6 +475,10 @@ AssertionResult FrontendTests::tuneFrontend(FrontendConfig config, bool testWith << "FrontendConfig does not match the frontend info of the given id."; mIsSoftwareFe = config.isSoftwareFe; + std::unique_ptr ipThread = std::make_unique(); + if (config.type == FrontendType::IPTV) { + ipThread->startIpStream(); + } if (mIsSoftwareFe && testWithDemux) { if (getDvrTests()->openDvrInDemux(mDvrConfig.type, mDvrConfig.bufferSize) != success()) { ALOGW("[vts] Software frontend dvr configure openDvr failed."); @@ -494,6 +498,9 @@ AssertionResult FrontendTests::tuneFrontend(FrontendConfig config, bool testWith getDvrTests()->startDvrPlayback(); } mFrontendCallback->tuneTestOnLock(mFrontend, config.settings); + if (config.type == FrontendType::IPTV) { + ipThread->stopIpStream(); + } return AssertionResult(true); } diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.h b/tv/tuner/aidl/vts/functional/FrontendTests.h index 1746c8efcc..9c2ffc07d4 100644 --- a/tv/tuner/aidl/vts/functional/FrontendTests.h +++ b/tv/tuner/aidl/vts/functional/FrontendTests.h @@ -27,6 +27,7 @@ #include "DvrTests.h" #include "VtsHalTvTunerTestConfigurations.h" +#include "utils/IpStreamer.h" #define WAIT_TIMEOUT 3000000000 #define INVALID_ID -1 diff --git a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp index 3664b6cfdf..1b507e1f88 100644 --- a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp +++ b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp @@ -683,6 +683,10 @@ TEST_P(TunerDemuxAidlTest, openDemux) { if (!live.hasFrontendConnection) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -779,6 +783,10 @@ TEST_P(TunerFilterAidlTest, StartFilterInDemux) { if (!live.hasFrontendConnection) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } // TODO use parameterized tests auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { @@ -793,6 +801,10 @@ TEST_P(TunerFilterAidlTest, ConfigIpFilterInDemuxWithCid) { if (!live.hasFrontendConnection) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -808,6 +820,10 @@ TEST_P(TunerFilterAidlTest, ReconfigFilterToReceiveStartId) { if (!live.hasFrontendConnection) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } // TODO use parameterized tests auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { @@ -1111,6 +1127,10 @@ TEST_P(TunerRecordAidlTest, RecordDataFlowWithTsRecordFilterTest) { if (!record.support) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto record_configs = generateRecordConfigurations(); for (auto& configuration : record_configs) { record = configuration; @@ -1125,6 +1145,10 @@ TEST_P(TunerRecordAidlTest, AttachFiltersToRecordTest) { if (!record.support) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto record_configs = generateRecordConfigurations(); for (auto& configuration : record_configs) { record = configuration; @@ -1157,6 +1181,10 @@ TEST_P(TunerRecordAidlTest, SetStatusCheckIntervalHintToRecordTest) { if (!record.support) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto record_configs = generateRecordConfigurations(); for (auto& configuration : record_configs) { record = configuration; @@ -1194,6 +1222,10 @@ TEST_P(TunerFrontendAidlTest, BlindScanFrontend) { if (!scan.hasFrontendConnection) { return; } + // Blind scan is not applicable for IPTV frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } vector scan_configs = generateScanConfigurations(); for (auto& configuration : scan_configs) { scan = configuration; @@ -1218,6 +1250,10 @@ TEST_P(TunerFrontendAidlTest, BlindScanFrontendWithEndFrequency) { if (!scan.hasFrontendConnection) { return; } + // Blind scan is not application for IPTV frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } vector scan_configs = generateScanConfigurations(); for (auto& configuration : scan_configs) { scan = configuration; @@ -1242,6 +1278,10 @@ TEST_P(TunerFrontendAidlTest, LinkToCiCam) { TEST_P(TunerFrontendAidlTest, getHardwareInfo) { description("Test Frontend get hardware info"); + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } if (!live.hasFrontendConnection) { return; } @@ -1289,6 +1329,10 @@ TEST_P(TunerBroadcastAidlTest, BroadcastDataFlowAudioFilterTest) { if (!live.hasFrontendConnection) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -1316,6 +1360,10 @@ TEST_P(TunerBroadcastAidlTest, IonBufferTest) { if (!live.hasFrontendConnection) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -1345,6 +1393,10 @@ TEST_P(TunerBroadcastAidlTest, MediaFilterWithSharedMemoryHandle) { if (!live.hasFrontendConnection) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -1358,6 +1410,10 @@ TEST_P(TunerDescramblerAidlTest, CreateDescrambler) { if (!descrambling.support) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } vector descrambling_configs = generateDescramblingConfigurations(); if (descrambling_configs.empty()) { @@ -1394,6 +1450,10 @@ TEST_P(TunerDescramblerAidlTest, ScrambledBroadcastDataFlowMediaFiltersTest) { if (!descrambling.support) { return; } + // Do not execute tests for IPTV Frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } vector descrambling_configs = generateDescramblingConfigurations(); if (descrambling_configs.empty()) { -- GitLab From 607b558deea7476e7615059f25aa612f9f390f3e Mon Sep 17 00:00:00 2001 From: Benjamin Grimberg Date: Thu, 5 Jan 2023 14:48:36 +0200 Subject: [PATCH 008/418] Fix AttestKeyTest failures in KeyMint VTS Skip attestation key tests if the feature FEATURE_KEYSTORE_APP_ATTEST_KEY is disabled on device, as done in KeyMint CTS. Bug: 244460948 Bug: 265740739 Test: VtsAidlKeyMintTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:981c9c223671d9012781acf6e9128fd037578833) Merged-In: I8199e5c7570b10b71f127c7439b889c0b3327865 Change-Id: I8199e5c7570b10b71f127c7439b889c0b3327865 --- .../aidl/vts/functional/AttestKeyTest.cpp | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/security/keymint/aidl/vts/functional/AttestKeyTest.cpp b/security/keymint/aidl/vts/functional/AttestKeyTest.cpp index 23e9d6a31c..959e3e380c 100644 --- a/security/keymint/aidl/vts/functional/AttestKeyTest.cpp +++ b/security/keymint/aidl/vts/functional/AttestKeyTest.cpp @@ -35,7 +35,17 @@ bool IsSelfSigned(const vector& chain) { } // namespace class AttestKeyTest : public KeyMintAidlTestBase { + public: + void SetUp() override { + check_skip_test(); + KeyMintAidlTestBase::SetUp(); + } + protected: + const string FEATURE_KEYSTORE_APP_ATTEST_KEY = "android.hardware.keystore.app_attest_key"; + + const string FEATURE_STRONGBOX_KEYSTORE = "android.hardware.strongbox_keystore"; + ErrorCode GenerateAttestKey(const AuthorizationSet& key_desc, const optional& attest_key, vector* key_blob, @@ -60,6 +70,59 @@ class AttestKeyTest : public KeyMintAidlTestBase { } return GenerateKey(key_desc, attest_key, key_blob, key_characteristics, cert_chain); } + + // Check if ATTEST_KEY feature is disabled + bool is_attest_key_feature_disabled(void) const { + if (!check_feature(FEATURE_KEYSTORE_APP_ATTEST_KEY)) { + GTEST_LOG_(INFO) << "Feature " + FEATURE_KEYSTORE_APP_ATTEST_KEY + " is disabled"; + return true; + } + + return false; + } + + // Check if StrongBox KeyStore is enabled + bool is_strongbox_enabled(void) const { + if (check_feature(FEATURE_STRONGBOX_KEYSTORE)) { + GTEST_LOG_(INFO) << "Feature " + FEATURE_STRONGBOX_KEYSTORE + " is enabled"; + return true; + } + + return false; + } + + // Check if chipset has received a waiver allowing it to be launched with + // Android S (or later) with Keymaster 4.0 in StrongBox + bool is_chipset_allowed_km4_strongbox(void) const { + std::array buffer; + + auto res = property_get("ro.vendor.qti.soc_model", buffer.data(), nullptr); + if (res <= 0) return false; + + const string allowed_soc_models[] = {"SM8450", "SM8475", "SM8550", "SXR2230P"}; + + for (const string model : allowed_soc_models) { + if (model.compare(buffer.data()) == 0) { + GTEST_LOG_(INFO) << "QTI SOC Model " + model + " is allowed SB KM 4.0"; + return true; + } + } + + return false; + } + + // Skip the test if all the following conditions hold: + // 1. ATTEST_KEY feature is disabled + // 2. STRONGBOX is enabled + // 3. The device is running one of the chipsets that have received a waiver + // allowing it to be launched with Android S (or later) with Keymaster 4.0 + // in StrongBox + void check_skip_test(void) const { + if (is_attest_key_feature_disabled() && is_strongbox_enabled() && + is_chipset_allowed_km4_strongbox()) { + GTEST_SKIP() << "Test is not applicable"; + } + } }; /* -- GitLab From 5e480a73d0a861447667bdca86fee36f56699859 Mon Sep 17 00:00:00 2001 From: Umesh Vats Date: Thu, 7 Sep 2023 16:02:37 -0700 Subject: [PATCH 009/418] Bluetooth LMP Events: Interface for LMP events Interface for monitoring bluetooth LMP events for a specific device. Bug: 281503650 Change-Id: I1de25184a6e67c9f13c33c0d4283dc51855d5dc4 --- bluetooth/lmp_event/aidl/Android.bp | 33 ++++ .../bluetooth/lmp_event/AddressType.aidl | 39 ++++ .../bluetooth/lmp_event/Direction.aidl | 39 ++++ .../lmp_event/IBluetoothLmpEvent.aidl | 39 ++++ .../lmp_event/IBluetoothLmpEventCallback.aidl | 39 ++++ .../bluetooth/lmp_event/LmpEventId.aidl | 39 ++++ .../bluetooth/lmp_event/Timestamp.aidl | 39 ++++ .../bluetooth/lmp_event/AddressType.aidl | 27 +++ .../bluetooth/lmp_event/Direction.aidl | 27 +++ .../lmp_event/IBluetoothLmpEvent.aidl | 45 +++++ .../lmp_event/IBluetoothLmpEventCallback.aidl | 47 +++++ .../bluetooth/lmp_event/LmpEventId.aidl | 29 +++ .../bluetooth/lmp_event/Timestamp.aidl | 33 ++++ bluetooth/lmp_event/aidl/default/Android.bp | 28 +++ .../aidl/default/lmp_event-default.rc | 6 + .../aidl/default/lmp_event-default.xml | 10 + .../lmp_event/aidl/default/src/lmp_event.rs | 80 ++++++++ bluetooth/lmp_event/aidl/default/src/main.rs | 50 +++++ bluetooth/lmp_event/aidl/vts/Android.bp | 20 ++ .../aidl/vts/VtsHalLmpEventTargetTest.cpp | 176 ++++++++++++++++++ .../compatibility_matrix.9.xml | 8 + 21 files changed, 853 insertions(+) create mode 100644 bluetooth/lmp_event/aidl/Android.bp create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/AddressType.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Direction.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/LmpEventId.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Timestamp.aidl create mode 100644 bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/AddressType.aidl create mode 100644 bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Direction.aidl create mode 100644 bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl create mode 100644 bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl create mode 100644 bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/LmpEventId.aidl create mode 100644 bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Timestamp.aidl create mode 100644 bluetooth/lmp_event/aidl/default/Android.bp create mode 100644 bluetooth/lmp_event/aidl/default/lmp_event-default.rc create mode 100644 bluetooth/lmp_event/aidl/default/lmp_event-default.xml create mode 100644 bluetooth/lmp_event/aidl/default/src/lmp_event.rs create mode 100644 bluetooth/lmp_event/aidl/default/src/main.rs create mode 100644 bluetooth/lmp_event/aidl/vts/Android.bp create mode 100644 bluetooth/lmp_event/aidl/vts/VtsHalLmpEventTargetTest.cpp diff --git a/bluetooth/lmp_event/aidl/Android.bp b/bluetooth/lmp_event/aidl/Android.bp new file mode 100644 index 0000000000..6c2f27826b --- /dev/null +++ b/bluetooth/lmp_event/aidl/Android.bp @@ -0,0 +1,33 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +aidl_interface { + name: "android.hardware.bluetooth.lmp_event", + vendor_available: true, + host_supported: true, + srcs: ["android/hardware/bluetooth/lmp_event/*.aidl"], + stability: "vintf", + backend: { + java: { + enabled: true, + platform_apis: true, + }, + cpp: { + enabled: true, + }, + ndk: { + enabled: true, + min_sdk_version: "33", + }, + rust: { + enabled: true, + min_sdk_version: "33", + }, + }, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/AddressType.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/AddressType.aidl new file mode 100644 index 0000000000..0f239e8055 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/AddressType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum AddressType { + PUBLIC = 0x00, + RANDOM = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Direction.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Direction.aidl new file mode 100644 index 0000000000..6f807cc836 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Direction.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum Direction { + TX = 0x00, + RX = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl new file mode 100644 index 0000000000..3431010d21 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +interface IBluetoothLmpEvent { + void registerForLmpEvents(in android.hardware.bluetooth.lmp_event.IBluetoothLmpEventCallback callback, in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address, in android.hardware.bluetooth.lmp_event.LmpEventId[] lmpEventIds); + void unregisterLmpEvents(in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address); +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl new file mode 100644 index 0000000000..fc6758c608 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +interface IBluetoothLmpEventCallback { + void onEventGenerated(in android.hardware.bluetooth.lmp_event.Timestamp timestamp, in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address, in android.hardware.bluetooth.lmp_event.Direction direction, in android.hardware.bluetooth.lmp_event.LmpEventId lmpEventId, in char connEventCounter); + void onRegistered(in boolean status); +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/LmpEventId.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/LmpEventId.aidl new file mode 100644 index 0000000000..4ee95d1147 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/LmpEventId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum LmpEventId { + CONNECT_IND = 0x00, + LL_PHY_UPDATE_IND = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Timestamp.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Timestamp.aidl new file mode 100644 index 0000000000..5ef32ba716 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Timestamp.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +parcelable Timestamp { + long systemTimeUs; + long bluetoothTimeUs; +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/AddressType.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/AddressType.aidl new file mode 100644 index 0000000000..6bfc7c7180 --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/AddressType.aidl @@ -0,0 +1,27 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +/** + * Type of Address + */ +@VintfStability +@Backing(type="byte") +enum AddressType { + PUBLIC = 0x00, + RANDOM = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Direction.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Direction.aidl new file mode 100644 index 0000000000..884c2bb4b9 --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Direction.aidl @@ -0,0 +1,27 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +/** + * Direction of the LMP event + */ +@VintfStability +@Backing(type="byte") +enum Direction { + TX = 0x00, + RX = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl new file mode 100644 index 0000000000..3828af6537 --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +import android.hardware.bluetooth.lmp_event.IBluetoothLmpEventCallback; +import android.hardware.bluetooth.lmp_event.AddressType; +import android.hardware.bluetooth.lmp_event.LmpEventId; + +@VintfStability +interface IBluetoothLmpEvent { + /** + * API to monitor specific LMP event timestamp for given Bluetooth device. + * + * @param callback An instance of the |IBluetoothLmpEventCallback| AIDL interface object. + * @param addressType Type of bluetooth address. + * @param address Bluetooth address to monitor. + * @param lmpEventIds LMP events to monitor. + */ + void registerForLmpEvents(in IBluetoothLmpEventCallback callback, + in AddressType addressType, + in byte[6] address, + in LmpEventId[] lmpEventIds); + + /** + * API to stop monitoring a given Bluetooth device. + * + * @param addressType Type of Bluetooth address. + * @param address Bluetooth device to stop monitoring. + */ + void unregisterLmpEvents(in AddressType addressType, in byte[6] address); +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl new file mode 100644 index 0000000000..3295ef015d --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +import android.hardware.bluetooth.lmp_event.Direction; +import android.hardware.bluetooth.lmp_event.AddressType; +import android.hardware.bluetooth.lmp_event.LmpEventId; +import android.hardware.bluetooth.lmp_event.Timestamp; + +@VintfStability +interface IBluetoothLmpEventCallback { + /** + * Callback when monitored LMP event invoked. + * + * @param timestamp Timestamp when the LMP event invoked + * @param addressType Type of Bluetooth address. + * @param address Remote bluetooth address that invoke LMP event + * @param direction Direction of the invoked LMP event + * @param lmpEventId LMP event id that bluetooth chip invoked + * @param connEventCounter counter incremented by one for each new connection event + */ + void onEventGenerated(in Timestamp timestamp, + in AddressType addressType, + in byte[6] address, + in Direction direction, + in LmpEventId lmpEventId, + in char connEventCounter); + + /** + * Callback when registration done. + */ + void onRegistered(in boolean status); +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/LmpEventId.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/LmpEventId.aidl new file mode 100644 index 0000000000..3584b0c047 --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/LmpEventId.aidl @@ -0,0 +1,29 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +/** + * LMP event id to be monitored + * CONNECT_IND indicator for initiating connection + * LL_PHY_UPDATE_IND indicator for PHY update + */ +@VintfStability +@Backing(type="byte") +enum LmpEventId { + CONNECT_IND = 0x00, + LL_PHY_UPDATE_IND = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Timestamp.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Timestamp.aidl new file mode 100644 index 0000000000..e3c991d31e --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Timestamp.aidl @@ -0,0 +1,33 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +/** + * Generic structure to return the timestamp + */ +@VintfStability +parcelable Timestamp { + /** + * Timestamp in microsecond since system boot. + * if systemTimeUs is set to 0, its value is to be ignored + */ + long systemTimeUs; + /** + * Timestamp in microsecond since Bluetooth controller power up. + */ + long bluetoothTimeUs; +} diff --git a/bluetooth/lmp_event/aidl/default/Android.bp b/bluetooth/lmp_event/aidl/default/Android.bp new file mode 100644 index 0000000000..f8ca5e6404 --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/Android.bp @@ -0,0 +1,28 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +rust_binary { + name: "android.hardware.bluetooth.lmp_event-service.default", + relative_install_path: "hw", + init_rc: ["lmp_event-default.rc"], + vintf_fragments: [":manifest_android.hardware.bluetooth.lmp_event-service.default.xml"], + vendor: true, + rustlibs: [ + "liblogger", + "liblog_rust", + "libbinder_rs", + "android.hardware.bluetooth.lmp_event-V1-rust", + ], + srcs: [ "src/main.rs" ], +} + +filegroup { + name: "manifest_android.hardware.bluetooth.lmp_event-service.default.xml", + srcs: [ "lmp_event-default.xml" ], +} diff --git a/bluetooth/lmp_event/aidl/default/lmp_event-default.rc b/bluetooth/lmp_event/aidl/default/lmp_event-default.rc new file mode 100644 index 0000000000..845e04dba1 --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/lmp_event-default.rc @@ -0,0 +1,6 @@ +service vendor.bluetooth.lmp_event-default /vendor/bin/hw/android.hardware.bluetooth.lmp_event-service.default + class hal + capabilities BLOCK_SUSPEND NET_ADMIN SYS_NICE + user bluetooth + group bluetooth + task_profiles HighPerformance diff --git a/bluetooth/lmp_event/aidl/default/lmp_event-default.xml b/bluetooth/lmp_event/aidl/default/lmp_event-default.xml new file mode 100644 index 0000000000..24d93f89f3 --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/lmp_event-default.xml @@ -0,0 +1,10 @@ + + + android.hardware.bluetooth.lmp_event + 1 + + IBluetoothLmpEvent + default + + + diff --git a/bluetooth/lmp_event/aidl/default/src/lmp_event.rs b/bluetooth/lmp_event/aidl/default/src/lmp_event.rs new file mode 100644 index 0000000000..f016c3f9eb --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/src/lmp_event.rs @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +//! Implements LMP Event AIDL Interface. + +use android_hardware_bluetooth_lmp_event::aidl::android::hardware::bluetooth::lmp_event::{ + Direction::Direction, AddressType::AddressType, IBluetoothLmpEvent::IBluetoothLmpEvent, + IBluetoothLmpEventCallback::IBluetoothLmpEventCallback, LmpEventId::LmpEventId, + Timestamp::Timestamp, +}; + +use binder::{Interface, Result, Strong}; + +use log::info; +use std::thread; +use std::time; + + +pub struct LmpEvent; + +impl LmpEvent { + pub fn new() -> Self { + Self + } +} + +impl Interface for LmpEvent {} + +impl IBluetoothLmpEvent for LmpEvent { + fn registerForLmpEvents(&self, + callback: &Strong, + address_type: AddressType, + address: &[u8; 6], + lmp_event_ids: &[LmpEventId] + ) -> Result<()> { + info!("registerForLmpEvents"); + + let cb = callback.clone(); + let addr_type = address_type; + let addr = address.clone(); + let lmp_event = lmp_event_ids.to_vec(); + + let thread_handle = thread::spawn(move || { + let ts = Timestamp { + bluetoothTimeUs: 1000000, + systemTimeUs: 2000000, + }; + + info!("sleep for 1000 ms"); + thread::sleep(time::Duration::from_millis(1000)); + + info!("callback event"); + cb.onEventGenerated(&ts, addr_type, &addr, Direction::RX, lmp_event[0], 1) + .expect("onEventGenerated failed"); + }); + + info!("callback register"); + callback.onRegistered(true)?; + + thread_handle.join().expect("join failed"); + Ok(()) + } + fn unregisterLmpEvents(&self, _address_type: AddressType, _address: &[u8; 6]) -> Result<()> { + info!("unregisterLmpEvents"); + + Ok(()) + } +} diff --git a/bluetooth/lmp_event/aidl/default/src/main.rs b/bluetooth/lmp_event/aidl/default/src/main.rs new file mode 100644 index 0000000000..cbdd4d1521 --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/src/main.rs @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +//! Implements LMP Event Example Service. + + +use android_hardware_bluetooth_lmp_event::aidl::android::hardware::bluetooth::lmp_event::IBluetoothLmpEvent::{ + IBluetoothLmpEvent, BnBluetoothLmpEvent +}; + +use binder::BinderFeatures; +use log::{info, Level}; + +mod lmp_event; + +const LOG_TAG: &str = "lmp_event_service_example"; + +fn main() { + info!("{LOG_TAG}: starting service"); + let logger_success = logger::init( + logger::Config::default().with_tag_on_device(LOG_TAG).with_min_level(Level::Trace) + ); + if !logger_success { + panic!("{LOG_TAG}: Failed to start logger"); + } + + binder::ProcessState::set_thread_pool_max_thread_count(0); + + let lmp_event_service = lmp_event::LmpEvent::new(); + let lmp_event_service_binder = BnBluetoothLmpEvent::new_binder(lmp_event_service, BinderFeatures::default()); + + binder::add_service( + &format!("{}/default", lmp_event::LmpEvent::get_descriptor()), + lmp_event_service_binder.as_binder(), + ).expect("Failed to register service"); + + binder::ProcessState::join_thread_pool() +} diff --git a/bluetooth/lmp_event/aidl/vts/Android.bp b/bluetooth/lmp_event/aidl/vts/Android.bp new file mode 100644 index 0000000000..b89351ed16 --- /dev/null +++ b/bluetooth/lmp_event/aidl/vts/Android.bp @@ -0,0 +1,20 @@ +cc_test { + name: "VtsHalLmpEventTargetTest", + defaults: [ + "VtsHalTargetTestDefaults", + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalLmpEventTargetTest.cpp"], + shared_libs: [ + "libbinder", + "libbinder_ndk" + ], + static_libs: [ + "android.hardware.bluetooth.lmp_event-V1-ndk", + ], + test_suites: [ + "general-tests", + "vts", + ] +} + diff --git a/bluetooth/lmp_event/aidl/vts/VtsHalLmpEventTargetTest.cpp b/bluetooth/lmp_event/aidl/vts/VtsHalLmpEventTargetTest.cpp new file mode 100644 index 0000000000..c49f60bdd8 --- /dev/null +++ b/bluetooth/lmp_event/aidl/vts/VtsHalLmpEventTargetTest.cpp @@ -0,0 +1,176 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the std::shared_ptrecific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "lmp_event_hal_test" + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +using ::aidl::android::hardware::bluetooth::lmp_event::BnBluetoothLmpEventCallback; +using ::aidl::android::hardware::bluetooth::lmp_event::IBluetoothLmpEvent; +using ::aidl::android::hardware::bluetooth::lmp_event::IBluetoothLmpEventCallback; +using ::aidl::android::hardware::bluetooth::lmp_event::Direction; +using ::aidl::android::hardware::bluetooth::lmp_event::AddressType; +using ::aidl::android::hardware::bluetooth::lmp_event::LmpEventId; +using ::aidl::android::hardware::bluetooth::lmp_event::Timestamp; + +using ::android::ProcessState; +using ::ndk::SpAIBinder; + +namespace { + static constexpr std::chrono::milliseconds kEventTimeoutMs(10000); +} + +class BluetoothLmpEventTest : public testing::TestWithParam { + public: + virtual void SetUp() override { + ALOGI("%s", __func__); + + ibt_lmp_event_ = IBluetoothLmpEvent::fromBinder(SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); + ASSERT_NE(ibt_lmp_event_, nullptr); + + ibt_lmp_event_cb_ = ndk::SharedRefBase::make(*this); + ASSERT_NE(ibt_lmp_event_cb_, nullptr); + } + + virtual void TearDown() override { + ALOGI("%s", __func__); + ibt_lmp_event_->unregisterLmpEvents(address_type, address); + + ibt_lmp_event_cb_ = nullptr; + } + + class BluetoothLmpEventCallback : public BnBluetoothLmpEventCallback { + public: + BluetoothLmpEventTest& parent_; + BluetoothLmpEventCallback(BluetoothLmpEventTest& parent) + : parent_(parent) {} + ~BluetoothLmpEventCallback() = default; + + ::ndk::ScopedAStatus onEventGenerated(const Timestamp& timestamp, AddressType address_type, + const std::array& address, Direction direction, + LmpEventId lmp_event_id, char16_t conn_event_counter) override { + for (auto t: address) { + ALOGD("%s: 0x%02x", __func__, t); + } + if (direction == Direction::TX) { + ALOGD("%s: Transmitting", __func__); + } else if (direction == Direction::RX) { + ALOGD("%s: Receiving", __func__); + } + if (address_type == AddressType::PUBLIC) { + ALOGD("%s: Public address", __func__); + } else if (address_type == AddressType::RANDOM) { + ALOGD("%s: Random address", __func__); + } + if (lmp_event_id == LmpEventId::CONNECT_IND) { + ALOGD("%s: initiating connection", __func__); + } else if (lmp_event_id == LmpEventId::LL_PHY_UPDATE_IND) { + ALOGD("%s: PHY update indication", __func__); + } + + ALOGD("%s: time: %" PRId64 "counter value: %x", __func__, timestamp.bluetoothTimeUs, conn_event_counter); + + parent_.event_recv = true; + parent_.notify(); + + return ::ndk::ScopedAStatus::ok(); + } + ::ndk::ScopedAStatus onRegistered(bool status) override { + ALOGD("%s: status: %d", __func__, status); + parent_.status_recv = status; + parent_.notify(); + return ::ndk::ScopedAStatus::ok(); + } + }; + + inline void notify() { + std::unique_lock lock(lmp_event_mtx); + lmp_event_cv.notify_one(); + } + + inline void wait(bool is_register_event) { + std::unique_lock lock(lmp_event_mtx); + + + if (is_register_event) { + lmp_event_cv.wait(lock, [&]() { return status_recv == true; }); + } else { + lmp_event_cv.wait_for(lock, kEventTimeoutMs, + [&](){ return event_recv == true; }); + } + + } + + std::shared_ptr ibt_lmp_event_; + std::shared_ptr ibt_lmp_event_cb_; + + AddressType address_type; + std::array address; + + std::atomic event_recv; + bool status_recv; + + std::mutex lmp_event_mtx; + std::condition_variable lmp_event_cv; +}; + +TEST_P(BluetoothLmpEventTest, RegisterAndReceive) { + address = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66}; + address_type = AddressType::RANDOM; + std::vector lmp_event_ids{LmpEventId::CONNECT_IND, LmpEventId::LL_PHY_UPDATE_IND}; + + ibt_lmp_event_->registerForLmpEvents(ibt_lmp_event_cb_, address_type, address, lmp_event_ids); + wait(true); + EXPECT_EQ(true, status_recv); + + /* Wait for event generated here */ + wait(false); + EXPECT_EQ(true, event_recv); + + ibt_lmp_event_->unregisterLmpEvents(address_type, address); +} + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothLmpEventTest); +INSTANTIATE_TEST_SUITE_P(BluetoothLmpEvent, BluetoothLmpEventTest, + testing::ValuesIn(android::getAidlHalInstanceNames(IBluetoothLmpEvent::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + ProcessState::self()->setThreadPoolMaxThreadCount(1); + ProcessState::self()->startThreadPool(); + return RUN_ALL_TESTS(); +} + diff --git a/compatibility_matrices/compatibility_matrix.9.xml b/compatibility_matrices/compatibility_matrix.9.xml index de2e1d14bf..c86bb72f06 100644 --- a/compatibility_matrices/compatibility_matrix.9.xml +++ b/compatibility_matrices/compatibility_matrix.9.xml @@ -154,6 +154,14 @@ default + + android.hardware.bluetooth.lmp_event + 1 + + IBluetoothLmpEvent + default + + android.hardware.boot -- GitLab From e88a10c8e072b38788ea1a3caefae7732a29943f Mon Sep 17 00:00:00 2001 From: Xiang Wang Date: Tue, 12 Sep 2023 17:29:38 -0700 Subject: [PATCH 010/418] Add VTS to check temperature and thresholds are set for SKIN type The test will only run if the product or board first API level is >= 35. Bug: b/288119641 Bug: b/302018405 Test: atest VtsHalThermalTargetTest Change-Id: I0954e23ea674cdc5f92842f7f72a66334deb386c --- thermal/aidl/vts/VtsHalThermalTargetTest.cpp | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/thermal/aidl/vts/VtsHalThermalTargetTest.cpp b/thermal/aidl/vts/VtsHalThermalTargetTest.cpp index 4b0eb655b5..ecb64a706e 100644 --- a/thermal/aidl/vts/VtsHalThermalTargetTest.cpp +++ b/thermal/aidl/vts/VtsHalThermalTargetTest.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #define LOG_TAG "thermal_aidl_hal_test" @@ -227,6 +228,49 @@ TEST_P(ThermalAidlTest, TemperatureThresholdTest) { } } +// Test Thermal->getTemperatureThresholdsWithType(SKIN). +// @VsrTest = GMS-VSR-3.2.5-001 +// @VsrTest = VSR-3.2.5-001 +// @VsrTest = GMS-VSR-3.2.5-002 +// @VsrTest = VSR-3.2.5-002 +TEST_P(ThermalAidlTest, SkinTemperatureThresholdsTest) { + auto apiLevel = ::android::base::GetIntProperty("ro.vendor.api_level", 0); + if (apiLevel < 35) { + GTEST_SKIP() << "Skipping test as the vendor level is below 35: " << apiLevel; + } + std::vector temperatures; + ::ndk::ScopedAStatus status = + mThermal->getTemperaturesWithType(TemperatureType::SKIN, &temperatures); + ASSERT_TRUE(status.isOk()) << "getTemperaturesWithType(SKIN) failed"; + ASSERT_FALSE(temperatures.empty()) << "getTemperaturesWithType(SKIN) returns empty"; + ASSERT_EQ(1, temperatures.size()) + << "getTemperaturesWithType(SKIN) returns multiple temperatures"; + + std::vector thresholds; + status = mThermal->getTemperatureThresholdsWithType(TemperatureType::SKIN, &thresholds); + ASSERT_TRUE(status.isOk()) << "getTemperatureThresholdsWithType(SKIN) failed"; + ASSERT_FALSE(thresholds.empty()) << "getTemperatureThresholdsWithType(SKIN) returns empty"; + ASSERT_EQ(1, thresholds.size()) + << "getTemperatureThresholdsWithType(SKIN) returns multiple thresholds"; + auto temperature = temperatures[0]; + auto threshold = thresholds[0]; + ASSERT_EQ(temperature.name, threshold.name); + auto severities = ::ndk::enum_range(); + auto cardinality = std::distance(severities.begin(), severities.end()); + ASSERT_NE(NAN, temperature.value); + ASSERT_EQ(cardinality, threshold.hotThrottlingThresholds.size()); + float lastThreshold = threshold.hotThrottlingThresholds[1]; + // skip NONE, and check that the rest should be set and non-decreasing + for (auto i = 2; i < cardinality; i++) { + float t = threshold.hotThrottlingThresholds[i]; + ASSERT_NE(NAN, t); + ASSERT_TRUE(t >= lastThreshold) << "Temperature thresholds should be non-decreasing " + << "but got " << t << " for status " << i << " and " + << lastThreshold << " for status " << i - 1; + lastThreshold = t; + } +} + // Test Thermal->getCoolingDevices(). TEST_P(ThermalAidlTest, CoolingDeviceTest) { std::vector ret; -- GitLab From 017972d2d15888649232f518539469ca1a348de4 Mon Sep 17 00:00:00 2001 From: Jesus Sanchez-Palencia Date: Mon, 26 Jun 2023 17:23:53 -0700 Subject: [PATCH 011/418] lights aidl: Add required @Rust derive statements The new LightsService example is written in Rust and is being expanded to include a state as part of the service. This required that HwLight and HwLightState derived from the Copy and Clone traits, so here we are updating the AIDL Rust bindings. This is not an API change, so in order to avoid having to bump the AIDL API version for this HAL we used the hash_gen.sh script as below: $ m android.hardware.light-update-api $ m android.hardware.light-freeze-api $ vim light/aidl/Android.bp # removed frozen_api argument and the newly created version 3 block $ cp -r aidl_api/android.hardware.light/3/* aidl_api/android.hardware.light/2/ $ rm -rf aidl_api/android.hardware.light/3/ $ ./system/tools/aidl/build/hash_gen.sh \ hardware/interfaces/light/aidl/aidl_api/android.hardware.light/2/ \ 1 \ hardware/interfaces/light/aidl/aidl_api/android.hardware.light/2/.hash Tested: Verified that the build is passing and used with the next CL. Bug: 286106270 Change-Id: I1400ec1db1e75595176a5656d6688df9457153d4 (cherry picked from commit ea05baf3386ef96cba90e7811bcbb015273be046) --- light/aidl/aidl_api/android.hardware.light/2/.hash | 1 + .../2/android/hardware/light/HwLight.aidl | 2 +- .../2/android/hardware/light/HwLightState.aidl | 2 +- .../current/android/hardware/light/HwLight.aidl | 2 +- .../current/android/hardware/light/HwLightState.aidl | 2 +- light/aidl/android/hardware/light/HwLight.aidl | 2 +- light/aidl/android/hardware/light/HwLightState.aidl | 2 +- 7 files changed, 7 insertions(+), 6 deletions(-) diff --git a/light/aidl/aidl_api/android.hardware.light/2/.hash b/light/aidl/aidl_api/android.hardware.light/2/.hash index d27f4ad9d4..2d4e7f0a65 100644 --- a/light/aidl/aidl_api/android.hardware.light/2/.hash +++ b/light/aidl/aidl_api/android.hardware.light/2/.hash @@ -1 +1,2 @@ c8b1e8ebb88c57dcb2c350a8d9b722e77dd864c8 +c7d3d941d303c70d1c22759a0b09e41930c1cddb diff --git a/light/aidl/aidl_api/android.hardware.light/2/android/hardware/light/HwLight.aidl b/light/aidl/aidl_api/android.hardware.light/2/android/hardware/light/HwLight.aidl index 25a2dce37d..5ac2a34305 100644 --- a/light/aidl/aidl_api/android.hardware.light/2/android/hardware/light/HwLight.aidl +++ b/light/aidl/aidl_api/android.hardware.light/2/android/hardware/light/HwLight.aidl @@ -32,7 +32,7 @@ // later when a module using the interface is updated, e.g., Mainline modules. package android.hardware.light; -@VintfStability +@RustDerive(Clone=true, Copy=true) @VintfStability parcelable HwLight { int id; int ordinal; diff --git a/light/aidl/aidl_api/android.hardware.light/2/android/hardware/light/HwLightState.aidl b/light/aidl/aidl_api/android.hardware.light/2/android/hardware/light/HwLightState.aidl index 40e520b796..2878ce256f 100644 --- a/light/aidl/aidl_api/android.hardware.light/2/android/hardware/light/HwLightState.aidl +++ b/light/aidl/aidl_api/android.hardware.light/2/android/hardware/light/HwLightState.aidl @@ -32,7 +32,7 @@ // later when a module using the interface is updated, e.g., Mainline modules. package android.hardware.light; -@VintfStability +@RustDerive(Clone=true, Copy=true) @VintfStability parcelable HwLightState { int color; android.hardware.light.FlashMode flashMode; diff --git a/light/aidl/aidl_api/android.hardware.light/current/android/hardware/light/HwLight.aidl b/light/aidl/aidl_api/android.hardware.light/current/android/hardware/light/HwLight.aidl index 25a2dce37d..5ac2a34305 100644 --- a/light/aidl/aidl_api/android.hardware.light/current/android/hardware/light/HwLight.aidl +++ b/light/aidl/aidl_api/android.hardware.light/current/android/hardware/light/HwLight.aidl @@ -32,7 +32,7 @@ // later when a module using the interface is updated, e.g., Mainline modules. package android.hardware.light; -@VintfStability +@RustDerive(Clone=true, Copy=true) @VintfStability parcelable HwLight { int id; int ordinal; diff --git a/light/aidl/aidl_api/android.hardware.light/current/android/hardware/light/HwLightState.aidl b/light/aidl/aidl_api/android.hardware.light/current/android/hardware/light/HwLightState.aidl index 40e520b796..2878ce256f 100644 --- a/light/aidl/aidl_api/android.hardware.light/current/android/hardware/light/HwLightState.aidl +++ b/light/aidl/aidl_api/android.hardware.light/current/android/hardware/light/HwLightState.aidl @@ -32,7 +32,7 @@ // later when a module using the interface is updated, e.g., Mainline modules. package android.hardware.light; -@VintfStability +@RustDerive(Clone=true, Copy=true) @VintfStability parcelable HwLightState { int color; android.hardware.light.FlashMode flashMode; diff --git a/light/aidl/android/hardware/light/HwLight.aidl b/light/aidl/android/hardware/light/HwLight.aidl index 43fdb4bf81..8db32cc043 100644 --- a/light/aidl/android/hardware/light/HwLight.aidl +++ b/light/aidl/android/hardware/light/HwLight.aidl @@ -22,7 +22,7 @@ import android.hardware.light.LightType; * A description of a single light. Multiple lights can map to the same physical * LED. Separate physical LEDs are always represented by separate instances. */ -@VintfStability +@RustDerive(Clone=true, Copy=true) @VintfStability parcelable HwLight { /** * Integer ID used for controlling this light diff --git a/light/aidl/android/hardware/light/HwLightState.aidl b/light/aidl/android/hardware/light/HwLightState.aidl index 24d3250887..3ba6c7874c 100644 --- a/light/aidl/android/hardware/light/HwLightState.aidl +++ b/light/aidl/android/hardware/light/HwLightState.aidl @@ -25,7 +25,7 @@ import android.hardware.light.FlashMode; * Not all lights must support all parameters. If you * can do something backward-compatible, do it. */ -@VintfStability +@RustDerive(Clone=true, Copy=true) @VintfStability parcelable HwLightState { /** * The color of the LED in ARGB. -- GitLab From 5a856698db49a2e78024f10c9ea5060235afe0b1 Mon Sep 17 00:00:00 2001 From: ralph950412 Date: Mon, 11 Dec 2023 16:38:40 +0800 Subject: [PATCH 012/418] sensors: Do not limit aidl-multihal visibility Allowing custom sensor implementations for vendors Change-Id: I9e2b6e8f312ddc85074504a17087d121835a1ca3 --- sensors/aidl/default/multihal/Android.bp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sensors/aidl/default/multihal/Android.bp b/sensors/aidl/default/multihal/Android.bp index a20d6d7434..40cb2d90a7 100644 --- a/sensors/aidl/default/multihal/Android.bp +++ b/sensors/aidl/default/multihal/Android.bp @@ -45,11 +45,6 @@ cc_library_static { "HalProxyAidl.cpp", "ConvertUtils.cpp", ], - visibility: [ - ":__subpackages__", - "//hardware/interfaces/sensors/aidl/multihal:__subpackages__", - "//hardware/interfaces/tests/extension/sensors:__subpackages__", - ], static_libs: [ "android.hardware.sensors@1.0-convert", "android.hardware.sensors@2.X-multihal", -- GitLab From 77ffcf9da67b00d0ca75f90c324ff15c66ae2b68 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Tue, 12 Dec 2023 16:27:58 +0900 Subject: [PATCH 013/418] Set min_sdk_version:34 Change-Id: If43a2327bf3d4fa1ef10fc1965c8901b57b021f5 --- wifi/aidl/Android.bp | 3 +++ wifi/aidl/default/Android.bp | 1 + wifi/common/aidl/Android.bp | 3 +++ 3 files changed, 7 insertions(+) diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp index ac95f85c2b..1a7c6d8335 100644 --- a/wifi/aidl/Android.bp +++ b/wifi/aidl/Android.bp @@ -48,6 +48,9 @@ aidl_interface { cpp: { enabled: false, }, + ndk: { + min_sdk_version: "34", + }, }, versions_with_info: [ { diff --git a/wifi/aidl/default/Android.bp b/wifi/aidl/default/Android.bp index 31a3531046..2e3af1924a 100644 --- a/wifi/aidl/default/Android.bp +++ b/wifi/aidl/default/Android.bp @@ -67,6 +67,7 @@ cc_library_static { name: "android.hardware.wifi-service-lib", defaults: ["android.hardware.wifi-service-cppflags-defaults"], proprietary: true, + min_sdk_version: "34", compile_multilib: "first", cppflags: [ "-Wall", diff --git a/wifi/common/aidl/Android.bp b/wifi/common/aidl/Android.bp index 1913451fd7..6ee2f42903 100644 --- a/wifi/common/aidl/Android.bp +++ b/wifi/common/aidl/Android.bp @@ -43,5 +43,8 @@ aidl_interface { cpp: { enabled: false, }, + ndk: { + min_sdk_version: "34", + }, }, } -- GitLab From 756617334f37e3b4a59d41dec1b96234998e37b9 Mon Sep 17 00:00:00 2001 From: Eva Chen Date: Wed, 6 Dec 2023 01:51:40 -0800 Subject: [PATCH 014/418] Add ULTRASONICS_SENSOR_MEASURED_DISTANCE to HAL layer. Bug: 292141998 Test: atest VtsHalAutomotiveVehicle_TargetTest Test: atest CtsCarTestCases:CarPropertyManagerTest Test: atest CtsCarTestCases:VehiclePropertyIdsTest Change-Id: I1bdd4fe5bd56a8af24c9b720a3e191a55a6a120b --- .../cpp/AccessForVehicleProperty.h | 1 + .../cpp/ChangeModeForVehicleProperty.h | 1 + .../java/AccessForVehicleProperty.java | 1 + .../java/ChangeModeForVehicleProperty.java | 1 + .../automotive/vehicle/VehicleProperty.aidl | 1 + .../automotive/vehicle/VehicleProperty.aidl | 26 +++++++++++++++++++ .../VtsHalAutomotiveVehicle_TargetTest.cpp | 7 +++++ 7 files changed, 38 insertions(+) diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h index 36fc459f47..4d3ae86f98 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h @@ -203,6 +203,7 @@ std::unordered_map AccessForVehiclePrope {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}, diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h index 0e05cff5fc..19ae5bc83b 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h @@ -203,6 +203,7 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, VehiclePropertyChangeMode::STATIC}, {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, VehiclePropertyChangeMode::STATIC}, {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, VehiclePropertyChangeMode::STATIC}, + {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, VehiclePropertyChangeMode::CONTINUOUS}, {VehicleProperty::OBD2_LIVE_FRAME, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::OBD2_FREEZE_FRAME, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::OBD2_FREEZE_FRAME_INFO, VehiclePropertyChangeMode::ON_CHANGE}, diff --git a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java index f274612f32..4cfb178592 100644 --- a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java @@ -195,6 +195,7 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.ULTRASONICS_SENSOR_FIELD_OF_VIEW, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.ULTRASONICS_SENSOR_DETECTION_RANGE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.ULTRASONICS_SENSOR_SUPPORTED_RANGES, VehiclePropertyAccess.READ), + Map.entry(VehicleProperty.ULTRASONICS_SENSOR_MEASURED_DISTANCE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.OBD2_LIVE_FRAME, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.OBD2_FREEZE_FRAME, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_INFO, VehiclePropertyAccess.READ), diff --git a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java index 24860f52d6..f42fa1d34b 100644 --- a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java @@ -195,6 +195,7 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.ULTRASONICS_SENSOR_FIELD_OF_VIEW, VehiclePropertyChangeMode.STATIC), Map.entry(VehicleProperty.ULTRASONICS_SENSOR_DETECTION_RANGE, VehiclePropertyChangeMode.STATIC), Map.entry(VehicleProperty.ULTRASONICS_SENSOR_SUPPORTED_RANGES, VehiclePropertyChangeMode.STATIC), + Map.entry(VehicleProperty.ULTRASONICS_SENSOR_MEASURED_DISTANCE, VehiclePropertyChangeMode.CONTINUOUS), Map.entry(VehicleProperty.OBD2_LIVE_FRAME, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.OBD2_FREEZE_FRAME, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_INFO, VehiclePropertyChangeMode.ON_CHANGE), diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl index 1f69a52400..517860c383 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -201,6 +201,7 @@ enum VehicleProperty { ULTRASONICS_SENSOR_FIELD_OF_VIEW = (((0x0C22 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916130 */, ULTRASONICS_SENSOR_DETECTION_RANGE = (((0x0C23 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916131 */, ULTRASONICS_SENSOR_SUPPORTED_RANGES = (((0x0C24 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916132 */, + ULTRASONICS_SENSOR_MEASURED_DISTANCE = (((0x0C25 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916133 */, OBD2_LIVE_FRAME = (((0x0D00 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896064 */, OBD2_FREEZE_FRAME = (((0x0D01 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896065 */, OBD2_FREEZE_FRAME_INFO = (((0x0D02 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896066 */, diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index 83fde0e4c0..5ff0a2ef1a 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -3454,6 +3454,32 @@ enum VehicleProperty { ULTRASONICS_SENSOR_SUPPORTED_RANGES = 0x0C24 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, + /** + * The distance reading of the nearest detected object per sensor in millimeters. + * + * Each individual sensor is identified by its VehicleAreaConfig#areaId and returns the sensor's + * measured distance formatted as [distance, distance_error] where: + * + * int32Values[0] = distance, the measured distance of the nearest object in millimeters. + * If only a range is supported, this value must be set to the minimum + * supported distance in the detected range as specified in + * ULTRASONICS_SENSOR_SUPPORTED_RANGES. + * int32Values[1] = distance_error, the error of the measured distance value in + * millimeters. + * + * If no object is detected, an empty vector must be returned. If distance_error is not + * available then an array of only the measured distance must be returned. + * + * If the data is aggregated by another ECU, then OEMs have the option of reporting the same + * reading across all included sensors or reporting a virtual representation of all the included + * sensors as if they were one sensor. + * + * @change_mode VehiclePropertyChangeMode.CONTINUOUS + * @access VehiclePropertyAccess.READ + */ + ULTRASONICS_SENSOR_MEASURED_DISTANCE = 0x0C25 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + + VehiclePropertyType.INT32_VEC, + /** * OBD2 Live Sensor Data * diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index ab2e4e7b74..737e0085fa 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -579,6 +579,13 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorSupportedRanges VehiclePropertyType::INT32_VEC); } +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorMeasuredDistanceConfig) { + verifyProperty(VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, + VehiclePropertyAccess::READ, VehiclePropertyChangeMode::CONTINUOUS, + VehiclePropertyGroup::SYSTEM, VehicleArea::VENDOR, + VehiclePropertyType::INT32_VEC); +} + TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyEmergencyLaneKeepAssistEnabledConfig) { verifyProperty(VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_ENABLED, VehiclePropertyAccess::READ_WRITE, VehiclePropertyChangeMode::ON_CHANGE, -- GitLab From cb700ebc64cdaaed2682933ce2304c5164e9e703 Mon Sep 17 00:00:00 2001 From: "Liu, Kai1" Date: Tue, 12 Dec 2023 19:20:49 +0800 Subject: [PATCH 015/418] Make sure the VehiclePropValue object is initialized If MALLOC_ZERO_CONTENTS is false, the new created VehiclePropValue object maybe filled with dirty data, we should initialize it so that its status member can be initialized to zero to avoid timeout when car services get properties, such as property OBD2_LIVE_FRAME. Bug: 315728228 Test: hidl_test Change-Id: I530bc95a3074c917be853f55cd1736558b140da4 Signed-off-by: Liu, Kai1 --- automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp b/automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp index c16b29a2e7..03a9df579b 100644 --- a/automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp +++ b/automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp @@ -30,7 +30,7 @@ namespace V2_0 { std::unique_ptr createVehiclePropValue( VehiclePropertyType type, size_t vecSize) { - auto val = std::unique_ptr(new VehiclePropValue); + auto val = std::unique_ptr(new VehiclePropValue()); switch (type) { case VehiclePropertyType::INT32: // fall through case VehiclePropertyType::INT32_VEC: // fall through -- GitLab From 1357b92dbc687a43fbb702cd818ac806110769e6 Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Wed, 13 Dec 2023 07:38:57 +0000 Subject: [PATCH 016/418] [Secretkeeper] Add maintenance methods Also move error codes from separate `ErrorCode.aidl` file to be inline ERROR_ constants instead. Bug: 291224769 Test: VtsSecretkeeperTargetTest Change-Id: I1b0f3f3b5a7c5e891da3022444bf6c7925850550 --- .../security/secretkeeper/ISecretkeeper.aidl | 5 + .../{ErrorCode.aidl => SecretId.aidl} | 9 +- .../security/secretkeeper/ISecretkeeper.aidl | 30 ++- .../{ErrorCode.aidl => SecretId.aidl} | 16 +- .../secretkeeper/SecretManagement.cddl | 11 +- .../aidl/vts/secretkeeper_test_client.rs | 182 ++++++++++++++++++ security/secretkeeper/default/src/store.rs | 10 + 7 files changed, 236 insertions(+), 27 deletions(-) rename security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/{ErrorCode.aidl => SecretId.aidl} (93%) rename security/secretkeeper/aidl/android/hardware/security/secretkeeper/{ErrorCode.aidl => SecretId.aidl} (69%) diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ISecretkeeper.aidl b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ISecretkeeper.aidl index 023fc8f97f..8ce37cd558 100644 --- a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ISecretkeeper.aidl +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ISecretkeeper.aidl @@ -36,4 +36,9 @@ package android.hardware.security.secretkeeper; interface ISecretkeeper { android.hardware.security.authgraph.IAuthGraphKeyExchange getAuthGraphKe(); byte[] processSecretManagementRequest(in byte[] request); + void deleteIds(in android.hardware.security.secretkeeper.SecretId[] ids); + void deleteAll(); + const int ERROR_UNKNOWN_KEY_ID = 1; + const int ERROR_INTERNAL_ERROR = 2; + const int ERROR_REQUEST_MALFORMED = 3; } diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ErrorCode.aidl b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/SecretId.aidl similarity index 93% rename from security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ErrorCode.aidl rename to security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/SecretId.aidl index cc07f9b3fa..87d0233d03 100644 --- a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ErrorCode.aidl +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/SecretId.aidl @@ -33,10 +33,7 @@ package android.hardware.security.secretkeeper; /* @hide */ -@Backing(type="int") @VintfStability -enum ErrorCode { - OK = 0, - UNKNOWN_KEY_ID = 1, - INTERNAL_ERROR = 2, - REQUEST_MALFORMED = 3, +@VintfStability +parcelable SecretId { + byte[] id; } diff --git a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ISecretkeeper.aidl b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ISecretkeeper.aidl index cb3e9b978a..49c3446265 100644 --- a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ISecretkeeper.aidl +++ b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ISecretkeeper.aidl @@ -17,6 +17,7 @@ package android.hardware.security.secretkeeper; import android.hardware.security.authgraph.IAuthGraphKeyExchange; +import android.hardware.security.secretkeeper.SecretId; @VintfStability /** @@ -30,14 +31,12 @@ import android.hardware.security.authgraph.IAuthGraphKeyExchange; * - A trusted execution environment such as ARM TrustZone. * - A completely separate, purpose-built and certified secure CPU. * - * TODO(b/291224769): Extend the HAL interface to include: - * 1. Dice policy operation - These allow sealing of the secrets with a class of Dice chains. - * Typical operations are (securely) updating the dice policy sealing the Secrets above. These - * operations are core to AntiRollback protected secrets - ie, ensuring secrets of a pVM are only - * accessible to same or higher versions of the images. - * 2. Maintenance API: This is required for removing the Secretkeeper entries for obsolete pVMs. */ interface ISecretkeeper { + const int ERROR_UNKNOWN_KEY_ID = 1; + const int ERROR_INTERNAL_ERROR = 2; + const int ERROR_REQUEST_MALFORMED = 3; + /** * Retrieve the instance of the `IAuthGraphKeyExchange` HAL that should be used for shared * session key establishment. These keys are used to perform encryption of messages as @@ -60,8 +59,8 @@ interface ISecretkeeper { * Virtual Machines). For this, service (& client) must implement a key exchange protocol, which * is critical for establishing the secure channel. * - * If an encrypted response cannot be generated, then a service-specific Binder error using an - * error code from ErrorCode.aidl will be returned. + * If an encrypted response cannot be generated, then a service-specific Binder error using one + * of the ERROR_ codes above will be returned. * * Secretkeeper database should guarantee the following properties: * @@ -82,4 +81,19 @@ interface ISecretkeeper { * @return CBOR-encoded ProtectedResponsePacket. See SecretManagement.cddl for its definition */ byte[] processSecretManagementRequest(in byte[] request); + + /** + * Delete the data corresponding to a collection of IDs. + * + * Note that unlike `processSecretManagementRequest`, the contents of this method are in + * plaintext, and no client authentication is required. + * + * @param Secret identifiers to delete. + */ + void deleteIds(in SecretId[] ids); + + /** + * Delete data of all clients. + */ + void deleteAll(); } diff --git a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ErrorCode.aidl b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretId.aidl similarity index 69% rename from security/secretkeeper/aidl/android/hardware/security/secretkeeper/ErrorCode.aidl rename to security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretId.aidl index e9cce09f9f..bd982e7c69 100644 --- a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ErrorCode.aidl +++ b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretId.aidl @@ -17,17 +17,13 @@ package android.hardware.security.secretkeeper; /** - * Secretkeeper unencrypted error code, returned via AIDL as service specific errors in - * EX_SERVICE_SPECIFIC. + * SecretId contains an identifier for a secret held by Secretkeeper. * @hide */ @VintfStability -@Backing(type="int") -enum ErrorCode { - OK = 0, - UNKNOWN_KEY_ID = 1, - INTERNAL_ERROR = 2, - REQUEST_MALFORMED = 3, - - // TODO(b/291224769): Create a more exhaustive set of error code values. +parcelable SecretId { + /** + * 64-byte identifier for a secret. + */ + byte[] id; } diff --git a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretManagement.cddl b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretManagement.cddl index 66ca8ed6ba..3d080789f1 100644 --- a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretManagement.cddl +++ b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretManagement.cddl @@ -9,8 +9,8 @@ ProtectedRequestPacket = CryptoPayload CryptoPayload = [ ; COSE_Encrypt0 (untagged), [RFC 9052 s5.2] protected: bstr .cbor { 1 : 3, ; Algorithm: AES-GCM mode w/ 256-bit key, 128-bit tag - 4 : bstr ; key identifier, uniquely identifies the session - ; TODO(b/291228560): Refer to the Key Exchange spec. + 4 : bstr ; key identifier set to session ID produced + ; by AuthGraph key exchange. }, unprotected: { 5 : bstr .size 12 ; IV @@ -32,8 +32,11 @@ GetVersionOpcode = 1 ; Get version of the SecretManagement API StoreSecretOpcode = 2 ; Store a secret GetSecretOpcode = 3 ; Get the secret +; Retrieve Secretkeeper version. GetVersionParams = () +; Store a secret identified by the given ID, with access to the secret policed +; by the associated sealing policy. StoreSecretParams = ( id : SecretId, secret : Secret, @@ -42,6 +45,9 @@ StoreSecretParams = ( ; INCLUDE DicePolicy.cddl for: DicePolicy +; Retrieve a secret identified by the given ID, policed according to the sealing +; policy that was associated with the secret. If successful, optionally also +; update the sealing policy for the secret. GetSecretParams = ( id : SecretId, ; Retrieving the value of a secret may optionally also update the sealing @@ -68,7 +74,6 @@ ResponsePacket = ; An error code in the inner response message indicates a failure in ; secret management processing. -; TODO(b/291224769): Create a more exhaustive set of ErrorCodes ErrorCode = &( ; Use this as if no other error code can be used. ErrorCode_UnexpectedServerError: 1, diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index a473bd0eba..b5cca275b2 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -28,6 +28,7 @@ use secretkeeper_comm::data_types::{Id, ID_SIZE, Secret, SECRET_SIZE}; use secretkeeper_comm::data_types::response::Response; use secretkeeper_comm::data_types::packet::{ResponsePacket, ResponseType}; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; +use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::SecretId::SecretId; use authgraph_vts_test as ag_vts; use authgraph_boringssl as boring; use authgraph_core::key; @@ -52,6 +53,12 @@ const ID_EXAMPLE: [u8; ID_SIZE] = [ 0xCC, 0x24, 0xFD, 0xBF, 0x91, 0x4A, 0x54, 0x84, 0xF9, 0x01, 0x59, 0x25, 0x70, 0x89, 0x38, 0x8D, 0x5E, 0xE6, 0x91, 0xDF, 0x68, 0x60, 0x69, 0x26, 0xBE, 0xFE, 0x79, 0x58, 0xF7, 0xEA, 0x81, 0x7D, ]; +const ID_EXAMPLE_2: [u8; ID_SIZE] = [ + 0x6A, 0xCC, 0xB1, 0xEB, 0xBB, 0xAB, 0xE3, 0xEA, 0x44, 0xBD, 0xDC, 0x75, 0x75, 0x7D, 0xC0, 0xE5, + 0xC7, 0x86, 0x41, 0x56, 0x39, 0x66, 0x96, 0x10, 0xCB, 0x43, 0x10, 0x79, 0x03, 0xDC, 0xE6, 0x9F, + 0x12, 0x2B, 0xEF, 0x28, 0x9C, 0x1E, 0x32, 0x46, 0x5F, 0xA3, 0xE7, 0x8D, 0x53, 0x63, 0xE8, 0x30, + 0x5A, 0x17, 0x6F, 0xEF, 0x42, 0xD6, 0x58, 0x7A, 0xF0, 0xCB, 0xD4, 0x40, 0x58, 0x96, 0x32, 0xF4, +]; const ID_NOT_STORED: [u8; ID_SIZE] = [ 0x56, 0xD0, 0x4E, 0xAA, 0xC1, 0x7B, 0x55, 0x6B, 0xA0, 0x2C, 0x65, 0x43, 0x39, 0x0A, 0x6C, 0xE9, 0x1F, 0xD0, 0x0E, 0x20, 0x3E, 0xFB, 0xF5, 0xF9, 0x3F, 0x5B, 0x11, 0x1B, 0x18, 0x73, 0xF6, 0xBB, @@ -294,6 +301,181 @@ fn secret_management_store_get_secret_not_found() { store_response.response_type().unwrap(), ResponseType::Success ); + // Really just checking that the response is indeed StoreSecretResponse + let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + + // Get the secret that was never stored + let get_request = GetSecretRequest { + id: Id(ID_NOT_STORED), + updated_sealing_policy: None, + }; + let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + + let get_response = sk_client.secret_management_request(&get_request); + + // Expect the entry not to be found. + let get_response = ResponsePacket::from_slice(&get_response).unwrap(); + assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); + let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); + assert_eq!(err, SecretkeeperError::EntryNotFound); +} + +#[test] +fn secretkeeper_store_delete_ids() { + let sk_client = match SkClient::new() { + Some(sk) => sk, + None => { + warn!("Secretkeeper HAL is unavailable, skipping test"); + return; + } + }; + + let store_request = StoreSecretRequest { + id: Id(ID_EXAMPLE), + secret: Secret(SECRET_EXAMPLE), + sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), + }; + + let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + let store_response = sk_client.secret_management_request(&store_request); + let store_response = ResponsePacket::from_slice(&store_response).unwrap(); + + assert_eq!( + store_response.response_type().unwrap(), + ResponseType::Success + ); + // Really just checking that the response is indeed StoreSecretResponse + let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + + sk_client + .sk + .deleteIds(&[SecretId { + id: ID_EXAMPLE.to_vec(), + }]) + .unwrap(); + + // Try to get the secret that was just stored & deleted + let get_request = GetSecretRequest { + id: Id(ID_EXAMPLE), + updated_sealing_policy: None, + }; + let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + + let get_response = sk_client.secret_management_request(&get_request); + + // Expect the entry not to be found. + let get_response = ResponsePacket::from_slice(&get_response).unwrap(); + assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); + let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); + assert_eq!(err, SecretkeeperError::EntryNotFound); +} + +#[test] +fn secretkeeper_store_delete_all() { + let sk_client = match SkClient::new() { + Some(sk) => sk, + None => { + warn!("Secretkeeper HAL is unavailable, skipping test"); + return; + } + }; + + let store_request = StoreSecretRequest { + id: Id(ID_EXAMPLE), + secret: Secret(SECRET_EXAMPLE), + sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), + }; + + let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + let store_response = sk_client.secret_management_request(&store_request); + let store_response = ResponsePacket::from_slice(&store_response).unwrap(); + + assert_eq!( + store_response.response_type().unwrap(), + ResponseType::Success + ); + // Really just checking that the response is indeed StoreSecretResponse + let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + + let store_request = StoreSecretRequest { + id: Id(ID_EXAMPLE_2), + secret: Secret(SECRET_EXAMPLE), + sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), + }; + + let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + let store_response = sk_client.secret_management_request(&store_request); + let store_response = ResponsePacket::from_slice(&store_response).unwrap(); + + assert_eq!( + store_response.response_type().unwrap(), + ResponseType::Success + ); + // Really just checking that the response is indeed StoreSecretResponse + let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + + sk_client.sk.deleteAll().unwrap(); + + // Get the first secret that was just stored before deleteAll + let get_request = GetSecretRequest { + id: Id(ID_EXAMPLE), + updated_sealing_policy: None, + }; + let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + + let get_response = sk_client.secret_management_request(&get_request); + + // Expect the entry not to be found. + let get_response = ResponsePacket::from_slice(&get_response).unwrap(); + assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); + let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); + assert_eq!(err, SecretkeeperError::EntryNotFound); + + // Get the second secret that was just stored before deleteAll + let get_request = GetSecretRequest { + id: Id(ID_EXAMPLE_2), + updated_sealing_policy: None, + }; + let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + + let get_response = sk_client.secret_management_request(&get_request); + + // Expect the entry not to be found. + let get_response = ResponsePacket::from_slice(&get_response).unwrap(); + assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); + let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); + assert_eq!(err, SecretkeeperError::EntryNotFound); + + // Store a new secret (corresponding to an id). + let store_request = StoreSecretRequest { + id: Id(ID_EXAMPLE), + secret: Secret(SECRET_EXAMPLE), + sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), + }; + + let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + let store_response = sk_client.secret_management_request(&store_request); + let store_response = ResponsePacket::from_slice(&store_response).unwrap(); + + assert_eq!( + store_response.response_type().unwrap(), + ResponseType::Success + ); + + // Get the restored secret. + let get_request = GetSecretRequest { + id: Id(ID_EXAMPLE), + updated_sealing_policy: None, + }; + let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + + let get_response = sk_client.secret_management_request(&get_request); + let get_response = ResponsePacket::from_slice(&get_response).unwrap(); + + // Get the secret that was just re-stored. + assert_eq!(get_response.response_type().unwrap(), ResponseType::Success); + let get_response = *GetSecretResponse::deserialize_from_packet(get_response).unwrap(); + assert_eq!(get_response.secret.0, SECRET_EXAMPLE); // (Try to) Get the secret that was never stored let get_request = GetSecretRequest { diff --git a/security/secretkeeper/default/src/store.rs b/security/secretkeeper/default/src/store.rs index 7b2d0b94d6..a7fb3b7454 100644 --- a/security/secretkeeper/default/src/store.rs +++ b/security/secretkeeper/default/src/store.rs @@ -33,4 +33,14 @@ impl KeyValueStore for InMemoryStore { let optional_val = self.0.get(key); Ok(optional_val.cloned()) } + + fn delete(&mut self, key: &[u8]) -> Result<(), Error> { + self.0.remove(key); + Ok(()) + } + + fn delete_all(&mut self) -> Result<(), Error> { + self.0.clear(); + Ok(()) + } } -- GitLab From 38174301c6c5a7dd6500af2961528cf763f1521f Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Wed, 13 Dec 2023 10:50:03 +0000 Subject: [PATCH 017/418] Secretkeeper: improve VTS tests - Look for either /default or /nonsecure instances. - Only run a `deleteAll()` test on a /nonsecure instance. - Delete IDs on client drop to ensure a consistent state. - Use a config that ensures tests are run single-threaded, to ensure a consistent state. - Shift to using types not raw arrays. - Add a macro for common test setup. - Add helper methods to reduce the amount of copy-pasta in the VTS tests. - Use these helpers to create some additional tests. Test: VtsSecretkeeperTargetTest Bug: 291224769 Change-Id: Icff0bba1bcdd66b18398ed4b64ebd2c6bc0de7e7 --- security/secretkeeper/aidl/vts/Android.bp | 2 + .../secretkeeper/aidl/vts/AndroidTest.xml | 31 ++ .../aidl/vts/secretkeeper_test_client.rs | 468 +++++++----------- 3 files changed, 216 insertions(+), 285 deletions(-) create mode 100644 security/secretkeeper/aidl/vts/AndroidTest.xml diff --git a/security/secretkeeper/aidl/vts/Android.bp b/security/secretkeeper/aidl/vts/Android.bp index c130a3a118..7fc7a70f78 100644 --- a/security/secretkeeper/aidl/vts/Android.bp +++ b/security/secretkeeper/aidl/vts/Android.bp @@ -25,6 +25,7 @@ rust_test { "general-tests", "vts", ], + test_config: "AndroidTest.xml", rustlibs: [ "libsecretkeeper_comm_nostd", "libsecretkeeper_core_nostd", @@ -36,6 +37,7 @@ rust_test { "libbinder_rs", "libcoset", "liblog_rust", + "liblogger", ], require_root: true, } diff --git a/security/secretkeeper/aidl/vts/AndroidTest.xml b/security/secretkeeper/aidl/vts/AndroidTest.xml new file mode 100644 index 0000000000..4fee78f5c2 --- /dev/null +++ b/security/secretkeeper/aidl/vts/AndroidTest.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index b5cca275b2..6a70d023eb 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -14,27 +14,28 @@ * limitations under the License. */ -#[cfg(test)] +#![cfg(test)] + +use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; +use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::SecretId::SecretId; +use authgraph_vts_test as ag_vts; +use authgraph_boringssl as boring; +use authgraph_core::key; use binder::StatusCode; use coset::{CborSerializable, CoseEncrypt0}; -use log::warn; +use log::{info, warn}; use secretkeeper_core::cipher; use secretkeeper_comm::data_types::error::SecretkeeperError; use secretkeeper_comm::data_types::request::Request; use secretkeeper_comm::data_types::request_response_impl::{ GetVersionRequest, GetVersionResponse, GetSecretRequest, GetSecretResponse, StoreSecretRequest, StoreSecretResponse }; -use secretkeeper_comm::data_types::{Id, ID_SIZE, Secret, SECRET_SIZE}; +use secretkeeper_comm::data_types::{Id, Secret}; use secretkeeper_comm::data_types::response::Response; use secretkeeper_comm::data_types::packet::{ResponsePacket, ResponseType}; -use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; -use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::SecretId::SecretId; -use authgraph_vts_test as ag_vts; -use authgraph_boringssl as boring; -use authgraph_core::key; -const SECRETKEEPER_IDENTIFIER: &str = - "android.hardware.security.secretkeeper.ISecretkeeper/nonsecure"; +const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; +const SECRETKEEPER_INSTANCES: [&'static str; 2] = ["nonsecure", "default"]; const CURRENT_VERSION: u64 = 1; // TODO(b/291238565): This will change once libdice_policy switches to Explicit-key DiceCertChain @@ -47,38 +48,62 @@ const HYPOTHETICAL_DICE_POLICY: [u8; 43] = [ ]; // Random bytes (of ID_SIZE/SECRET_SIZE) generated for tests. -const ID_EXAMPLE: [u8; ID_SIZE] = [ +const ID_EXAMPLE: Id = Id([ 0xF1, 0xB2, 0xED, 0x3B, 0xD1, 0xBD, 0xF0, 0x7D, 0xE1, 0xF0, 0x01, 0xFC, 0x61, 0x71, 0xD3, 0x42, 0xE5, 0x8A, 0xAF, 0x33, 0x6C, 0x11, 0xDC, 0xC8, 0x6F, 0xAE, 0x12, 0x5C, 0x26, 0x44, 0x6B, 0x86, 0xCC, 0x24, 0xFD, 0xBF, 0x91, 0x4A, 0x54, 0x84, 0xF9, 0x01, 0x59, 0x25, 0x70, 0x89, 0x38, 0x8D, 0x5E, 0xE6, 0x91, 0xDF, 0x68, 0x60, 0x69, 0x26, 0xBE, 0xFE, 0x79, 0x58, 0xF7, 0xEA, 0x81, 0x7D, -]; -const ID_EXAMPLE_2: [u8; ID_SIZE] = [ +]); +const ID_EXAMPLE_2: Id = Id([ 0x6A, 0xCC, 0xB1, 0xEB, 0xBB, 0xAB, 0xE3, 0xEA, 0x44, 0xBD, 0xDC, 0x75, 0x75, 0x7D, 0xC0, 0xE5, 0xC7, 0x86, 0x41, 0x56, 0x39, 0x66, 0x96, 0x10, 0xCB, 0x43, 0x10, 0x79, 0x03, 0xDC, 0xE6, 0x9F, 0x12, 0x2B, 0xEF, 0x28, 0x9C, 0x1E, 0x32, 0x46, 0x5F, 0xA3, 0xE7, 0x8D, 0x53, 0x63, 0xE8, 0x30, 0x5A, 0x17, 0x6F, 0xEF, 0x42, 0xD6, 0x58, 0x7A, 0xF0, 0xCB, 0xD4, 0x40, 0x58, 0x96, 0x32, 0xF4, -]; -const ID_NOT_STORED: [u8; ID_SIZE] = [ +]); +const ID_NOT_STORED: Id = Id([ 0x56, 0xD0, 0x4E, 0xAA, 0xC1, 0x7B, 0x55, 0x6B, 0xA0, 0x2C, 0x65, 0x43, 0x39, 0x0A, 0x6C, 0xE9, 0x1F, 0xD0, 0x0E, 0x20, 0x3E, 0xFB, 0xF5, 0xF9, 0x3F, 0x5B, 0x11, 0x1B, 0x18, 0x73, 0xF6, 0xBB, 0xAB, 0x9F, 0xF2, 0xD6, 0xBD, 0xBA, 0x25, 0x68, 0x22, 0x30, 0xF2, 0x1F, 0x90, 0x05, 0xF3, 0x64, 0xE7, 0xEF, 0xC6, 0xB6, 0xA0, 0x85, 0xC9, 0x40, 0x40, 0xF0, 0xB4, 0xB9, 0xD8, 0x28, 0xEE, 0x9C, -]; -const SECRET_EXAMPLE: [u8; SECRET_SIZE] = [ +]); +const SECRET_EXAMPLE: Secret = Secret([ 0xA9, 0x89, 0x97, 0xFE, 0xAE, 0x97, 0x55, 0x4B, 0x32, 0x35, 0xF0, 0xE8, 0x93, 0xDA, 0xEA, 0x24, 0x06, 0xAC, 0x36, 0x8B, 0x3C, 0x95, 0x50, 0x16, 0x67, 0x71, 0x65, 0x26, 0xEB, 0xD0, 0xC3, 0x98, -]; +]); + +fn get_connection() -> Option<(binder::Strong, String)> { + // Initialize logging (which is OK to call multiple times). + logger::init(logger::Config::default().with_min_level(log::Level::Debug)); + + // TODO: replace this with a parameterized set of tests that run for each available instance of + // ISecretkeeper (rather than having a fixed set of instance names to look for). + for instance in &SECRETKEEPER_INSTANCES { + let name = format!("{SECRETKEEPER_SERVICE}/{instance}"); + match binder::get_interface(&name) { + Ok(sk) => { + info!("Running test against /{instance}"); + return Some((sk, name)); + } + Err(StatusCode::NAME_NOT_FOUND) => { + info!("No /{instance} instance of ISecretkeeper present"); + } + Err(e) => { + panic!("unexpected error while fetching connection to Secretkeeper {:?}", e); + } + } + } + None +} -fn get_connection() -> Option> { - match binder::get_interface(SECRETKEEPER_IDENTIFIER) { - Ok(sk) => Some(sk), - Err(StatusCode::NAME_NOT_FOUND) => None, - Err(e) => { - panic!( - "unexpected error while fetching connection to Secretkeeper {:?}", - e - ); +/// Macro to perform test setup. Invokes `return` if no Secretkeeper instance available. +macro_rules! setup_client { + {} => { + match SkClient::new() { + Some(sk) => sk, + None => { + warn!("Secretkeeper HAL is unavailable, skipping test"); + return; + } } } } @@ -86,42 +111,86 @@ fn get_connection() -> Option> { /// Secretkeeper client information. struct SkClient { sk: binder::Strong, + name: String, aes_keys: [key::AesKey; 2], session_id: Vec, } +impl Drop for SkClient { + fn drop(&mut self) { + // Delete any IDs that may be left over. + self.delete(&[&ID_EXAMPLE, &ID_EXAMPLE_2]); + } +} + impl SkClient { fn new() -> Option { - let sk = get_connection()?; + let (sk, name) = get_connection()?; let (aes_keys, session_id) = authgraph_key_exchange(sk.clone()); - Some(Self { - sk, - aes_keys, - session_id, - }) + Some(Self { sk, name, aes_keys, session_id }) } + /// Wrapper around `ISecretkeeper::processSecretManagementRequest` that handles /// encryption and decryption. fn secret_management_request(&self, req_data: &[u8]) -> Vec { let aes_gcm = boring::BoringAes; let rng = boring::BoringRng; - let request_bytes = cipher::encrypt_message( - &aes_gcm, - &rng, - &self.aes_keys[0], - &self.session_id, - &req_data, - ) - .unwrap(); - - let response_bytes = self - .sk - .processSecretManagementRequest(&request_bytes) - .unwrap(); + let request_bytes = + cipher::encrypt_message(&aes_gcm, &rng, &self.aes_keys[0], &self.session_id, &req_data) + .unwrap(); + + let response_bytes = self.sk.processSecretManagementRequest(&request_bytes).unwrap(); let response_encrypt0 = CoseEncrypt0::from_slice(&response_bytes).unwrap(); cipher::decrypt_message(&aes_gcm, &self.aes_keys[1], &response_encrypt0).unwrap() } + + /// Helper method to store a secret. + fn store(&self, id: &Id, secret: &Secret) { + let store_request = StoreSecretRequest { + id: id.clone(), + secret: secret.clone(), + sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), + }; + let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + + let store_response = self.secret_management_request(&store_request); + let store_response = ResponsePacket::from_slice(&store_response).unwrap(); + + assert_eq!(store_response.response_type().unwrap(), ResponseType::Success); + // Really just checking that the response is indeed StoreSecretResponse + let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + } + + /// Helper method to get a secret. + fn get(&self, id: &Id) -> Option { + let get_request = GetSecretRequest { id: id.clone(), updated_sealing_policy: None }; + let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + + let get_response = self.secret_management_request(&get_request); + let get_response = ResponsePacket::from_slice(&get_response).unwrap(); + + if get_response.response_type().unwrap() == ResponseType::Success { + let get_response = *GetSecretResponse::deserialize_from_packet(get_response).unwrap(); + Some(Secret(get_response.secret.0)) + } else { + // Only expect a not-found failure. + let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); + assert_eq!(err, SecretkeeperError::EntryNotFound); + None + } + } + + /// Helper method to delete secrets. + fn delete(&self, ids: &[&Id]) { + let ids: Vec = ids.iter().map(|id| SecretId { id: id.0.to_vec() }).collect(); + self.sk.deleteIds(&ids).unwrap(); + } + + /// Helper method to delete everything. + fn delete_all(&self) { + self.sk.deleteAll().unwrap(); + } } /// Perform AuthGraph key exchange, returning the session keys and session ID. @@ -135,7 +204,7 @@ fn authgraph_key_exchange(sk: binder::Strong) -> ([key::AesKe /// mainline key exchange against a local source implementation. #[test] fn authgraph_mainline() { - let sk = match get_connection() { + let (sk, _) = match get_connection() { Some(sk) => sk, None => { warn!("Secretkeeper HAL is unavailable, skipping test"); @@ -149,7 +218,7 @@ fn authgraph_mainline() { /// a corrupted session ID signature. #[test] fn authgraph_corrupt_sig() { - let sk = match get_connection() { + let (sk, _) = match get_connection() { Some(sk) => sk, None => { warn!("Secretkeeper HAL is unavailable, skipping test"); @@ -165,7 +234,7 @@ fn authgraph_corrupt_sig() { /// when corrupted keys are returned to it. #[test] fn authgraph_corrupt_keys() { - let sk = match get_connection() { + let (sk, _) = match get_connection() { Some(sk) => sk, None => { warn!("Secretkeeper HAL is unavailable, skipping test"); @@ -182,13 +251,7 @@ fn authgraph_corrupt_keys() { #[test] fn secret_management_get_version() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; + let sk_client = setup_client!(); let request = GetVersionRequest {}; let request_packet = request.serialize_to_packet(); @@ -197,10 +260,7 @@ fn secret_management_get_version() { let response_bytes = sk_client.secret_management_request(&request_bytes); let response_packet = ResponsePacket::from_slice(&response_bytes).unwrap(); - assert_eq!( - response_packet.response_type().unwrap(), - ResponseType::Success - ); + assert_eq!(response_packet.response_type().unwrap(), ResponseType::Success); let get_version_response = *GetVersionResponse::deserialize_from_packet(response_packet).unwrap(); assert_eq!(get_version_response.version, CURRENT_VERSION); @@ -208,13 +268,7 @@ fn secret_management_get_version() { #[test] fn secret_management_malformed_request() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; + let sk_client = setup_client!(); let request = GetVersionRequest {}; let request_packet = request.serialize_to_packet(); @@ -226,268 +280,112 @@ fn secret_management_malformed_request() { let response_bytes = sk_client.secret_management_request(&request_bytes); let response_packet = ResponsePacket::from_slice(&response_bytes).unwrap(); - assert_eq!( - response_packet.response_type().unwrap(), - ResponseType::Error - ); + assert_eq!(response_packet.response_type().unwrap(), ResponseType::Error); let err = *SecretkeeperError::deserialize_from_packet(response_packet).unwrap(); assert_eq!(err, SecretkeeperError::RequestMalformed); } #[test] fn secret_management_store_get_secret_found() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; - - let store_request = StoreSecretRequest { - id: Id(ID_EXAMPLE), - secret: Secret(SECRET_EXAMPLE), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; - - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + let sk_client = setup_client!(); - let store_response = sk_client.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); - - assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success - ); - // Really just checking that the response is indeed StoreSecretResponse - let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); // Get the secret that was just stored - let get_request = GetSecretRequest { - id: Id(ID_EXAMPLE), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); - - let get_response = sk_client.secret_management_request(&get_request); - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - assert_eq!(get_response.response_type().unwrap(), ResponseType::Success); - let get_response = *GetSecretResponse::deserialize_from_packet(get_response).unwrap(); - assert_eq!(get_response.secret.0, SECRET_EXAMPLE); + assert_eq!(sk_client.get(&ID_EXAMPLE), Some(SECRET_EXAMPLE)); } #[test] fn secret_management_store_get_secret_not_found() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; + let sk_client = setup_client!(); // Store a secret (corresponding to an id). - let store_request = StoreSecretRequest { - id: Id(ID_EXAMPLE), - secret: Secret(SECRET_EXAMPLE), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; - - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); - let store_response = sk_client.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); - - assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success - ); - // Really just checking that the response is indeed StoreSecretResponse - let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); // Get the secret that was never stored - let get_request = GetSecretRequest { - id: Id(ID_NOT_STORED), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); - - let get_response = sk_client.secret_management_request(&get_request); - - // Expect the entry not to be found. - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); - let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); - assert_eq!(err, SecretkeeperError::EntryNotFound); + assert_eq!(sk_client.get(&ID_NOT_STORED), None); } #[test] fn secretkeeper_store_delete_ids() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; + let sk_client = setup_client!(); - let store_request = StoreSecretRequest { - id: Id(ID_EXAMPLE), - secret: Secret(SECRET_EXAMPLE), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + sk_client.delete(&[&ID_EXAMPLE]); - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); - let store_response = sk_client.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); - - assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success - ); - // Really just checking that the response is indeed StoreSecretResponse - let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); - - sk_client - .sk - .deleteIds(&[SecretId { - id: ID_EXAMPLE.to_vec(), - }]) - .unwrap(); - - // Try to get the secret that was just stored & deleted - let get_request = GetSecretRequest { - id: Id(ID_EXAMPLE), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + assert_eq!(sk_client.get(&ID_EXAMPLE), None); + assert_eq!(sk_client.get(&ID_EXAMPLE_2), Some(SECRET_EXAMPLE)); - let get_response = sk_client.secret_management_request(&get_request); + sk_client.delete(&[&ID_EXAMPLE_2]); - // Expect the entry not to be found. - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); - let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); - assert_eq!(err, SecretkeeperError::EntryNotFound); + assert_eq!(sk_client.get(&ID_EXAMPLE), None); + assert_eq!(sk_client.get(&ID_EXAMPLE_2), None); } #[test] -fn secretkeeper_store_delete_all() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +fn secretkeeper_store_delete_multiple_ids() { + let sk_client = setup_client!(); - let store_request = StoreSecretRequest { - id: Id(ID_EXAMPLE), - secret: Secret(SECRET_EXAMPLE), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + sk_client.delete(&[&ID_EXAMPLE, &ID_EXAMPLE_2]); - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); - let store_response = sk_client.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); - - assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success - ); - // Really just checking that the response is indeed StoreSecretResponse - let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); - - let store_request = StoreSecretRequest { - id: Id(ID_EXAMPLE_2), - secret: Secret(SECRET_EXAMPLE), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; + assert_eq!(sk_client.get(&ID_EXAMPLE), None); + assert_eq!(sk_client.get(&ID_EXAMPLE_2), None); +} - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); - let store_response = sk_client.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); +#[test] +fn secretkeeper_store_delete_duplicate_ids() { + let sk_client = setup_client!(); - assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success - ); - // Really just checking that the response is indeed StoreSecretResponse - let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + // Delete the same secret twice. + sk_client.delete(&[&ID_EXAMPLE, &ID_EXAMPLE]); - sk_client.sk.deleteAll().unwrap(); + assert_eq!(sk_client.get(&ID_EXAMPLE), None); + assert_eq!(sk_client.get(&ID_EXAMPLE_2), Some(SECRET_EXAMPLE)); +} - // Get the first secret that was just stored before deleteAll - let get_request = GetSecretRequest { - id: Id(ID_EXAMPLE), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); +#[test] +fn secretkeeper_store_delete_nonexistent() { + let sk_client = setup_client!(); - let get_response = sk_client.secret_management_request(&get_request); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + sk_client.delete(&[&ID_NOT_STORED]); - // Expect the entry not to be found. - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); - let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); - assert_eq!(err, SecretkeeperError::EntryNotFound); + assert_eq!(sk_client.get(&ID_EXAMPLE), Some(SECRET_EXAMPLE)); + assert_eq!(sk_client.get(&ID_EXAMPLE_2), Some(SECRET_EXAMPLE)); + assert_eq!(sk_client.get(&ID_NOT_STORED), None); +} - // Get the second secret that was just stored before deleteAll - let get_request = GetSecretRequest { - id: Id(ID_EXAMPLE_2), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); +#[test] +fn secretkeeper_store_delete_all() { + let sk_client = setup_client!(); - let get_response = sk_client.secret_management_request(&get_request); + if sk_client.name != "nonsecure" { + // Don't run deleteAll() on a secure device, as it might affect + // real secrets. + warn!("skipping deleteAll test due to real impl"); + return; + } - // Expect the entry not to be found. - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); - let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); - assert_eq!(err, SecretkeeperError::EntryNotFound); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); - // Store a new secret (corresponding to an id). - let store_request = StoreSecretRequest { - id: Id(ID_EXAMPLE), - secret: Secret(SECRET_EXAMPLE), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; + sk_client.delete_all(); - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); - let store_response = sk_client.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); + assert_eq!(sk_client.get(&ID_EXAMPLE), None); + assert_eq!(sk_client.get(&ID_EXAMPLE_2), None); - assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success - ); + // Store a new secret (corresponding to an id). + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); // Get the restored secret. - let get_request = GetSecretRequest { - id: Id(ID_EXAMPLE), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); - - let get_response = sk_client.secret_management_request(&get_request); - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - - // Get the secret that was just re-stored. - assert_eq!(get_response.response_type().unwrap(), ResponseType::Success); - let get_response = *GetSecretResponse::deserialize_from_packet(get_response).unwrap(); - assert_eq!(get_response.secret.0, SECRET_EXAMPLE); + assert_eq!(sk_client.get(&ID_EXAMPLE), Some(SECRET_EXAMPLE)); // (Try to) Get the secret that was never stored - let get_request = GetSecretRequest { - id: Id(ID_NOT_STORED), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); - let get_response = sk_client.secret_management_request(&get_request); - - // Check that response is `SecretkeeperError::EntryNotFound` - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); - let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); - assert_eq!(err, SecretkeeperError::EntryNotFound); + assert_eq!(sk_client.get(&ID_NOT_STORED), None); } -- GitLab From 31b09489156990e9794466298889d11d506dbd82 Mon Sep 17 00:00:00 2001 From: maheshkkv Date: Wed, 13 Dec 2023 09:42:23 -0800 Subject: [PATCH 018/418] Add I2R and R2I 11az LTF repetition count Add IEEE 802.11az LTF repetition count for both I2R and R2I in 11az RTT ranging result. Also remove the LTF repetition count from RTT capabilities and config. The reason for removing is that vendor software can pick the optimized value without an input from framework. Bug: 295619650 Test: m Change-Id: I54b3ba9f490a9de83ac63b1dcde1e1cb4e1bd8fc --- .../android/hardware/wifi/RttCapabilities.aidl | 1 - .../current/android/hardware/wifi/RttConfig.aidl | 1 - .../current/android/hardware/wifi/RttResult.aidl | 3 ++- wifi/aidl/android/hardware/wifi/RttCapabilities.aidl | 5 ----- wifi/aidl/android/hardware/wifi/RttConfig.aidl | 5 ----- wifi/aidl/android/hardware/wifi/RttResult.aidl | 10 ++++++++-- wifi/aidl/default/aidl_struct_util.cpp | 12 ++++++------ 7 files changed, 16 insertions(+), 21 deletions(-) diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl index 56ef2d204d..83f3f7e30d 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl @@ -46,5 +46,4 @@ parcelable RttCapabilities { android.hardware.wifi.RttBw azBwSupport; boolean ntbInitiatorSupported; boolean ntbResponderSupported; - int maxTxLtfRepetitionCount; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl index b7830bd126..16a14eaeb2 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl @@ -50,5 +50,4 @@ parcelable RttConfig { android.hardware.wifi.RttBw bw; int ntbMinMeasurementTimeMillis; int ntbMaxMeasurementTimeMillis; - int txLtfRepetitionCount; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl index 30f5f58b52..93a04acb6f 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl @@ -59,7 +59,8 @@ parcelable RttResult { android.hardware.wifi.WifiInformationElement lcr; int channelFreqMHz; android.hardware.wifi.RttBw packetBw; - int txLtfRepetitionCount; + byte i2rTxLtfRepetitionCount; + byte r2iTxLtfRepetitionCount; int ntbMinMeasurementTimeMillis; int ntbMaxMeasurementTimeMillis; } diff --git a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl index 0352ec8ea6..c4b7d24b6f 100644 --- a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl +++ b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl @@ -78,9 +78,4 @@ parcelable RttCapabilities { * Whether IEEE 802.11az Non-Trigger-based (non-TB) responder mode is supported. */ boolean ntbResponderSupported; - /** - * Maximum HE LTF repetitions the IEEE 802.11az initiator is capable of transmitting in the - * preamble of I2R NDP. - */ - int maxTxLtfRepetitionCount; } diff --git a/wifi/aidl/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/android/hardware/wifi/RttConfig.aidl index e970656229..97b3acfd71 100644 --- a/wifi/aidl/android/hardware/wifi/RttConfig.aidl +++ b/wifi/aidl/android/hardware/wifi/RttConfig.aidl @@ -128,9 +128,4 @@ parcelable RttConfig { * IEEE 802.11az Non-Trigger-based (non-TB) maximum measurement time in milliseconds. */ int ntbMaxMeasurementTimeMillis; - /** - * Multiple transmissions of HE-LTF symbols in an HE Ranging NDP. A value of 1 indicates no - * repetition. - */ - int txLtfRepetitionCount; } diff --git a/wifi/aidl/android/hardware/wifi/RttResult.aidl b/wifi/aidl/android/hardware/wifi/RttResult.aidl index 2cb0afa317..034b0da9f9 100644 --- a/wifi/aidl/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/android/hardware/wifi/RttResult.aidl @@ -146,9 +146,15 @@ parcelable RttResult { */ RttBw packetBw; /** - * IEEE 802.11az Transmit LTF repetitions used to get this result. + * Multiple transmissions of HE-LTF symbols in an HE (I2R) Ranging NDP. An HE-LTF repetition + * value of 1 indicates no repetitions. */ - int txLtfRepetitionCount; + byte i2rTxLtfRepetitionCount; + /** + * Multiple transmissions of HE-LTF symbols in an HE (R2I) Ranging NDP. An HE-LTF repetition + * value of 1 indicates no repetitions. + */ + byte r2iTxLtfRepetitionCount; /** * Minimum non-trigger based (non-TB) dynamic measurement time in milliseconds assigned by the * IEEE 802.11az responder. diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp index b62b3a0774..42f484be70 100644 --- a/wifi/aidl/default/aidl_struct_util.cpp +++ b/wifi/aidl/default/aidl_struct_util.cpp @@ -2741,7 +2741,6 @@ bool convertAidlRttConfigToLegacyV3(const RttConfig& aidl_config, if (!convertAidlRttConfigToLegacy(aidl_config, &(legacy_config->rtt_config))) { return false; } - legacy_config->tx_ltf_repetition_count = aidl_config.txLtfRepetitionCount; legacy_config->ntb_min_measurement_time_millis = aidl_config.ntbMinMeasurementTimeMillis; legacy_config->ntb_max_measurement_time_millis = aidl_config.ntbMaxMeasurementTimeMillis; return true; @@ -2891,7 +2890,6 @@ bool convertLegacyRttCapabilitiesToAidl( aidl_capabilities->azBwSupport = RttBw::BW_UNSPECIFIED; aidl_capabilities->ntbInitiatorSupported = false; aidl_capabilities->ntbResponderSupported = false; - aidl_capabilities->maxTxLtfRepetitionCount = 0; return true; } @@ -2919,7 +2917,6 @@ bool convertLegacyRttCapabilitiesV3ToAidl( convertLegacyRttBwBitmapToAidl(legacy_capabilities_v3.az_bw_support); aidl_capabilities->ntbInitiatorSupported = legacy_capabilities_v3.ntb_initiator_supported; aidl_capabilities->ntbResponderSupported = legacy_capabilities_v3.ntb_responder_supported; - aidl_capabilities->maxTxLtfRepetitionCount = legacy_capabilities_v3.max_tx_ltf_repetition_count; return true; } @@ -2994,7 +2991,8 @@ bool convertLegacyVectorOfRttResultToAidl( } aidl_result.channelFreqMHz = 0; aidl_result.packetBw = RttBw::BW_UNSPECIFIED; - aidl_result.txLtfRepetitionCount = 0; + aidl_result.i2rTxLtfRepetitionCount = 0; + aidl_result.r2iTxLtfRepetitionCount = 0; aidl_result.ntbMinMeasurementTimeMillis = 0; aidl_result.ntbMaxMeasurementTimeMillis = 0; aidl_results->push_back(aidl_result); @@ -3017,7 +3015,8 @@ bool convertLegacyVectorOfRttResultV2ToAidl( aidl_result.channelFreqMHz = legacy_result->frequency != UNSPECIFIED ? legacy_result->frequency : 0; aidl_result.packetBw = convertLegacyRttBwToAidl(legacy_result->packet_bw); - aidl_result.txLtfRepetitionCount = 0; + aidl_result.i2rTxLtfRepetitionCount = 0; + aidl_result.r2iTxLtfRepetitionCount = 0; aidl_result.ntbMinMeasurementTimeMillis = 0; aidl_result.ntbMaxMeasurementTimeMillis = 0; aidl_results->push_back(aidl_result); @@ -3041,7 +3040,8 @@ bool convertLegacyVectorOfRttResultV3ToAidl( ? legacy_result->rtt_result.frequency : 0; aidl_result.packetBw = convertLegacyRttBwToAidl(legacy_result->rtt_result.packet_bw); - aidl_result.txLtfRepetitionCount = legacy_result->tx_ltf_repetition_count; + aidl_result.i2rTxLtfRepetitionCount = legacy_result->i2r_tx_ltf_repetition_count; + aidl_result.r2iTxLtfRepetitionCount = legacy_result->r2i_tx_ltf_repetition_count; aidl_result.ntbMinMeasurementTimeMillis = legacy_result->ntb_min_measurement_time_millis; aidl_result.ntbMaxMeasurementTimeMillis = legacy_result->ntb_max_measurement_time_millis; aidl_results->push_back(aidl_result); -- GitLab From c3301598ec7301708ba4e7ed736845dfd384c74d Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Wed, 6 Dec 2023 16:45:24 -0800 Subject: [PATCH 019/418] Use GTEST_SKIP in bcradio AIDL HAL VTS Use GTEST_SKIP in bcradio AIDL HAL VTS so that the tests with assumption failed are ignored instead of passed. Bug: 315344807 Test: atest VtsHalBroadcastradioAidlTargetTest Change-Id: Ie170b9ed301f0183e8a4b83e53160674b900b658 --- .../VtsHalBroadcastradioAidlTargetTest.cpp | 71 +++++++------------ 1 file changed, 24 insertions(+), 47 deletions(-) diff --git a/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp b/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp index 2668a97c4f..754b05b93d 100644 --- a/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp +++ b/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -76,12 +77,6 @@ const ConfigFlag kConfigFlagValues[] = { constexpr int32_t kAidlVersion1 = 1; constexpr int32_t kAidlVersion2 = 2; -void printSkipped(const std::string& msg) { - const auto testInfo = testing::UnitTest::GetInstance()->current_test_info(); - LOG(INFO) << "[ SKIPPED ] " << testInfo->test_case_name() << "." << testInfo->name() - << " with message: " << msg; -} - bool isValidAmFmFreq(int64_t freq, int aidlVersion) { ProgramIdentifier id = bcutils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, freq); if (aidlVersion == kAidlVersion1) { @@ -385,7 +380,7 @@ std::optional BroadcastRadioHalTest::getProgramList( auto startResult = mModule->startProgramListUpdates(filter); if (startResult.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("Program list not supported"); + LOG(WARNING) << "Program list not supported"; return std::nullopt; } EXPECT_TRUE(startResult.isOk()); @@ -430,8 +425,7 @@ TEST_P(BroadcastRadioHalTest, GetAmFmRegionConfig) { bool supported = getAmFmRegionConfig(/* full= */ false, &config); if (!supported) { - printSkipped("AM/FM not supported"); - return; + GTEST_SKIP() << "AM/FM not supported"; } EXPECT_LE(popcountll(static_cast(config.fmDeemphasis)), 1); @@ -459,8 +453,7 @@ TEST_P(BroadcastRadioHalTest, GetAmFmRegionConfigRanges) { bool supported = getAmFmRegionConfig(/* full= */ false, &config); if (!supported) { - printSkipped("AM/FM not supported"); - return; + GTEST_SKIP() << "AM/FM not supported"; } EXPECT_GT(config.ranges.size(), 0u); @@ -488,7 +481,7 @@ TEST_P(BroadcastRadioHalTest, GetAmFmRegionConfigCapabilitiesForFM) { if (supported && supportsFM(config)) { EXPECT_GE(popcountll(static_cast(config.fmDeemphasis)), 1); } else { - printSkipped("FM not supported"); + GTEST_SKIP() << "FM not supported"; } } @@ -509,8 +502,7 @@ TEST_P(BroadcastRadioHalTest, GetAmFmRegionConfigCapabilitiesRanges) { bool supported = getAmFmRegionConfig(/* full= */ true, &config); if (!supported) { - printSkipped("AM/FM not supported"); - return; + GTEST_SKIP() << "AM/FM not supported"; } EXPECT_GT(config.ranges.size(), 0u); @@ -536,8 +528,7 @@ TEST_P(BroadcastRadioHalTest, GetDabRegionConfig) { auto halResult = mModule->getDabRegionConfig(&config); if (halResult.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("DAB not supported"); - return; + GTEST_SKIP() << "DAB not supported"; } ASSERT_TRUE(halResult.isOk()); @@ -671,7 +662,7 @@ TEST_P(BroadcastRadioHalTest, TuneFailsWithEmpty) { * - if it is supported, the method succeeds; * - after a successful tune call, onCurrentProgramInfoChanged callback is * invoked carrying a proper selector; - * - program changes exactly to what was requested. + * - program changes to a program info with the program selector requested. */ TEST_P(BroadcastRadioHalTest, FmTune) { LOG(DEBUG) << "FmTune Test"; @@ -715,8 +706,7 @@ TEST_P(BroadcastRadioHalTest, HdTune) { LOG(DEBUG) << "HdTune Test"; auto programList = getProgramList(); if (!programList) { - printSkipped("Empty station list, tune cannot be performed"); - return; + GTEST_SKIP() << "Empty station list, tune cannot be performed"; } ProgramSelector hdSel = {}; ProgramIdentifier physicallyTunedToExpected = {}; @@ -732,8 +722,7 @@ TEST_P(BroadcastRadioHalTest, HdTune) { break; } if (!hdStationPresent) { - printSkipped("No HD stations in the list, tune cannot be performed"); - return; + GTEST_SKIP() << "No HD stations in the list, tune cannot be performed"; } // try tuning @@ -762,7 +751,7 @@ TEST_P(BroadcastRadioHalTest, HdTune) { * - if it is supported, the method succeeds; * - after a successful tune call, onCurrentProgramInfoChanged callback is * invoked carrying a proper selector; - * - program changes exactly to what was requested. + * - program changes to a program info with the program selector requested. */ TEST_P(BroadcastRadioHalTest, DabTune) { LOG(DEBUG) << "DabTune Test"; @@ -771,8 +760,7 @@ TEST_P(BroadcastRadioHalTest, DabTune) { auto halResult = mModule->getDabRegionConfig(&config); if (halResult.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("DAB not supported"); - return; + GTEST_SKIP() << "DAB not supported"; } ASSERT_TRUE(halResult.isOk()); ASSERT_NE(config.size(), 0U); @@ -780,8 +768,7 @@ TEST_P(BroadcastRadioHalTest, DabTune) { auto programList = getProgramList(); if (!programList) { - printSkipped("Empty DAB station list, tune cannot be performed"); - return; + GTEST_SKIP() << "Empty DAB station list, tune cannot be performed"; } ProgramSelector sel = {}; @@ -811,8 +798,7 @@ TEST_P(BroadcastRadioHalTest, DabTune) { } if (!dabStationPresent) { - printSkipped("No DAB stations in the list, tune cannot be performed"); - return; + GTEST_SKIP() << "No DAB stations in the list, tune cannot be performed"; } // try tuning @@ -844,7 +830,7 @@ TEST_P(BroadcastRadioHalTest, DabTune) { * Verifies that: * - the method succeeds; * - the program info is changed within kTuneTimeoutMs; - * - works both directions and with or without skipping sub-channel. + * - works both directions and with or without ing sub-channel. */ TEST_P(BroadcastRadioHalTest, Seek) { LOG(DEBUG) << "Seek Test"; @@ -854,8 +840,7 @@ TEST_P(BroadcastRadioHalTest, Seek) { auto result = mModule->seek(/* in_directionUp= */ true, /* in_skipSubChannel= */ true); if (result.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("Seek not supported"); - return; + GTEST_SKIP() << "Seek not supported"; } EXPECT_TRUE(result.isOk()); @@ -905,8 +890,7 @@ TEST_P(BroadcastRadioHalTest, Step) { auto result = mModule->step(/* in_directionUp= */ true); if (result.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("Step not supported"); - return; + GTEST_SKIP() << "Step not supported"; } EXPECT_TRUE(result.isOk()); EXPECT_TRUE(mCallback->waitOnCurrentProgramInfoChangedCallback()); @@ -957,8 +941,7 @@ TEST_P(BroadcastRadioHalTest, Cancel) { auto result = mModule->seek(/* in_directionUp= */ true, /* in_skipSubChannel= */ true); if (result.getServiceSpecificError() == notSupportedError) { - printSkipped("Cancel is skipped because of seek not supported"); - return; + GTEST_SKIP() << "Cancel is skipped because of seek not supported"; } EXPECT_TRUE(result.isOk()); @@ -1152,8 +1135,7 @@ TEST_P(BroadcastRadioHalTest, GetProgramListFromAmFmFilter) { std::optional completeList = getProgramList(); if (!completeList) { - printSkipped("No program list available"); - return; + GTEST_SKIP() << "No program list available"; } ProgramFilter amfmFilter = {}; @@ -1178,8 +1160,7 @@ TEST_P(BroadcastRadioHalTest, GetProgramListFromAmFmFilter) { } if (expectedResultSize == 0) { - printSkipped("No Am/FM programs available"); - return; + GTEST_SKIP() << "No Am/FM programs available"; } std::optional amfmList = getProgramList(amfmFilter); ASSERT_EQ(amfmList->size(), expectedResultSize) << "amfm filter result size is wrong"; @@ -1200,8 +1181,7 @@ TEST_P(BroadcastRadioHalTest, GetProgramListFromDabFilter) { std::optional completeList = getProgramList(); if (!completeList) { - printSkipped("No program list available"); - return; + GTEST_SKIP() << "No program list available"; } ProgramFilter dabFilter = {}; @@ -1225,8 +1205,7 @@ TEST_P(BroadcastRadioHalTest, GetProgramListFromDabFilter) { } if (expectedResultSize == 0) { - printSkipped("No DAB programs available"); - return; + GTEST_SKIP() << "No DAB programs available"; } std::optional dabList = getProgramList(dabFilter); ASSERT_EQ(dabList->size(), expectedResultSize) << "dab filter result size is wrong"; @@ -1245,8 +1224,7 @@ TEST_P(BroadcastRadioHalTest, HdRadioStationNameId) { std::optional list = getProgramList(); if (!list) { - printSkipped("No program list"); - return; + GTEST_SKIP() << "No program list"; } for (const auto& program : *list) { @@ -1297,8 +1275,7 @@ TEST_P(BroadcastRadioHalTest, AnnouncementListenerRegistration) { if (halResult.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { ASSERT_EQ(closeHandle.get(), nullptr); - printSkipped("Announcements not supported"); - return; + GTEST_SKIP() << "Announcements not supported"; } ASSERT_TRUE(halResult.isOk()); -- GitLab From 555598956efbc37842013143c6674462923bafbd Mon Sep 17 00:00:00 2001 From: shrikar Date: Fri, 1 Dec 2023 23:35:06 +0000 Subject: [PATCH 020/418] Added HEAD_UP_DISPLAY_ENABLED to HAL Bug: 314383237 Test: atest VtsHalAutomotiveVehicle_TargetTest FakeVehicleHardwareTest Change-Id: I38fd94520b66fc329b6e1ec62789357046a3b24d --- .../generated_lib/cpp/AccessForVehicleProperty.h | 1 + .../cpp/ChangeModeForVehicleProperty.h | 1 + .../java/AccessForVehicleProperty.java | 1 + .../java/ChangeModeForVehicleProperty.java | 1 + .../default_config/config/DefaultProperties.json | 13 +++++++++++++ .../automotive/vehicle/VehicleProperty.aidl | 1 + .../automotive/vehicle/VehicleProperty.aidl | 16 ++++++++++++++++ .../src/VtsHalAutomotiveVehicle_TargetTest.cpp | 6 ++++++ 8 files changed, 40 insertions(+) diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h index ba44e074b5..f31c83e013 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h @@ -125,6 +125,7 @@ std::unordered_map AccessForVehiclePrope {VehicleProperty::DISPLAY_BRIGHTNESS, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::PER_DISPLAY_BRIGHTNESS, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::VALET_MODE_ENABLED, VehiclePropertyAccess::READ_WRITE}, + {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::HW_KEY_INPUT, VehiclePropertyAccess::READ}, {VehicleProperty::HW_KEY_INPUT_V2, VehiclePropertyAccess::READ}, {VehicleProperty::HW_MOTION_INPUT, VehiclePropertyAccess::READ}, diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h index a720f2d122..c717f30fd5 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h @@ -125,6 +125,7 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::PER_DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::VALET_MODE_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, + {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::HW_KEY_INPUT, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::HW_KEY_INPUT_V2, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::HW_MOTION_INPUT, VehiclePropertyChangeMode::ON_CHANGE}, diff --git a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java index be849f59ee..f59ae71dc9 100644 --- a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java @@ -117,6 +117,7 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.PER_DISPLAY_BRIGHTNESS, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.VALET_MODE_ENABLED, VehiclePropertyAccess.READ_WRITE), + Map.entry(VehicleProperty.HEAD_UP_DISPLAY_ENABLED, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.HW_KEY_INPUT, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.HW_KEY_INPUT_V2, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.HW_MOTION_INPUT, VehiclePropertyAccess.READ), diff --git a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java index 780eaa3261..156b90af5e 100644 --- a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java @@ -117,6 +117,7 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.PER_DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.VALET_MODE_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), + Map.entry(VehicleProperty.HEAD_UP_DISPLAY_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.HW_KEY_INPUT, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.HW_KEY_INPUT_V2, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.HW_MOTION_INPUT, VehiclePropertyChangeMode.ON_CHANGE), diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 665c10e8e3..0a10105ab7 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -3218,6 +3218,19 @@ ] } }, + { + "property": "VehicleProperty::HEAD_UP_DISPLAY_ENABLED", + "defaultValue": { + "int32Values": [ + 0 + ] + }, + "areas": [ + { + "areaId": "Constants::SEAT_1_LEFT" + } + ] + }, { "property": "VehicleProperty::OBD2_LIVE_FRAME", "configArray": [ diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl index b6bfb0452c..0179a2adfc 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -123,6 +123,7 @@ enum VehicleProperty { DISPLAY_BRIGHTNESS = (((0x0A03 + 0x10000000) + 0x01000000) + 0x00400000) /* 289409539 */, PER_DISPLAY_BRIGHTNESS = (((0x0A04 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475076 */, VALET_MODE_ENABLED = (((0x0A05 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312389 */, + HEAD_UP_DISPLAY_ENABLED = (((0x0A06 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421254 */, HW_KEY_INPUT = (((0x0A10 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475088 */, HW_KEY_INPUT_V2 = (((0x0A11 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 367004177 */, HW_MOTION_INPUT = (((0x0A12 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 367004178 */, diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index ecabe8c3b6..117ecc53b7 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -1589,6 +1589,22 @@ enum VehicleProperty { */ VALET_MODE_ENABLED = 0x0A05 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, + /** + * Head up display (HUD) enabled + * + * This property allows the user to turn on/off the HUD for their seat. + * + * Each HUD in the vehicle should be assigned to the seat that is intended to use it. For + * example, if there is a single HUD in the vehicle that is used by the driver so that they no + * longer need to continuously look at the instrument cluster, then this property should be + * defined with a single area ID equal to the driver's seat area value. + * + * @change_mode VehiclePropertyChangeMode.ON_CHANGE + * @access VehiclePropertyAccess.READ_WRITE + * @access VehiclePropertyAccess.READ + */ + HEAD_UP_DISPLAY_ENABLED = + 0x0A06 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, /** * Property to feed H/W input events to android * diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index ba36f298f4..158129d94a 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -1011,6 +1011,12 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyCrossTrafficMonitoringWarningSta VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::INT32); } +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyHeadUpDisplayEnabledConfig) { + verifyProperty(VehicleProperty::HEAD_UP_DISPLAY_ENABLED, VehiclePropertyAccess::READ_WRITE, + VehiclePropertyChangeMode::ON_CHANGE, VehiclePropertyGroup::SYSTEM, + VehicleArea::SEAT, VehiclePropertyType::BOOLEAN); +} + bool VtsHalAutomotiveVehicleTargetTest::checkIsSupported(int32_t propertyId) { auto result = mVhalClient->getPropConfigs({propertyId}); return result.ok(); -- GitLab From d11b9f832f13bec41ebb080c0e741ff89db10120 Mon Sep 17 00:00:00 2001 From: shrikar Date: Mon, 4 Dec 2023 17:39:28 +0000 Subject: [PATCH 021/418] Added LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED to HAL Bug: 314786275 Test: atest VtsHalAutomotiveVehicle_TargetTest Change-Id: Ic80eed8362bba273bac409c175a726317054de7e --- .../cpp/AccessForVehicleProperty.h | 1 + .../cpp/ChangeModeForVehicleProperty.h | 1 + .../java/AccessForVehicleProperty.java | 3 +- .../java/ChangeModeForVehicleProperty.java | 3 +- .../config/DefaultProperties.json | 8 +++++ .../automotive/vehicle/VehicleProperty.aidl | 1 + .../automotive/vehicle/VehicleProperty.aidl | 30 ++++++++++++++++++- .../VtsHalAutomotiveVehicle_TargetTest.cpp | 6 ++++ 8 files changed, 50 insertions(+), 3 deletions(-) diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h index f31c83e013..6cc7c782e5 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h @@ -294,6 +294,7 @@ std::unordered_map AccessForVehiclePrope {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyAccess::READ}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyAccess::READ}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess::READ_WRITE}, }; } // namespace vehicle diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h index c717f30fd5..2040867a30 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h @@ -294,6 +294,7 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, }; } // namespace vehicle diff --git a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java index f59ae71dc9..e846501989 100644 --- a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java @@ -285,7 +285,8 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_ENABLED, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyAccess.READ_WRITE), - Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyAccess.READ) + Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyAccess.READ), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess.READ_WRITE) ); } diff --git a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java index 156b90af5e..7a348b21e7 100644 --- a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java @@ -285,7 +285,8 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), - Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyChangeMode.ON_CHANGE) + Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyChangeMode.ON_CHANGE), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE) ); } diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 0a10105ab7..559725fb99 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -4204,6 +4204,14 @@ ] } ] + }, + { + "property": "VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED", + "defaultValue": { + "int32Values": [ + 1 + ] + } } ] } diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl index 0179a2adfc..d3b7f182fd 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -292,4 +292,5 @@ enum VehicleProperty { LOW_SPEED_COLLISION_WARNING_STATE = (((0x1022 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411106 */, CROSS_TRAFFIC_MONITORING_ENABLED = (((0x1023 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313955 */, CROSS_TRAFFIC_MONITORING_WARNING_STATE = (((0x1024 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411108 */, + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1025 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313957 */, } diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index 117ecc53b7..2f1f3dfa4e 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -4670,7 +4670,9 @@ enum VehicleProperty { * Enable or disable Automatic Emergency Braking (AEB). * * Set true to enable AEB and false to disable AEB. When AEB is enabled, the ADAS system in the - * vehicle should be turned on and monitoring to avoid potential collisions. + * vehicle should be turned on and monitoring to avoid potential collisions. This property + * should apply for higher speed applications only. For enabling low speed automatic emergency + * braking, LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED should be used. * * In general, AUTOMATIC_EMERGENCY_BRAKING_ENABLED should always return true or false. If the * feature is not available due to some temporary state, such as the vehicle speed being too @@ -5517,6 +5519,32 @@ enum VehicleProperty { CROSS_TRAFFIC_MONITORING_WARNING_STATE = 0x1024 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, + /** + * Enable or disable Low Speed Automatic Emergency Braking. + * + * Set true to enable Low Speed Automatic Emergency Braking or false to disable Low Speed + * Automatic Emergency Braking. When Low Speed Automatic Emergency Braking is enabled, the ADAS + * system in the vehicle should be turned on and monitoring to avoid potential collisions in low + * speed conditions. This property is different from the pre-existing + * AUTOMATIC_EMERGENCY_BRAKING_ENABLED, which should apply to higher speed applications only. If + * the vehicle doesn't have a separate collision avoidance system for low speed environments, + * this property should not be implemented. + * + * In general, LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED should always return true or false. + * If the feature is not available due to some temporary state, such as the vehicle speed being + * too low, that information must be conveyed through the ErrorState values in the + * LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE property. + * + * This property is defined as VehiclePropertyAccess.READ_WRITE, but OEMs have the option to + * implement it as VehiclePropertyAccess.READ only. + * + * @change_mode VehiclePropertyChangeMode.ON_CHANGE + * @access VehiclePropertyAccess.READ_WRITE + * @access VehiclePropertyAccess.READ + */ + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = + 0x1025 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, + /*************************************************************************** * End of ADAS Properties **************************************************************************/ diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index 158129d94a..b963d8e1da 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -1017,6 +1017,12 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyHeadUpDisplayEnabledConfig) { VehicleArea::SEAT, VehiclePropertyType::BOOLEAN); } +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyLowSpeedAutomaticEmergencyBrakingEnabledConfig) { + verifyProperty(VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, + VehiclePropertyAccess::READ_WRITE, VehiclePropertyChangeMode::ON_CHANGE, + VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::BOOLEAN); +} + bool VtsHalAutomotiveVehicleTargetTest::checkIsSupported(int32_t propertyId) { auto result = mVhalClient->getPropConfigs({propertyId}); return result.ok(); -- GitLab From 75494313594ab5cd77572ca0255b035ac55ab386 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Thu, 14 Dec 2023 10:22:11 +0900 Subject: [PATCH 022/418] Remove features from sensors APEX Just found that each device wants to install a different set of sensors via LOCAL_SENSOR_FILE_OVERRIDES. Instead of providing a default list in the apex, which would make things difficult to configure, let's not hard-code the list in the apex. Bug: 315089092 Test: cvd start && dumpsys sensorservice Change-Id: Ie7ddbe6657d5afc06ca009ac37e3a54a5b26ad7d --- sensors/aidl/default/Android.bp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sensors/aidl/default/Android.bp b/sensors/aidl/default/Android.bp index 08ee773801..e93c391cf4 100644 --- a/sensors/aidl/default/Android.bp +++ b/sensors/aidl/default/Android.bp @@ -97,12 +97,5 @@ apex { prebuilts: [ "sensors-default.rc", // init rc "sensors-default.xml", // vintf fragment - "android.hardware.sensor.ambient_temperature.prebuilt.xml", - "android.hardware.sensor.barometer.prebuilt.xml", - "android.hardware.sensor.gyroscope.prebuilt.xml", - "android.hardware.sensor.hinge_angle.prebuilt.xml", - "android.hardware.sensor.light.prebuilt.xml", - "android.hardware.sensor.proximity.prebuilt.xml", - "android.hardware.sensor.relative_humidity.prebuilt.xml", ], } -- GitLab From bd6ab7324d46813a47322b69156de03b2cab66e4 Mon Sep 17 00:00:00 2001 From: shrikar Date: Mon, 4 Dec 2023 19:07:26 +0000 Subject: [PATCH 023/418] Added LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE to HAL Bug: 314795767 Test: atest VtsHalAutomotiveVehicle_TargetTest FakeVehicleHardwareTest Change-Id: Ib7189abbbd9d9f3870faed146d1c240b03820716 --- .../cpp/AccessForVehicleProperty.h | 1 + .../cpp/ChangeModeForVehicleProperty.h | 1 + .../java/AccessForVehicleProperty.java | 3 +- .../java/ChangeModeForVehicleProperty.java | 3 +- .../java/EnumForVehicleProperty.java | 3 +- .../JsonConfigLoader/src/JsonConfigLoader.cpp | 3 ++ .../config/DefaultProperties.json | 22 ++++++++ .../hardware/src/FakeVehicleHardware.cpp | 7 +++ .../utils/common/include/VehicleHalTypes.h | 1 + ...owSpeedAutomaticEmergencyBrakingState.aidl | 41 +++++++++++++++ .../automotive/vehicle/VehicleProperty.aidl | 1 + ...owSpeedAutomaticEmergencyBrakingState.aidl | 52 +++++++++++++++++++ .../automotive/vehicle/VehicleProperty.aidl | 30 ++++++++++- .../VtsHalAutomotiveVehicle_TargetTest.cpp | 6 +++ 14 files changed, 170 insertions(+), 4 deletions(-) create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl create mode 100644 automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h index 6cc7c782e5..042065a5dc 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h @@ -295,6 +295,7 @@ std::unordered_map AccessForVehiclePrope {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyAccess::READ}, {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess::READ_WRITE}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess::READ}, }; } // namespace vehicle diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h index 2040867a30..758d851c26 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h @@ -295,6 +295,7 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, }; } // namespace vehicle diff --git a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java index e846501989..4aefae380e 100644 --- a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java @@ -286,7 +286,8 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyAccess.READ), - Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess.READ_WRITE) + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess.READ_WRITE), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess.READ) ); } diff --git a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java index 7a348b21e7..c9a8d1eaff 100644 --- a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java @@ -286,7 +286,8 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyChangeMode.ON_CHANGE), - Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE) + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode.ON_CHANGE) ); } diff --git a/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java index b4f24a6e85..4b8060fbb0 100644 --- a/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java @@ -103,7 +103,8 @@ public final class EnumForVehicleProperty { Map.entry(VehicleProperty.DRIVER_DISTRACTION_STATE, List.of(DriverDistractionState.class, ErrorState.class)), Map.entry(VehicleProperty.DRIVER_DISTRACTION_WARNING, List.of(DriverDistractionWarning.class, ErrorState.class)), Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, List.of(LowSpeedCollisionWarningState.class, ErrorState.class)), - Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, List.of(CrossTrafficMonitoringWarningState.class, ErrorState.class)) + Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, List.of(CrossTrafficMonitoringWarningState.class, ErrorState.class)), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, List.of(LowSpeedAutomaticEmergencyBrakingState.class, ErrorState.class)) ); } diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp index 146da69bd2..3e6e7dcf1d 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp @@ -63,6 +63,7 @@ using ::aidl::android::hardware::automotive::vehicle::LaneCenteringAssistState; using ::aidl::android::hardware::automotive::vehicle::LaneDepartureWarningState; using ::aidl::android::hardware::automotive::vehicle::LaneKeepAssistState; using ::aidl::android::hardware::automotive::vehicle::LocationCharacterization; +using ::aidl::android::hardware::automotive::vehicle::LowSpeedAutomaticEmergencyBrakingState; using ::aidl::android::hardware::automotive::vehicle::LowSpeedCollisionWarningState; using ::aidl::android::hardware::automotive::vehicle::RawPropValues; using ::aidl::android::hardware::automotive::vehicle::VehicleAirbagLocation; @@ -297,6 +298,8 @@ JsonValueParser::JsonValueParser() { std::make_unique>(); mConstantParsersByType["CrossTrafficMonitoringWarningState"] = std::make_unique>(); + mConstantParsersByType["LowSpeedAutomaticEmergencyBrakingState"] = + std::make_unique>(); mConstantParsersByType["Constants"] = std::make_unique(); #ifdef ENABLE_VEHICLE_HAL_TEST_PROPERTIES mConstantParsersByType["TestVendorProperty"] = diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 559725fb99..56d8b4bccb 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -4212,6 +4212,28 @@ 1 ] } + }, + { + "property": "VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE", + "defaultValue": { + "int32Values": [ + "LowSpeedAutomaticEmergencyBrakingState::ENABLED" + ] + }, + "areas": [ + { + "areaId": 0, + "supportedEnumValues": [ + "ErrorState::NOT_AVAILABLE_SAFETY", + "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY", + "ErrorState::NOT_AVAILABLE_SPEED_HIGH", + "ErrorState::NOT_AVAILABLE_DISABLED", + "LowSpeedAutomaticEmergencyBrakingState::ENABLED", + "LowSpeedAutomaticEmergencyBrakingState::ACTIVATED", + "LowSpeedAutomaticEmergencyBrakingState::USER_OVERRIDE" + ] + } + ] } ] } diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp index dced62446c..385f616628 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp @@ -246,6 +246,13 @@ const std::unordered_map> mAdasEnabledPropToAdasPr toInt(VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE), }, }, + // LSAEB + { + toInt(VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED), + { + toInt(VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE), + }, + }, }; } // namespace diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h index bbd88dab48..0c8ebbda34 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl new file mode 100644 index 0000000000..70014e1dda --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LowSpeedAutomaticEmergencyBrakingState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, + USER_OVERRIDE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl index d3b7f182fd..560fb0ec22 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -293,4 +293,5 @@ enum VehicleProperty { CROSS_TRAFFIC_MONITORING_ENABLED = (((0x1023 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313955 */, CROSS_TRAFFIC_MONITORING_WARNING_STATE = (((0x1024 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411108 */, LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1025 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313957 */, + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE = (((0x1026 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411110 */, } diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl new file mode 100644 index 0000000000..978da25d15 --- /dev/null +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.automotive.vehicle; + +/** + * Used to enumerate the state of Low Speed Automatic Emergency Braking. + */ +@VintfStability +@Backing(type="int") +enum LowSpeedAutomaticEmergencyBrakingState { + + /** + * This state is used as an alternative to any LowSpeedAutomaticEmergencyBrakingState value that + * is not defined in the platform. Ideally, implementations of + * VehicleProperty#LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE should not use this state. The + * framework can use this field to remain backwards compatible if + * LowSpeedAutomaticEmergencyBrakingState is extended to include additional states. + */ + OTHER = 0, + /** + * Low Speed Automatic Emergency Braking is enabled and monitoring safety, but brakes are not + * activated. + */ + ENABLED = 1, + /** + * Low Speed Automatic Emergency Braking is enabled and currently has the brakes applied for the + * vehicle. + */ + ACTIVATED = 2, + /** + * Many Low Speed Automatic Emergency Braking implementations allow the driver to override Low + * Speed Automatic Emergency Braking. This means that the car has determined it should brake, + * but a user decides to take over and do something else. This is often done for safety reasons + * and to ensure that the driver can always take control of the vehicle. This state should be + * set when the user is actively overriding the low speed automatic emergency braking system. + */ + USER_OVERRIDE = 3, +} diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index 2f1f3dfa4e..999197eddf 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -4694,7 +4694,9 @@ enum VehicleProperty { * * Returns the current state of AEB. This property must always return a valid state defined in * AutomaticEmergencyBrakingState or ErrorState. It must not surface errors through StatusCode - * and must use the supported error states instead. + * and must use the supported error states instead. This property should apply for higher speed + * applications only. For representing the state of the low speed automatic emergency braking + * system, LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE should be used. * * If AEB includes forward collision warnings before activating the brakes, those warnings must * be surfaced through the Forward Collision Warning (FCW) properties. @@ -5545,6 +5547,32 @@ enum VehicleProperty { LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = 0x1025 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, + /** + * Low Speed Automatic Emergency Braking state. + * + * Returns the current state of Low Speed Automatic Emergency Braking. This property must always + * return a valid state defined in LowSpeedAutomaticEmergencyBrakingState or ErrorState. It must + * not surface errors through StatusCode and must use the supported error states instead. This + * property is different from the pre-existing AUTOMATIC_EMERGENCY_BRAKING_STATE, which should + * apply to higher speed applications only. If the vehicle doesn't have a separate collision + * avoidance system for low speed environments, this property should not be implemented. + * + * If Low Speed Automatic Emergency Braking includes collision warnings before activating the + * brakes, those warnings must be surfaced through use of LOW_SPEED_COLLISION_WARNING_ENABLED + * and LOW_SPEED_COLLISION_WARNING_STATE. + * + * For the global area ID (0), the VehicleAreaConfig#supportedEnumValues array must be defined + * unless all states of both LowSpeedAutomaticEmergencyBrakingState (including OTHER, which is + * not recommended) and ErrorState are supported. + * + * @change_mode VehiclePropertyChangeMode.ON_CHANGE + * @access VehiclePropertyAccess.READ + * @data_enum LowSpeedAutomaticEmergencyBrakingState + * @data_enum ErrorState + */ + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE = + 0x1026 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, + /*************************************************************************** * End of ADAS Properties **************************************************************************/ diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index b963d8e1da..68feea2ff0 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -1023,6 +1023,12 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyLowSpeedAutomaticEmergencyBrakin VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::BOOLEAN); } +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyLowSpeedAutomaticEmergencyBrakingStateConfig) { + verifyProperty(VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, + VehiclePropertyAccess::READ, VehiclePropertyChangeMode::ON_CHANGE, + VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::INT32); +} + bool VtsHalAutomotiveVehicleTargetTest::checkIsSupported(int32_t propertyId) { auto result = mVhalClient->getPropConfigs({propertyId}); return result.ok(); -- GitLab From 49aa335f8c98b605ece1a32f25849ca92c18708f Mon Sep 17 00:00:00 2001 From: ziyiw Date: Fri, 8 Dec 2023 22:40:55 +0000 Subject: [PATCH 024/418] [uwb-chip] Send DeviceResetCmd and poll rsp and ntf before hal is closed. Bug: 315324807 Test: manual Change-Id: I802551f77e031a32b04b49ab5d3134356dd1cd46 --- uwb/aidl/default/Android.bp | 2 ++ uwb/aidl/default/src/uwb_chip.rs | 47 ++++++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/uwb/aidl/default/Android.bp b/uwb/aidl/default/Android.bp index f9b79de729..8af1678d1a 100644 --- a/uwb/aidl/default/Android.bp +++ b/uwb/aidl/default/Android.bp @@ -24,6 +24,8 @@ rust_binary { "libtokio_util", "libnix", "libanyhow", + "libpdl_runtime", + "libuwb_uci_packets", ], proc_macros: [ "libasync_trait", diff --git a/uwb/aidl/default/src/uwb_chip.rs b/uwb/aidl/default/src/uwb_chip.rs index efb2454323..d749147d15 100644 --- a/uwb/aidl/default/src/uwb_chip.rs +++ b/uwb/aidl/default/src/uwb_chip.rs @@ -16,6 +16,9 @@ use std::fs::{File, OpenOptions}; use std::io::{self, Read, Write}; use std::os::unix::fs::OpenOptionsExt; +use pdl_runtime::Packet; +use uwb_uci_packets::{DeviceResetCmdBuilder, ResetConfig, UciControlPacket, UciControlPacketHal}; + enum State { Closed, Opened { @@ -46,11 +49,23 @@ impl UwbChip { impl State { /// Terminate the reader task. async fn close(&mut self) -> Result<()> { - if let State::Opened { ref mut token, ref callbacks, ref mut death_recipient, ref mut handle, .. } = *self { + if let State::Opened { + ref mut token, + ref callbacks, + ref mut death_recipient, + ref mut handle, + ref mut serial, + } = *self + { log::info!("waiting for task cancellation"); callbacks.as_binder().unlink_to_death(death_recipient)?; token.cancel(); handle.await.unwrap(); + consume_device_reset_rsp_and_ntf( + &mut serial + .try_clone() + .map_err(|_| binder::StatusCode::UNKNOWN_ERROR)?, + ); log::info!("task successfully cancelled"); callbacks.onHalEvent(UwbEvent::CLOSE_CPLT, UwbStatus::OK)?; *self = State::Closed; @@ -59,6 +74,20 @@ impl State { } } +fn consume_device_reset_rsp_and_ntf(reader: &mut File) { + // Poll the DeviceResetRsp and DeviceStatusNtf before hal is closed to prevent + // the host from getting response and notifications from a 'powered down' UWBS. + // Do nothing when these packets are received. + const DEVICE_RESET_RSP: [u8; 5] = [64, 0, 0, 1, 0]; + const DEVICE_STATUS_NTF: [u8; 5] = [96, 1, 0, 1, 1]; + let mut buffer = vec![0; DEVICE_RESET_RSP.len() + DEVICE_STATUS_NTF.len()]; + read_exact(reader, &mut buffer).unwrap(); + + // Make sure received packets are the expected ones. + assert_eq!(&buffer[0..DEVICE_RESET_RSP.len()], &DEVICE_RESET_RSP); + assert_eq!(&buffer[DEVICE_RESET_RSP.len()..], &DEVICE_STATUS_NTF); +} + pub fn makeraw(file: File) -> io::Result { // Configure the file descriptor as raw fd. use nix::sys::termios::*; @@ -209,7 +238,21 @@ impl IUwbChipAsyncServer for UwbChip { let mut state = self.state.lock().await; - if matches!(*state, State::Opened { .. }) { + if let State::Opened { ref mut serial, .. } = *state { + let packet: UciControlPacket = DeviceResetCmdBuilder { + reset_config: ResetConfig::UwbsReset, + } + .build() + .into(); + // DeviceResetCmd need to be send to reset the device to stop all running + // activities on UWBS. + let packet_vec: Vec = packet.into(); + for hal_packet in packet_vec.into_iter() { + serial + .write(&hal_packet.to_vec()) + .map(|written| written as i32) + .map_err(|_| binder::StatusCode::UNKNOWN_ERROR)?; + } state.close().await } else { Err(binder::ExceptionCode::ILLEGAL_STATE.into()) -- GitLab From ce9767a966c9c921e7507985d32ae60e8c6007e8 Mon Sep 17 00:00:00 2001 From: Dean Wheatley Date: Tue, 24 Oct 2023 11:23:49 +1100 Subject: [PATCH 025/418] Add remote submix direct paths Explicitly reject remote submix non PCM input or output streams. Bug: 311830316 Test: atest VtsHalAudioCoreTargetTest Change-Id: I3da9282d0f4ecb91dea65f784294e94436765538 --- audio/aidl/default/Configuration.cpp | 46 ++++++++++++++++--- .../default/r_submix/ModuleRemoteSubmix.cpp | 9 ++++ 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/audio/aidl/default/Configuration.cpp b/audio/aidl/default/Configuration.cpp index 2a8e58f843..baaa55f9b9 100644 --- a/audio/aidl/default/Configuration.cpp +++ b/audio/aidl/default/Configuration.cpp @@ -32,6 +32,7 @@ using aidl::android::media::audio::common::AudioDeviceType; using aidl::android::media::audio::common::AudioFormatDescription; using aidl::android::media::audio::common::AudioFormatType; using aidl::android::media::audio::common::AudioGainConfig; +using aidl::android::media::audio::common::AudioInputFlags; using aidl::android::media::audio::common::AudioIoFlags; using aidl::android::media::audio::common::AudioOutputFlags; using aidl::android::media::audio::common::AudioPort; @@ -321,20 +322,25 @@ std::unique_ptr getPrimaryConfiguration() { // // Mix ports: // * "r_submix output", maximum 10 opened streams, maximum 10 active streams -// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000 +// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000, 192000 // * "r_submix input", maximum 10 opened streams, maximum 10 active streams -// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000 +// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000, 192000 +// * "r_submix output direct", DIRECT|IEC958_NONAUDIO, 1 max open, 1 max active +// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000, 192000 +// * "r_submix input direct", DIRECT, 1 max open, 1 max active +// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000, 192000 + // // Routes: -// "r_submix output" -> "Remote Submix Out" -// "Remote Submix In" -> "r_submix input" +// "r_submix output", "r_submix output direct" -> "Remote Submix Out" +// "Remote Submix In" -> "r_submix input", "r_submix input direct" // std::unique_ptr getRSubmixConfiguration() { static const Configuration configuration = []() { Configuration c; const std::vector remoteSubmixPcmAudioProfiles{ createProfile(PcmType::INT_16_BIT, {AudioChannelLayout::LAYOUT_STEREO}, - {8000, 11025, 16000, 32000, 44100, 48000})}; + {8000, 11025, 16000, 32000, 44100, 48000, 192000})}; // Device ports @@ -359,13 +365,41 @@ std::unique_ptr getRSubmixConfiguration() { rsubmixOutMix.profiles = remoteSubmixPcmAudioProfiles; c.ports.push_back(rsubmixOutMix); + // Adding a DIRECT flag to rsubmixInMix breaks the mixer paths, so we need separate + // non direct and direct paths. It is added because for IEC61937 encapsulated over PCM, we + // need the DIRECT and IEC958_NONAUDIO flags as AudioFlinger adds them. + AudioPort rsubmixOutDirectMix = + createPort(c.nextPortId++, "r_submix output direct", + makeBitPositionFlagMask({ + AudioOutputFlags::DIRECT, + AudioOutputFlags::IEC958_NONAUDIO}), + false /* isInput */, + createPortMixExt(1 /* maxOpenStreamCount */, + 1 /* maxActiveStreamCount */)); + rsubmixOutDirectMix.profiles = remoteSubmixPcmAudioProfiles; + c.ports.push_back(rsubmixOutDirectMix); + AudioPort rsubmixInMix = createPort(c.nextPortId++, "r_submix input", 0, true, createPortMixExt(10, 10)); rsubmixInMix.profiles = remoteSubmixPcmAudioProfiles; c.ports.push_back(rsubmixInMix); - c.routes.push_back(createRoute({rsubmixOutMix}, rsubmixOutDevice)); + // Adding a DIRECT flag to rsubmixInMix breaks the capture paths, so we need separate + // non direct and direct paths. It is added because for IEC61937 encapsulated over PCM, we + // need the DIRECT flag for the capability so AudioFlinger can find a DIRECT input match. + AudioPort rsubmixInDirectMix = + createPort(c.nextPortId++, "r_submix input direct", + makeBitPositionFlagMask({AudioInputFlags::DIRECT}), + true /* isInput */, + createPortMixExt(1 /* maxOpenStreamCount */, + 1 /* maxActiveStreamCount */)); + rsubmixInDirectMix.profiles = remoteSubmixPcmAudioProfiles; + c.ports.push_back(rsubmixInDirectMix); + + c.routes.push_back(createRoute( + {rsubmixOutMix, rsubmixOutDirectMix}, rsubmixOutDevice)); c.routes.push_back(createRoute({rsubmixInDevice}, rsubmixInMix)); + c.routes.push_back(createRoute({rsubmixInDevice}, rsubmixInDirectMix)); return c; }(); diff --git a/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp b/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp index 2f4288976f..f3965ba9eb 100644 --- a/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp +++ b/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp @@ -27,6 +27,7 @@ using aidl::android::hardware::audio::common::SinkMetadata; using aidl::android::hardware::audio::common::SourceMetadata; +using aidl::android::media::audio::common::AudioFormatType; using aidl::android::media::audio::common::AudioOffloadInfo; using aidl::android::media::audio::common::AudioPort; using aidl::android::media::audio::common::AudioPortConfig; @@ -47,6 +48,10 @@ ndk::ScopedAStatus ModuleRemoteSubmix::setMicMute(bool in_mute __unused) { ndk::ScopedAStatus ModuleRemoteSubmix::createInputStream( StreamContext&& context, const SinkMetadata& sinkMetadata, const std::vector& microphones, std::shared_ptr* result) { + if (context.getFormat().type != AudioFormatType::PCM) { + LOG(DEBUG) << __func__ << ": not supported for format " << context.getFormat().toString(); + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); + } return createStreamInstance(result, std::move(context), sinkMetadata, microphones); } @@ -54,6 +59,10 @@ ndk::ScopedAStatus ModuleRemoteSubmix::createInputStream( ndk::ScopedAStatus ModuleRemoteSubmix::createOutputStream( StreamContext&& context, const SourceMetadata& sourceMetadata, const std::optional& offloadInfo, std::shared_ptr* result) { + if (context.getFormat().type != AudioFormatType::PCM) { + LOG(DEBUG) << __func__ << ": not supported for format " << context.getFormat().toString(); + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); + } return createStreamInstance(result, std::move(context), sourceMetadata, offloadInfo); } -- GitLab From b9fbd4e3c7fb6d989b92edd10795f3260161f5cd Mon Sep 17 00:00:00 2001 From: Peter Lin Date: Thu, 14 Dec 2023 05:43:25 +0000 Subject: [PATCH 026/418] [VTS] Update SetDisplayBrightness test item Ensure the primary display power on before run the SetDisplayBrightness test item. Bug: 313794734 Test: atest VtsHalGraphicsComposer3_TargetTest:PerInstance/ GraphicsComposerAidlCommandTest#SetDisplayBrightness/ 0_android_hardware_graphics_composer3_IComposer_default -- --abi arm64-v8a Change-Id: I94fb700704bcbd8543f2a608dd75b9e745e40e37 --- .../composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp index ca1b6d82de..d3a5dc872e 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp @@ -1773,6 +1773,7 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerColorTransform) { } TEST_P(GraphicsComposerAidlCommandTest, SetDisplayBrightness) { + EXPECT_TRUE(mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::ON).isOk()); const auto& [status, capabilities] = mComposerClient->getDisplayCapabilities(getPrimaryDisplayId()); ASSERT_TRUE(status.isOk()); -- GitLab From 9aaa752c3e6d65ab9d781e00cef77c08b98145cb Mon Sep 17 00:00:00 2001 From: Venkata Jagadeesh Garaga Date: Wed, 13 Dec 2023 12:37:40 +0530 Subject: [PATCH 027/418] Add CS mode 0 params for Channel Sounding HAL - add frequencyCompensation in ChannelSoudingRawData - add measuredFreqOffset in ChannelSoundingSingleSideData Bug: 310941161 Test: m android.hardware.bluetooth.ranging-update-api Change-Id: I88444b76b136c5b45d4298692d5734b44941c5a3 --- .../hardware/bluetooth/ranging/ChannelSoudingRawData.aidl | 1 + .../bluetooth/ranging/ChannelSoundingSingleSideData.aidl | 1 + .../hardware/bluetooth/ranging/ChannelSoudingRawData.aidl | 5 +++++ .../bluetooth/ranging/ChannelSoundingSingleSideData.aidl | 4 ++++ 4 files changed, 11 insertions(+) diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl index e7fad4d01b..8fc77aec31 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl @@ -35,6 +35,7 @@ package android.hardware.bluetooth.ranging; @VintfStability parcelable ChannelSoudingRawData { int procedureCounter; + int[] frequencyCompensation; boolean aborted; android.hardware.bluetooth.ranging.ChannelSoundingSingleSideData initiatorData; android.hardware.bluetooth.ranging.ChannelSoundingSingleSideData reflectorData; diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl index 9fe85da874..ddaba720f7 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl @@ -38,6 +38,7 @@ parcelable ChannelSoundingSingleSideData { @nullable byte[] packetQuality; @nullable byte[] packetRssiDbm; @nullable android.hardware.bluetooth.ranging.Nadm[] packetNadm; + @nullable int[] measuredFreqOffset; @nullable List packetPct1; @nullable List packetPct2; byte referencePowerDbm; diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl index 3c8a62fc25..0106865b97 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl @@ -28,6 +28,11 @@ parcelable ChannelSoudingRawData { * Procedure counter of the CS procedure. */ int procedureCounter; + /** + * Frequency Compensation indicates fractional frequency + * offset (FFO) value of initiator, in 0.01ppm + */ + int[] frequencyCompensation; /** * Indicate if the procedure aborted. */ diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl index 2c3f20152d..942fc0d35e 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl @@ -41,6 +41,10 @@ parcelable ChannelSoundingSingleSideData { * Packet NADM of mode-1 or mode-3 step data for attack detection. */ @nullable Nadm[] packetNadm; + /** + * Measured Frequency Offset from mode 0, relative to the remote device, in 0.01ppm + */ + @nullable int[] measuredFreqOffset; /** * Packet_PCT1 or packet_PCT2 of mode-1 or mode-3, if sounding sequence is used and sounding * phase-based ranging is supported. -- GitLab From 9c16dd7cce130eeeac6f6134758f62a4bdd5364c Mon Sep 17 00:00:00 2001 From: Venkata Jagadeesh Garaga Date: Wed, 13 Dec 2023 12:38:32 +0530 Subject: [PATCH 028/418] Add CS mode 2 and mode 3 param for Channel Sounding HAL - add toneExtentionAntennaIndex in StepTonePct aidl Bug: 310941161 Test: m android.hardware.bluetooth.ranging-update-api Change-Id: I9e115480d78a26c8996d5bbd0b482bd173620663 --- .../bluetooth/ranging/StepTonePct.aidl | 6 ++++++ .../bluetooth/ranging/StepTonePct.aidl | 20 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/StepTonePct.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/StepTonePct.aidl index a51ba3790a..412574856e 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/StepTonePct.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/StepTonePct.aidl @@ -36,6 +36,7 @@ package android.hardware.bluetooth.ranging; parcelable StepTonePct { List tonePcts; byte[] toneQualityIndicator; + byte toneExtensionAntennaIndex; const int TONE_QUALITY_GOOD = 0; const int TONE_QUALITY_MEDIUM = 1; const int TONE_QUALITY_LOW = 2; @@ -44,4 +45,9 @@ parcelable StepTonePct { const int EXTENSION_SLOT_TONE_NOT_EXPECTED_TO_BE_PRESENT = 1; const int EXTENSION_SLOT_TONE_EXPECTED_TO_BE_PRESENT = 2; const int EXTENSION_SLOT_SHIFT_AMOUNT = 4; + const byte TONE_EXTENSION_ANTENNA_1 = 0x0; + const byte TONE_EXTENSION_ANTENNA_2 = 0x1; + const byte TONE_EXTENSION_ANTENNA_3 = 0x2; + const byte TONE_EXTENSION_ANTENNA_4 = 0x3; + const byte TONE_EXTENSION_UNUSED = 0xFFu8; } diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/StepTonePct.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/StepTonePct.aidl index 99c6d65e68..46508614ee 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/StepTonePct.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/StepTonePct.aidl @@ -23,6 +23,10 @@ import android.hardware.bluetooth.ranging.ComplexNumber; */ @VintfStability parcelable StepTonePct { + /** + * PCT measured from mode-2 or mode-3 steps + * (in ascending order of antenna position with tone extension data at the end). + */ List tonePcts; const int TONE_QUALITY_GOOD = 0; const int TONE_QUALITY_MEDIUM = 1; @@ -52,4 +56,20 @@ parcelable StepTonePct { * See: https://bluetooth.com/specifications/specs/channel-sounding-cr-pr/ */ byte[] toneQualityIndicator; + + const byte TONE_EXTENSION_ANTENNA_1 = 0x0; + const byte TONE_EXTENSION_ANTENNA_2 = 0x1; + const byte TONE_EXTENSION_ANTENNA_3 = 0x2; + const byte TONE_EXTENSION_ANTENNA_4 = 0x3; + const byte TONE_EXTENSION_UNUSED = 0xFFu8; + /** + * Tone Extension Antenna Index indicates the Antenna position used in tone extension slot + * + * 0x00 = A1 + * 0x01 = A2 + * 0x02 = A3 + * 0x03 = A4 + * 0xFF = Tone extension not used + */ + byte toneExtensionAntennaIndex; } -- GitLab From 6339cde065062e81196353c491fd1ddd6fccf091 Mon Sep 17 00:00:00 2001 From: maheshkkv Date: Thu, 14 Dec 2023 09:58:57 -0800 Subject: [PATCH 029/418] Fix 11az non-TB measurment time unit Bug: 295619650 Test: m Change-Id: I8a0cc8d59db939cfc5adfd6e3ce5d6817db0a2f8 --- .../current/android/hardware/wifi/RttConfig.aidl | 4 ++-- .../current/android/hardware/wifi/RttResult.aidl | 4 ++-- wifi/aidl/android/hardware/wifi/RttConfig.aidl | 14 ++++++++++---- wifi/aidl/android/hardware/wifi/RttResult.aidl | 16 ++++++++++------ wifi/aidl/default/aidl_struct_util.cpp | 16 ++++++++-------- 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl index 16a14eaeb2..b53ff9b526 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl @@ -48,6 +48,6 @@ parcelable RttConfig { int burstDuration; android.hardware.wifi.RttPreamble preamble; android.hardware.wifi.RttBw bw; - int ntbMinMeasurementTimeMillis; - int ntbMaxMeasurementTimeMillis; + long ntbMinMeasurementTime; + long ntbMaxMeasurementTime; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl index 93a04acb6f..9c6ad267f3 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl @@ -61,6 +61,6 @@ parcelable RttResult { android.hardware.wifi.RttBw packetBw; byte i2rTxLtfRepetitionCount; byte r2iTxLtfRepetitionCount; - int ntbMinMeasurementTimeMillis; - int ntbMaxMeasurementTimeMillis; + long ntbMinMeasurementTime; + long ntbMaxMeasurementTime; } diff --git a/wifi/aidl/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/android/hardware/wifi/RttConfig.aidl index 97b3acfd71..7b18708b8d 100644 --- a/wifi/aidl/android/hardware/wifi/RttConfig.aidl +++ b/wifi/aidl/android/hardware/wifi/RttConfig.aidl @@ -121,11 +121,17 @@ parcelable RttConfig { */ RttBw bw; /** - * IEEE 802.11az Non-Trigger-based (non-TB) minimum measurement time in milliseconds. + * IEEE 802.11az Non-Trigger-based (non-TB) minimum measurement time in units of 100 + * microseconds. + * + * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. */ - int ntbMinMeasurementTimeMillis; + long ntbMinMeasurementTime; /** - * IEEE 802.11az Non-Trigger-based (non-TB) maximum measurement time in milliseconds. + * IEEE 802.11az Non-Trigger-based (non-TB) maximum measurement time in units of 10 + * milliseconds. + * + * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. */ - int ntbMaxMeasurementTimeMillis; + long ntbMaxMeasurementTime; } diff --git a/wifi/aidl/android/hardware/wifi/RttResult.aidl b/wifi/aidl/android/hardware/wifi/RttResult.aidl index 034b0da9f9..ab9abb550e 100644 --- a/wifi/aidl/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/android/hardware/wifi/RttResult.aidl @@ -156,8 +156,8 @@ parcelable RttResult { */ byte r2iTxLtfRepetitionCount; /** - * Minimum non-trigger based (non-TB) dynamic measurement time in milliseconds assigned by the - * IEEE 802.11az responder. + * Minimum non-trigger based (non-TB) dynamic measurement time in units of 100 microseconds + * assigned by the IEEE 802.11az responder. * * After initial non-TB negotiation, if the next ranging request for this peer comes in between * [ntbMinMeasurementTime, ntbMaxMeasurementTime], vendor software shall do the NDPA sounding @@ -166,11 +166,13 @@ parcelable RttResult { * If the ranging request for this peer comes sooner than minimum measurement time, vendor * software shall return the cached result of the last measurement including the time stamp * |RttResult.timestamp|. + * + * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. */ - int ntbMinMeasurementTimeMillis; + long ntbMinMeasurementTime; /** - * Maximum non-trigger based (non-TB) dynamic measurement time in milliseconds assigned by the - * IEEE 802.11az responder. + * Maximum non-trigger based (non-TB) dynamic measurement time in units of 10 milliseconds + * assigned by the IEEE 802.11az responder. * * After initial non-TB negotiation, if the next ranging request for this peer comes in between * [ntbMinMeasurementTime, ntbMaxMeasurementTime], vendor software shall do the NDPA sounding @@ -179,6 +181,8 @@ parcelable RttResult { * If the ranging request for this peer comes later than the maximum measurement time, vendor * software shall clean up any existing IEEE 802.11ax non-TB ranging session and re-do the * non-TB ranging negotiation. + * + * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. */ - int ntbMaxMeasurementTimeMillis; + long ntbMaxMeasurementTime; } diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp index 42f484be70..7e7929d392 100644 --- a/wifi/aidl/default/aidl_struct_util.cpp +++ b/wifi/aidl/default/aidl_struct_util.cpp @@ -2741,8 +2741,8 @@ bool convertAidlRttConfigToLegacyV3(const RttConfig& aidl_config, if (!convertAidlRttConfigToLegacy(aidl_config, &(legacy_config->rtt_config))) { return false; } - legacy_config->ntb_min_measurement_time_millis = aidl_config.ntbMinMeasurementTimeMillis; - legacy_config->ntb_max_measurement_time_millis = aidl_config.ntbMaxMeasurementTimeMillis; + legacy_config->ntb_min_measurement_time = aidl_config.ntbMinMeasurementTime; + legacy_config->ntb_max_measurement_time = aidl_config.ntbMaxMeasurementTime; return true; } @@ -2993,8 +2993,8 @@ bool convertLegacyVectorOfRttResultToAidl( aidl_result.packetBw = RttBw::BW_UNSPECIFIED; aidl_result.i2rTxLtfRepetitionCount = 0; aidl_result.r2iTxLtfRepetitionCount = 0; - aidl_result.ntbMinMeasurementTimeMillis = 0; - aidl_result.ntbMaxMeasurementTimeMillis = 0; + aidl_result.ntbMinMeasurementTime = 0; + aidl_result.ntbMaxMeasurementTime = 0; aidl_results->push_back(aidl_result); } return true; @@ -3017,8 +3017,8 @@ bool convertLegacyVectorOfRttResultV2ToAidl( aidl_result.packetBw = convertLegacyRttBwToAidl(legacy_result->packet_bw); aidl_result.i2rTxLtfRepetitionCount = 0; aidl_result.r2iTxLtfRepetitionCount = 0; - aidl_result.ntbMinMeasurementTimeMillis = 0; - aidl_result.ntbMaxMeasurementTimeMillis = 0; + aidl_result.ntbMinMeasurementTime = 0; + aidl_result.ntbMaxMeasurementTime = 0; aidl_results->push_back(aidl_result); } return true; @@ -3042,8 +3042,8 @@ bool convertLegacyVectorOfRttResultV3ToAidl( aidl_result.packetBw = convertLegacyRttBwToAidl(legacy_result->rtt_result.packet_bw); aidl_result.i2rTxLtfRepetitionCount = legacy_result->i2r_tx_ltf_repetition_count; aidl_result.r2iTxLtfRepetitionCount = legacy_result->r2i_tx_ltf_repetition_count; - aidl_result.ntbMinMeasurementTimeMillis = legacy_result->ntb_min_measurement_time_millis; - aidl_result.ntbMaxMeasurementTimeMillis = legacy_result->ntb_max_measurement_time_millis; + aidl_result.ntbMinMeasurementTime = legacy_result->ntb_min_measurement_time; + aidl_result.ntbMaxMeasurementTime = legacy_result->ntb_max_measurement_time; aidl_results->push_back(aidl_result); } return true; -- GitLab From cbb2468533348a31ef18411d7353781277cce43d Mon Sep 17 00:00:00 2001 From: Yixiao Luo Date: Thu, 14 Dec 2023 11:43:22 -0800 Subject: [PATCH 030/418] Make sideband stream handle validation configurable Bug: 311341683 Test: VtsHalTvInputTargetTest Change-Id: I3f4319793039cc1dce39ce4e6a31f4c5abdbb7e0 --- .../aidl/vts/functional/VtsHalTvInputTargetTest.cpp | 10 ++++++++-- tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.cpp b/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.cpp index 746ae1e1af..7e095f1499 100644 --- a/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.cpp +++ b/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#define LOG_TAG "tv_input_aidl_hal_test" + #include "VtsHalTvInputTargetTest.h" #include @@ -181,7 +183,9 @@ TEST_P(TvInputAidlTest, OpenAndCloseStreamTest) { ALOGD("OpenAndCloseStreamTest: open stream, device_id=%d, stream_id=%d", device_id, stream_id); ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).isOk()); - ASSERT_TRUE(isValidHandle(handle)); + if (VERIFY_SIDEBAND_STREAM_HANDLE) { + ASSERT_TRUE(isValidHandle(handle)); + } ALOGD("OpenAndCloseStreamTest: close stream, device_id=%d, stream_id=%d", device_id, stream_id); @@ -283,7 +287,9 @@ TEST_P(TvInputAidlTest, OpenAnOpenedStreamsTest) { ALOGD("OpenAnOpenedStreamsTest: open stream, device_id=%d, stream_id=%d", device_id, stream_id); ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).isOk()); - ASSERT_TRUE(isValidHandle(handle)); + if (VERIFY_SIDEBAND_STREAM_HANDLE) { + ASSERT_TRUE(isValidHandle(handle)); + } ALOGD("OpenAnOpenedStreamsTest: open stream, device_id=%d, stream_id=%d", device_id, stream_id); ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).getServiceSpecificError() == diff --git a/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h b/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h index 7e66a88a32..fd98a18c47 100644 --- a/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h +++ b/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h @@ -43,6 +43,7 @@ using ::android::AidlMessageQueue; #define WAIT_FOR_EVENT_TIMEOUT 5 #define DEFAULT_ID INT32_MIN +#define VERIFY_SIDEBAND_STREAM_HANDLE 1 namespace VtsHalTvInputTargetTest { -- GitLab From caac147d01566b75c3a8ec0f5d4e8ef577f6ba4e Mon Sep 17 00:00:00 2001 From: Matt Buckley Date: Tue, 12 Dec 2023 03:55:50 +0000 Subject: [PATCH 031/418] Add AIDL API for PowerHAL to send session updates with FMQ This patch adds a set of APIs to PowerHAL to enable hint session communication via FMQ, to reduce both binder overhead and call latency moving forward. Bug: 315894228 Test: atest VtsHalPowerTargetTest Change-Id: I56f89322c7706ab68e640542caf5b70eef36c451 --- power/aidl/Android.bp | 9 ++ .../android/hardware/power/ChannelConfig.aidl | 41 ++++++++ .../hardware/power/ChannelMessage.aidl | 52 ++++++++++ .../android/hardware/power/IPower.aidl | 3 + .../hardware/power/IPowerHintSession.aidl | 1 + .../android/hardware/power/SessionConfig.aidl | 38 ++++++++ .../android/hardware/power/SessionTag.aidl | 41 ++++++++ .../hardware/power/WorkDurationFixedV1.aidl | 42 +++++++++ .../android/hardware/power/ChannelConfig.aidl | 52 ++++++++++ .../hardware/power/ChannelMessage.aidl | 94 +++++++++++++++++++ power/aidl/android/hardware/power/IPower.aidl | 41 ++++++++ .../hardware/power/IPowerHintSession.aidl | 8 ++ .../android/hardware/power/SessionConfig.aidl | 30 ++++++ .../android/hardware/power/SessionTag.aidl | 41 ++++++++ .../hardware/power/WorkDurationFixedV1.aidl | 53 +++++++++++ power/aidl/default/Android.bp | 4 + power/aidl/default/Power.cpp | 27 ++++++ power/aidl/default/Power.h | 8 ++ power/aidl/default/PowerHintSession.cpp | 6 ++ power/aidl/default/PowerHintSession.h | 1 + power/aidl/vts/Android.bp | 5 + power/aidl/vts/VtsHalPowerTargetTest.cpp | 45 +++++++++ 22 files changed, 642 insertions(+) create mode 100644 power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelConfig.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionConfig.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl create mode 100644 power/aidl/android/hardware/power/ChannelConfig.aidl create mode 100644 power/aidl/android/hardware/power/ChannelMessage.aidl create mode 100644 power/aidl/android/hardware/power/SessionConfig.aidl create mode 100644 power/aidl/android/hardware/power/SessionTag.aidl create mode 100644 power/aidl/android/hardware/power/WorkDurationFixedV1.aidl diff --git a/power/aidl/Android.bp b/power/aidl/Android.bp index 76439265af..8900fb8848 100644 --- a/power/aidl/Android.bp +++ b/power/aidl/Android.bp @@ -28,11 +28,20 @@ aidl_interface { "android/hardware/power/*.aidl", ], stability: "vintf", + imports: [ + "android.hardware.common.fmq-V1", + "android.hardware.common-V2", + ], backend: { cpp: { + enabled: false, + }, + ndk: { enabled: true, }, java: { + sdk_version: "module_current", + enabled: true, platform_apis: true, }, }, diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelConfig.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelConfig.aidl new file mode 100644 index 0000000000..d3caca413b --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelConfig.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable ChannelConfig { + android.hardware.common.fmq.MQDescriptor channelDescriptor; + @nullable android.hardware.common.fmq.MQDescriptor eventFlagDescriptor; + int readFlagBitmask; + int writeFlagBitmask; +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl new file mode 100644 index 0000000000..25f01c0d91 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@FixedSize @VintfStability +parcelable ChannelMessage { + int sessionID; + android.hardware.power.ChannelMessage.ChannelMessageContents data; + @FixedSize @VintfStability + union ChannelMessageContents { + int[20] tids = {(-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */}; + long targetDuration; + android.hardware.power.SessionHint hint; + android.hardware.power.ChannelMessage.ChannelMessageContents.SessionModeSetter mode; + android.hardware.power.WorkDurationFixedV1 workDuration; + @FixedSize @VintfStability + parcelable SessionModeSetter { + android.hardware.power.SessionMode modeInt; + boolean enabled; + } + } +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPower.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPower.aidl index ae03313f11..8acdaf2014 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPower.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPower.aidl @@ -40,4 +40,7 @@ interface IPower { boolean isBoostSupported(in android.hardware.power.Boost type); android.hardware.power.IPowerHintSession createHintSession(in int tgid, in int uid, in int[] threadIds, in long durationNanos); long getHintSessionPreferredRate(); + android.hardware.power.IPowerHintSession createHintSessionWithConfig(in int tgid, in int uid, in int[] threadIds, in long durationNanos, in android.hardware.power.SessionTag tag, out android.hardware.power.SessionConfig config); + android.hardware.power.ChannelConfig getSessionChannel(in int tgid, in int uid); + oneway void closeSessionChannel(in int tgid, in int uid); } diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPowerHintSession.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPowerHintSession.aidl index 6bc663e125..010f815476 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPowerHintSession.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPowerHintSession.aidl @@ -42,4 +42,5 @@ interface IPowerHintSession { oneway void sendHint(android.hardware.power.SessionHint hint); void setThreads(in int[] threadIds); oneway void setMode(android.hardware.power.SessionMode type, boolean enabled); + android.hardware.power.SessionConfig getSessionConfig(); } diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionConfig.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionConfig.aidl new file mode 100644 index 0000000000..b03cfb2db1 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionConfig.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable SessionConfig { + long id; +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl new file mode 100644 index 0000000000..80848a41cb --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum SessionTag { + OTHER, + SURFACEFLINGER, + HWUI, + GAME, +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl new file mode 100644 index 0000000000..8cd246d6bf --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@FixedSize @VintfStability +parcelable WorkDurationFixedV1 { + long timeStampNanos; + long durationNanos; + long workPeriodStartTimestampNanos; + long cpuDurationNanos; + long gpuDurationNanos; +} diff --git a/power/aidl/android/hardware/power/ChannelConfig.aidl b/power/aidl/android/hardware/power/ChannelConfig.aidl new file mode 100644 index 0000000000..4da292ed51 --- /dev/null +++ b/power/aidl/android/hardware/power/ChannelConfig.aidl @@ -0,0 +1,52 @@ + +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +import android.hardware.common.fmq.MQDescriptor; +import android.hardware.common.fmq.SynchronizedReadWrite; +import android.hardware.power.ChannelMessage; + +@VintfStability +parcelable ChannelConfig { + /** + * The message queue descriptor that provides the information necessary for + * a client to write to this channel. + */ + MQDescriptor channelDescriptor; + + /** + * A message queue descriptor used to pass an optional event flag to clients, + * used to synchronize multiple message queues using the same flag. If not + * defined, the flag from the channelDescriptor should be used. + */ + @nullable MQDescriptor eventFlagDescriptor; + + /** + * The read flag bitmask to be used with the event flag, specifying the + * bits used by this channel to mark that the buffer has been read from. + * If set to 0, the default bitmask will be used. + */ + int readFlagBitmask; + + /** + * The write flag bitmask to be used with the event flag, specifying the + * bits used by this channel to mark that the buffer has been written to. + * If set to 0, the default bitmask will be used. + */ + int writeFlagBitmask; +} diff --git a/power/aidl/android/hardware/power/ChannelMessage.aidl b/power/aidl/android/hardware/power/ChannelMessage.aidl new file mode 100644 index 0000000000..4747d90463 --- /dev/null +++ b/power/aidl/android/hardware/power/ChannelMessage.aidl @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +import android.hardware.power.SessionHint; +import android.hardware.power.SessionMode; +import android.hardware.power.WorkDurationFixedV1; + +/** + * Data sent through the FMQ must follow this structure. It's important to note + * that such data may come from the app itself, so the HAL must validate all + * data received through this interface, and reject any calls not guaranteed to be + * valid. Each of the types defined in the inner union maps to an equivalent call + * on IPowerHintSession, and is merely being used to expedite the use of that API + * in cases where it is safe to bypass the HintManagerService. + */ +@FixedSize +@VintfStability +parcelable ChannelMessage { + /** + * The ID of the specific session sending the hint, used to enable a single + * channel to be multiplexed across all sessions in a single process. + */ + int sessionID; + + /** + * A union defining the different messages that can be passed through the + * channel. Each type corresponds to a different call in IPowerHintSession. + */ + ChannelMessageContents data; + + @FixedSize + @VintfStability + union ChannelMessageContents { + /** + * List of TIDs for this session to change to. Can be used in cases + * where HintManagerService is not needed to validate the TIDs, such as + * when all TIDs directly belong to the process that owns the session. + */ + int[20] tids = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; + + /** + * Setting this field will update the session’s target duration, equivalent + * to calling updateTargetWorkDuration(targetDuration). + */ + long targetDuration; + + /** + * Setting this field will send a hint to the session, equivalent to + * calling sendHint(hint). + */ + SessionHint hint; + + /** + * Setting this field will send a hint to the session, equivalent to + * calling setMode(mode.modeInt, mode.enabled). + */ + SessionModeSetter mode; + + /** + * Setting this field will update the session’s actual duration, equivalent + * to calling reportActualWorkDuration([workDuration]). Only one duration + * can be passed at a time; this API expects durations to be reported + * immediately each frame, since the overhead of this call is much lower. + */ + WorkDurationFixedV1 workDuration; + + /** + * This structure is used to fit both the mode and the state within one + * entry in the union. + */ + @FixedSize + @VintfStability + parcelable SessionModeSetter { + SessionMode modeInt; + boolean enabled; + } + } +} diff --git a/power/aidl/android/hardware/power/IPower.aidl b/power/aidl/android/hardware/power/IPower.aidl index ee8e5a3a61..e25714fda5 100644 --- a/power/aidl/android/hardware/power/IPower.aidl +++ b/power/aidl/android/hardware/power/IPower.aidl @@ -17,8 +17,11 @@ package android.hardware.power; import android.hardware.power.Boost; +import android.hardware.power.ChannelConfig; import android.hardware.power.IPowerHintSession; import android.hardware.power.Mode; +import android.hardware.power.SessionConfig; +import android.hardware.power.SessionTag; @VintfStability interface IPower { @@ -103,4 +106,42 @@ interface IPower { * EX_UNSUPPORTED_OPERATION if hint session is not supported. */ long getHintSessionPreferredRate(); + + /** + * A version of createHintSession that returns an additional bundle of session + * data, useful to help the session immediately communicate via an FMQ channel + * for more efficient updates. + * + * @return the new session if it is supported on this device, otherwise return + * with EX_UNSUPPORTED_OPERATION error if hint session is not + * supported on this device. + * @param tgid The TGID to be associated with this session. + * @param uid The UID to be associated with this session. + * @param threadIds The list of threads to be associated with this session. + * @param durationNanos The desired duration in nanoseconds for this session. + * @param config Extra session metadata to be returned to the caller. + */ + IPowerHintSession createHintSessionWithConfig(in int tgid, in int uid, in int[] threadIds, + in long durationNanos, in SessionTag tag, out SessionConfig config); + + /** + * Used to get an FMQ channel, per-process. The channel should be unique to + * that process, and should return the same ChannelConfig if called multiple + * times from that same process. + * + * @return the channel config if hint sessions are supported on this device, + * otherwise return with EX_UNSUPPORTED_OPERATION. + * @param tgid The TGID to be associated with this channel. + * @param uid The UID to be associated with this channel. + */ + ChannelConfig getSessionChannel(in int tgid, in int uid); + + /** + * Used to close a channel once it is no longer needed by a process, or that + * process dies. + * + * @param tgid The TGID to be associated with this channel. + * @param uid The UID to be associated with this channel. + */ + oneway void closeSessionChannel(in int tgid, in int uid); } diff --git a/power/aidl/android/hardware/power/IPowerHintSession.aidl b/power/aidl/android/hardware/power/IPowerHintSession.aidl index 62263c8aa9..9dd251fba9 100644 --- a/power/aidl/android/hardware/power/IPowerHintSession.aidl +++ b/power/aidl/android/hardware/power/IPowerHintSession.aidl @@ -16,6 +16,7 @@ package android.hardware.power; +import android.hardware.power.SessionConfig; import android.hardware.power.SessionHint; import android.hardware.power.SessionMode; import android.hardware.power.WorkDuration; @@ -91,4 +92,11 @@ interface IPowerHintSession { * @param enabled True to enable the mode, false to disable it */ oneway void setMode(SessionMode type, boolean enabled); + + /** + * This method provides direct access to a session's config data. + * + * @return the config data for this session + */ + SessionConfig getSessionConfig(); } diff --git a/power/aidl/android/hardware/power/SessionConfig.aidl b/power/aidl/android/hardware/power/SessionConfig.aidl new file mode 100644 index 0000000000..93dc9a278e --- /dev/null +++ b/power/aidl/android/hardware/power/SessionConfig.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +/** + * Additional session to be passed to the hint session during creation, or acquired + * after creation from the session directly. + */ +@VintfStability +parcelable SessionConfig { + /** + * The session's unique ID, used to identify the session for debugging and + * for multiplexing on the per-process FMQ channel. + */ + long id; +} diff --git a/power/aidl/android/hardware/power/SessionTag.aidl b/power/aidl/android/hardware/power/SessionTag.aidl new file mode 100644 index 0000000000..c1d48e4318 --- /dev/null +++ b/power/aidl/android/hardware/power/SessionTag.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +@VintfStability +@Backing(type="int") +enum SessionTag { + /** + * This tag is used to mark uncategorized hint sessions. + */ + OTHER, + + /** + * This tag is used to mark the SurfaceFlinger hint session. + */ + SURFACEFLINGER, + + /** + * This tag is used to mark HWUI hint sessions. + */ + HWUI, + + /** + * This tag is used to mark Game hint sessions. + */ + GAME, +} diff --git a/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl b/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl new file mode 100644 index 0000000000..2d202ff198 --- /dev/null +++ b/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +@FixedSize +@VintfStability +parcelable WorkDurationFixedV1 { + /** + * Timestamp in nanoseconds based on CLOCK_MONOTONIC when the duration + * sample was measured. + */ + long timeStampNanos; + + /** + * Total work duration in nanoseconds. + */ + long durationNanos; + + /** + * Timestamp in nanoseconds based on CLOCK_MONOTONIC when the work starts. + * The work period start timestamp could be zero if the call is from + * the legacy SDK/NDK reportActualWorkDuration API. + */ + long workPeriodStartTimestampNanos; + + /** + * CPU work duration in nanoseconds. + * The CPU work duration could be the same as the total work duration if + * the call is from the legacy SDK/NDK reportActualWorkDuration API. + */ + long cpuDurationNanos; + + /** + * GPU work duration in nanoseconds. + * The GPU work duration could be zero if the call is from the legacy + * SDK/NDK reportActualWorkDuration API. + */ + long gpuDurationNanos; +} diff --git a/power/aidl/default/Android.bp b/power/aidl/default/Android.bp index e3af179ea9..b4ccc7db6b 100644 --- a/power/aidl/default/Android.bp +++ b/power/aidl/default/Android.bp @@ -29,8 +29,12 @@ cc_binary { vintf_fragments: [":android.hardware.power.xml"], vendor: true, shared_libs: [ + "android.hardware.common-V2-ndk", + "android.hardware.common.fmq-V1-ndk", "libbase", "libbinder_ndk", + "libcutils", + "libfmq", ], srcs: [ "main.cpp", diff --git a/power/aidl/default/Power.cpp b/power/aidl/default/Power.cpp index 8fe370c3e4..8f15663db9 100644 --- a/power/aidl/default/Power.cpp +++ b/power/aidl/default/Power.cpp @@ -18,6 +18,8 @@ #include "PowerHintSession.h" #include +#include +#include namespace aidl { namespace android { @@ -27,6 +29,10 @@ namespace impl { namespace example { using namespace std::chrono_literals; +using ::aidl::android::hardware::common::fmq::MQDescriptor; +using ::aidl::android::hardware::common::fmq::SynchronizedReadWrite; +using ::aidl::android::hardware::power::ChannelMessage; +using ::android::AidlMessageQueue; using ndk::ScopedAStatus; @@ -70,6 +76,27 @@ ScopedAStatus Power::createHintSession(int32_t, int32_t, const std::vector& threadIds, int64_t durationNanos, + SessionTag, SessionConfig* config, std::shared_ptr* _aidl_return) { + auto out = createHintSession(tgid, uid, threadIds, durationNanos, _aidl_return); + static_cast(_aidl_return->get())->getSessionConfig(config); + return out; +} + +ndk::ScopedAStatus Power::getSessionChannel(int32_t, int32_t, ChannelConfig* _aidl_return) { + static AidlMessageQueue stubQueue{1, true}; + _aidl_return->channelDescriptor = stubQueue.dupeDesc(); + _aidl_return->readFlagBitmask = 0; + _aidl_return->writeFlagBitmask = 0; + _aidl_return->eventFlagDescriptor = std::nullopt; + return ndk::ScopedAStatus::ok(); +} + +ndk::ScopedAStatus Power::closeSessionChannel(int32_t, int32_t) { + return ndk::ScopedAStatus::ok(); +} + ScopedAStatus Power::getHintSessionPreferredRate(int64_t* outNanoseconds) { *outNanoseconds = std::chrono::nanoseconds(1ms).count(); return ScopedAStatus::ok(); diff --git a/power/aidl/default/Power.h b/power/aidl/default/Power.h index 7f8405eff3..baabaa7271 100644 --- a/power/aidl/default/Power.h +++ b/power/aidl/default/Power.h @@ -17,6 +17,7 @@ #pragma once #include +#include "aidl/android/hardware/power/SessionTag.h" namespace aidl { namespace android { @@ -35,7 +36,14 @@ class Power : public BnPower { const std::vector& threadIds, int64_t durationNanos, std::shared_ptr* _aidl_return) override; + ndk::ScopedAStatus createHintSessionWithConfig( + int32_t tgid, int32_t uid, const std::vector& threadIds, int64_t durationNanos, + SessionTag tag, SessionConfig* config, + std::shared_ptr* _aidl_return) override; ndk::ScopedAStatus getHintSessionPreferredRate(int64_t* outNanoseconds) override; + ndk::ScopedAStatus getSessionChannel(int32_t tgid, int32_t uid, + ChannelConfig* _aidl_return) override; + ndk::ScopedAStatus closeSessionChannel(int32_t tgid, int32_t uid) override; private: std::vector> mPowerHintSessions; diff --git a/power/aidl/default/PowerHintSession.cpp b/power/aidl/default/PowerHintSession.cpp index 452e435c29..847a42e7c3 100644 --- a/power/aidl/default/PowerHintSession.cpp +++ b/power/aidl/default/PowerHintSession.cpp @@ -17,6 +17,7 @@ #include "PowerHintSession.h" #include +#include "android/binder_auto_utils.h" namespace aidl::android::hardware::power::impl::example { @@ -63,4 +64,9 @@ ScopedAStatus PowerHintSession::setMode(SessionMode /* mode */, bool /* enabled return ScopedAStatus::ok(); } +ScopedAStatus PowerHintSession::getSessionConfig(SessionConfig* _aidl_return) { + _aidl_return->id = 1; + return ScopedAStatus::ok(); +} + } // namespace aidl::android::hardware::power::impl::example diff --git a/power/aidl/default/PowerHintSession.h b/power/aidl/default/PowerHintSession.h index b488bf108e..2ed55885f4 100644 --- a/power/aidl/default/PowerHintSession.h +++ b/power/aidl/default/PowerHintSession.h @@ -35,6 +35,7 @@ class PowerHintSession : public BnPowerHintSession { ndk::ScopedAStatus sendHint(SessionHint hint) override; ndk::ScopedAStatus setThreads(const std::vector& threadIds) override; ndk::ScopedAStatus setMode(SessionMode mode, bool enabled) override; + ndk::ScopedAStatus getSessionConfig(SessionConfig* _aidl_return) override; }; } // namespace aidl::android::hardware::power::impl::example diff --git a/power/aidl/vts/Android.bp b/power/aidl/vts/Android.bp index eb98b8b5bf..c9285f4eaa 100644 --- a/power/aidl/vts/Android.bp +++ b/power/aidl/vts/Android.bp @@ -31,6 +31,11 @@ cc_test { srcs: ["VtsHalPowerTargetTest.cpp"], shared_libs: [ "libbinder_ndk", + "libfmq", + ], + static_libs: [ + "android.hardware.common.fmq-V1-ndk", + "android.hardware.common-V2-ndk", ], test_suites: [ "general-tests", diff --git a/power/aidl/vts/VtsHalPowerTargetTest.cpp b/power/aidl/vts/VtsHalPowerTargetTest.cpp index 96995a0acc..11d44b8ab5 100644 --- a/power/aidl/vts/VtsHalPowerTargetTest.cpp +++ b/power/aidl/vts/VtsHalPowerTargetTest.cpp @@ -24,12 +24,22 @@ #include #include +#include +#include + #include +#include +#include "aidl/android/hardware/common/fmq/SynchronizedReadWrite.h" +#include "fmq/EventFlag.h" namespace aidl::android::hardware::power { namespace { +using ::aidl::android::hardware::common::fmq::SynchronizedReadWrite; +using ::android::AidlMessageQueue; using android::hardware::power::Boost; +using android::hardware::power::ChannelConfig; +using android::hardware::power::ChannelMessage; using android::hardware::power::IPower; using android::hardware::power::IPowerHintSession; using android::hardware::power::Mode; @@ -37,6 +47,8 @@ using android::hardware::power::SessionHint; using android::hardware::power::SessionMode; using android::hardware::power::WorkDuration; +using SessionMessageQueue = AidlMessageQueue; + const std::vector kBoosts{ndk::enum_range().begin(), ndk::enum_range().end()}; const std::vector kModes{ndk::enum_range().begin(), ndk::enum_range().end()}; @@ -190,6 +202,31 @@ TEST_P(PowerAidl, getHintSessionPreferredRate) { ASSERT_GE(rate, 1000000); } +TEST_P(PowerAidl, createHintSessionWithConfig) { + if (mServiceVersion < 5) { + GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; + } + std::shared_ptr session; + SessionConfig config; + + auto status = power->createHintSessionWithConfig(getpid(), getuid(), kSelfTids, 16666666L, + SessionTag::OTHER, &config, &session); + ASSERT_TRUE(status.isOk()); + ASSERT_NE(nullptr, session); +} + +TEST_P(PowerAidl, getAndCloseSessionChannel) { + if (mServiceVersion < 5) { + GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; + } + ChannelConfig config; + auto status = power->getSessionChannel(getpid(), getuid(), &config); + ASSERT_TRUE(status.isOk()); + auto messageQueue = std::make_shared(config.channelDescriptor, true); + ASSERT_TRUE(messageQueue->isValid()); + ASSERT_TRUE(power->closeSessionChannel(getpid(), getuid()).isOk()); +} + TEST_P(HintSessionAidl, createAndCloseHintSession) { ASSERT_TRUE(mSession->pause().isOk()); ASSERT_TRUE(mSession->resume().isOk()); @@ -252,6 +289,14 @@ TEST_P(HintSessionAidl, setSessionMode) { } } +TEST_P(HintSessionAidl, getSessionConfig) { + if (mServiceVersion < 5) { + GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; + } + SessionConfig config; + ASSERT_TRUE(mSession->getSessionConfig(&config).isOk()); +} + // FIXED_PERFORMANCE mode is required for all devices which ship on Android 11 // or later TEST_P(PowerAidl, hasFixedPerformance) { -- GitLab From f58c8e09d31e03c9cd2354e3e55f3886fd280d7a Mon Sep 17 00:00:00 2001 From: maheshkkv Date: Thu, 14 Dec 2023 16:41:28 -0800 Subject: [PATCH 032/418] Make TWT wake interval type as long As the TWT Wake Interval Mantissa is a 2-byte field and TWT Wake Interval Exponent is a 5-bit field, Maximum TWT Wake Interval = 65,535 x [2^31] microseconds. So make TWT wake inteval field type as long to avoid overflow. Bug: 296108122 Test: m Change-Id: Id77cd094ae0601839de7f01994072d50ec39cd56 --- .../current/android/hardware/wifi/TwtCapabilities.aidl | 4 ++-- .../current/android/hardware/wifi/TwtRequest.aidl | 4 ++-- .../current/android/hardware/wifi/TwtSession.aidl | 2 +- wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl | 4 ++-- wifi/aidl/android/hardware/wifi/TwtRequest.aidl | 4 ++-- wifi/aidl/android/hardware/wifi/TwtSession.aidl | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl index d8e73fb4b7..d6ed62e943 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl @@ -40,6 +40,6 @@ parcelable TwtCapabilities { boolean isFlexibleTwtScheduleSupported; int minWakeDurationMicros; int maxWakeDurationMicros; - int minWakeIntervalMicros; - int maxWakeIntervalMicros; + long minWakeIntervalMicros; + long maxWakeIntervalMicros; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl index 3051b943a3..06c7ae2433 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl @@ -37,6 +37,6 @@ parcelable TwtRequest { int mloLinkId; int minWakeDurationMicros; int maxWakeDurationMicros; - int minWakeIntervalMicros; - int maxWakeIntervalMicros; + long minWakeIntervalMicros; + long maxWakeIntervalMicros; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl index 92c2533e2c..4e5ca44f17 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl @@ -37,7 +37,7 @@ parcelable TwtSession { int sessionId; int mloLinkId; int wakeDurationMicros; - int wakeIntervalMicros; + long wakeIntervalMicros; android.hardware.wifi.TwtSession.TwtNegotiationType negotiationType; boolean isTriggerEnabled; boolean isAnnounced; diff --git a/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl index 9007d0e5be..4012c3ed73 100644 --- a/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl @@ -48,9 +48,9 @@ parcelable TwtCapabilities { /** * Minimum TWT wake interval in microseconds. */ - int minWakeIntervalMicros; + long minWakeIntervalMicros; /** * Maximum TWT wake interval in microseconds. */ - int maxWakeIntervalMicros; + long maxWakeIntervalMicros; } diff --git a/wifi/aidl/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/android/hardware/wifi/TwtRequest.aidl index 5191713f57..b063da3911 100644 --- a/wifi/aidl/android/hardware/wifi/TwtRequest.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtRequest.aidl @@ -36,9 +36,9 @@ parcelable TwtRequest { /** * Minimum TWT wake interval in microseconds. */ - int minWakeIntervalMicros; + long minWakeIntervalMicros; /** * Maximum TWT wake interval in microseconds. */ - int maxWakeIntervalMicros; + long maxWakeIntervalMicros; } diff --git a/wifi/aidl/android/hardware/wifi/TwtSession.aidl b/wifi/aidl/android/hardware/wifi/TwtSession.aidl index 5a7ddb1a0b..6b780f8343 100644 --- a/wifi/aidl/android/hardware/wifi/TwtSession.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtSession.aidl @@ -46,7 +46,7 @@ parcelable TwtSession { /** * Time interval in microseconds between two successive TWT service periods. */ - int wakeIntervalMicros; + long wakeIntervalMicros; /** * TWT negotiation type. -- GitLab From efa6db774e02d224a8b43b2428bd018d4623a454 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 13 Dec 2023 15:41:56 -0800 Subject: [PATCH 033/418] Add enter garage mode bootup reason. Test: m android.hardware.automotive.vehicle.property-update-api Bug: 316217804 Change-Id: I2556e784d6a1b48c8067b06157176743fe6fa5a2 --- .../vehicle/VehicleApPowerBootupReason.aidl | 1 + .../vehicle/VehicleApPowerBootupReason.aidl | 19 ++++++++++++++++++- .../automotive/vehicle/VehicleProperty.aidl | 14 ++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl index 9720aca787..55af2ab0fa 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl @@ -37,4 +37,5 @@ enum VehicleApPowerBootupReason { USER_POWER_ON = 0, SYSTEM_USER_DETECTION = 1, SYSTEM_REMOTE_ACCESS = 2, + SYSTEM_ENTER_GARAGE_MODE = 3, } diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl index e325b380b7..8c8c2daefb 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl @@ -34,7 +34,24 @@ enum VehicleApPowerBootupReason { SYSTEM_USER_DETECTION = 1, /** * Automatic power on to execute a remote task. This is triggered by - * receiving a wakeup message from TCU wakeup client. + * receiving a wakeup message from an external system in the vehicle. */ SYSTEM_REMOTE_ACCESS = 2, + /** + * Automatic power on to enter garage mode. This is triggered by + * receiving a wakeup message from an external system in the vehicle. + * + * Note that this does not necessarily mean Android will enter + * the garage mode since user may enter the vehicle after this is set. + * The system will only enter garage mode if VEHICLE_IN_USE is not true + * upon check. + * + * To consider the Time-Of-Check-Time-Of-Use issue, there is a slight chance + * that the vehicle become in-use after car service does the VEHICLE_IN_USE + * check. The external power controller must also check whether the vehicle + * is in use upon receiving the SHUTDOWN_REQUEST, before sending out + * SHUTDOWN_PREPARE, to make sure the system does not enter garage mode or + * shutdown if the vehicle is currently in use. + */ + SYSTEM_ENTER_GARAGE_MODE = 3, } diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index ecabe8c3b6..3d63a0629e 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -4545,12 +4545,22 @@ enum VehicleProperty { /** * Request the head unit to be shutdown. * + *

This is required for executing a task when the head unit is powered off (remote task + * feature). After the head unit is powered-on to execute the task, the head unit should + * be shutdown. The head unit will send this message once the task is finished. + * + *

This is not for the case when a user wants to shutdown the head unit. + * *

This usually involves telling a separate system outside the head unit (e.g. a power * controller) to prepare shutting down the head unit. * - *

This does not mean the head unit will shutdown immediately. + *

Note that the external system must validate whether this request is valid by checking + * whether the vehicle is currently in use. If a user enters the vehicle after a + * SHUTDOWN_REQUEST is sent, then the system must ignore this request. It + * is recommended to store a VehicleInUse property in the power controller and exposes it + * through VEHICLE_IN_USE property. A shutdown request must be ignored if VehicleInUse is true. * - *

This means that another system will start sending a shutdown signal to the head unit, + *

If allowed, the external system will start sending a shutdown signal to the head unit, * which will cause VHAL to send SHUTDOWN_PREPARE message to Android. Android will then start * the shut down process by handling the message. * -- GitLab From 8459a068388d9804cc1beee2dd005556d021d257 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 13 Dec 2023 17:49:37 -0800 Subject: [PATCH 034/418] Add TaskType to ScheduleInfo. Add a task type field to schedule serverless remote task. We want to introduce an ENTER_GARAGE_MODE type where the external system can set the AP_POWER_BOOT_UP_REASON and makes android enter garage mode. Test: atest RemoteAccessServiceUnitTest Bug: 316233421 Change-Id: Iddbd2a14aa6f4672a2e27f0a05ec2b73b7d1aab2 --- .../remoteaccess/IRemoteAccess.aidl | 1 + .../automotive/remoteaccess/ScheduleInfo.aidl | 1 + .../automotive/remoteaccess/TaskType.aidl | 39 ++++++++++++++++ .../remoteaccess/IRemoteAccess.aidl | 46 +++++++++++++++++-- .../remoteaccess/IRemoteTaskCallback.aidl | 2 +- .../automotive/remoteaccess/ScheduleInfo.aidl | 8 ++++ .../automotive/remoteaccess/TaskType.aidl | 41 +++++++++++++++++ .../hal/default/include/RemoteAccessService.h | 3 ++ .../hal/default/src/RemoteAccessService.cpp | 8 ++++ .../test/RemoteAccessServiceUnitTest.cpp | 10 ++++ 10 files changed, 155 insertions(+), 4 deletions(-) create mode 100644 automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/TaskType.aidl create mode 100644 automotive/remoteaccess/android/hardware/automotive/remoteaccess/TaskType.aidl diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl index ccfa22de4e..e6f480856b 100644 --- a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl @@ -41,6 +41,7 @@ interface IRemoteAccess { void clearRemoteTaskCallback(); void notifyApStateChange(in android.hardware.automotive.remoteaccess.ApState state); boolean isTaskScheduleSupported(); + android.hardware.automotive.remoteaccess.TaskType[] getSupportedTaskTypesForScheduling(); void scheduleTask(in android.hardware.automotive.remoteaccess.ScheduleInfo scheduleInfo); void unscheduleTask(String clientId, String scheduleId); void unscheduleAllTasks(String clientId); diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl index a929e10827..a5d81cf9fc 100644 --- a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl @@ -36,6 +36,7 @@ package android.hardware.automotive.remoteaccess; parcelable ScheduleInfo { String clientId; String scheduleId; + android.hardware.automotive.remoteaccess.TaskType taskType; byte[] taskData; int count; long startTimeInEpochSeconds; diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/TaskType.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/TaskType.aidl new file mode 100644 index 0000000000..da706269f0 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/TaskType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@Backing(type="int") @VintfStability +enum TaskType { + CUSTOM = 0, + ENTER_GARAGE_MODE = 1, +} diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl index 4912651294..9863ed728d 100644 --- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl @@ -19,12 +19,39 @@ package android.hardware.automotive.remoteaccess; import android.hardware.automotive.remoteaccess.ApState; import android.hardware.automotive.remoteaccess.IRemoteTaskCallback; import android.hardware.automotive.remoteaccess.ScheduleInfo; +import android.hardware.automotive.remoteaccess.TaskType; /** - * Interface representing a remote wakeup client. + * The remote access HAL. * - * A wakeup client is a binary outside Android framework that communicates with - * a wakeup server and receives wake up command. + *

This HAL represents an external system that is always on even when Android + * is powered off. It is capable of wakeing up and notifying Android when a + * remote task arrives. + * + *

For cloud-based remote access, a cloud server will issue the remote task + * to the external system, which will then be forwarded to Android. The client + * is expected to call {@code setRemoteTaskCallback} to register the remote + * task callback and uses the information returned from {@code getVehicleId}, + * {@code getWakeupServiceName} and {@code getProcessorId} to register with + * a remote server. + * + *

For serverless remote access, the remote task comes from the external + * system alone and no server is involved. The external system may support + * scheduling a remote task to executed later through {@code scheduleTask}. + * + *

For both cloud-based and serverless remote access, the ideal use case + * is to wake up Android when the vehicle is not in use and then shutdown + * Android after the task is complete. However, user may access the vehicle + * during this period, and Android must not be shutdown if this happens. + * + *

If this interface is implemented, then VHAL property + * {@code VEHICLE_IN_USE} must be supported to represent whether the vehicle is + * currently in use. Android will check this before sending the shutdown + * request. + * + *

The external power controller system must also check whether vehicle is + * in use upon receiving the shutdown request and makes sure that an + * user-unexpected shutdown must not happen. */ @VintfStability interface IRemoteAccess { @@ -109,6 +136,17 @@ interface IRemoteAccess { */ boolean isTaskScheduleSupported(); + /** + * Returns the supported task types for scheduling. + * + *

If task scheduling is not supported, this returns an empty array. + * + *

Otherwise, at least {@code TaskType.CUSTOM} must be supported. + * + * @return An array of supported task types. + */ + TaskType[] getSupportedTaskTypesForScheduling(); + /** * Schedules a task to be executed later even when the vehicle is off. * @@ -127,6 +165,8 @@ interface IRemoteAccess { * *

Must return {@code EX_ILLEGAL_ARGUMENT} if a pending schedule with the same * {@code scheduleId} for this client exists. + * + *

Must return {@code EX_ILLEGAL_ARGUMENT} if the task type is not supported. */ void scheduleTask(in ScheduleInfo scheduleInfo); diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl index 2cd7a5db6b..ee6f900525 100644 --- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl @@ -22,7 +22,7 @@ package android.hardware.automotive.remoteaccess; @VintfStability interface IRemoteTaskCallback { /** - * A callback that is called when a remote task is requested. + * A callback that is called when a custom type remote task is requested. * * The data is passed down from the remote server to the remote task client * which is an Android application, and is not interpreted/parsed by the diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl index cf1437bf1b..40fba6f2a3 100644 --- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl @@ -16,6 +16,8 @@ package android.hardware.automotive.remoteaccess; +import android.hardware.automotive.remoteaccess.TaskType; + @VintfStability @JavaDerive(equals=true, toString=true) parcelable ScheduleInfo { @@ -30,9 +32,15 @@ parcelable ScheduleInfo { * scheduleId will return {@code EX_ILLEGAL_ARGUMENT}. */ String scheduleId; + /** + * The type for the task. + */ + TaskType taskType; /** * The opaque task data that will be sent back to the remote task client app when the task is * executed. It is not interpreted/parsed by the Android system. + * + *

This is only used for {@code TaskType.CUSTOM}. */ byte[] taskData; /** diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/TaskType.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/TaskType.aidl new file mode 100644 index 0000000000..761eb1515b --- /dev/null +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/TaskType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.automotive.remoteaccess; + +@VintfStability +@Backing(type="int") +enum TaskType { + /** + * A custom task that is opaque to anyone other than the remote task client app. + * + *

The opaque task data in the {@code ScheduleInfo} will be sent back to the app when the + * task is to be executed. + */ + CUSTOM = 0, + /** + * Enters the garage mode if allowed. + * + *

Make the Android system enters garage mode if vehicle is currently not in use and + * entering garage mode is allowed (e.g. battery level is high enough). + * + *

This is based on best-effort and it is not guaranteed. + * + *

If allowed, the external system should set {@code AP_POWER_BOOTUP_REASON} to + * {@code SYSTEM_ENTER_GARAGE_MODE} and then boot up (or resume) the head unit. + */ + ENTER_GARAGE_MODE = 1, +} diff --git a/automotive/remoteaccess/hal/default/include/RemoteAccessService.h b/automotive/remoteaccess/hal/default/include/RemoteAccessService.h index 1fc4037ae2..23b4ebe505 100644 --- a/automotive/remoteaccess/hal/default/include/RemoteAccessService.h +++ b/automotive/remoteaccess/hal/default/include/RemoteAccessService.h @@ -81,6 +81,9 @@ class RemoteAccessService ndk::ScopedAStatus isTaskScheduleSupported(bool* out) override; + ndk::ScopedAStatus getSupportedTaskTypesForScheduling( + std::vector* out) override; + ndk::ScopedAStatus scheduleTask( const aidl::android::hardware::automotive::remoteaccess::ScheduleInfo& scheduleInfo) override; diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp index 0944d8699d..55211345b9 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp @@ -40,6 +40,7 @@ namespace { using ::aidl::android::hardware::automotive::remoteaccess::ApState; using ::aidl::android::hardware::automotive::remoteaccess::IRemoteTaskCallback; using ::aidl::android::hardware::automotive::remoteaccess::ScheduleInfo; +using ::aidl::android::hardware::automotive::remoteaccess::TaskType; using ::aidl::android::hardware::automotive::vehicle::VehicleProperty; using ::android::base::Error; using ::android::base::ParseInt; @@ -319,6 +320,13 @@ ScopedAStatus RemoteAccessService::isTaskScheduleSupported(bool* out) { return ScopedAStatus::ok(); } +ndk::ScopedAStatus RemoteAccessService::getSupportedTaskTypesForScheduling( + std::vector* out) { + // TODO(b/316233421): support ENTER_GARAGE_MODE type. + out->push_back(TaskType::CUSTOM); + return ScopedAStatus::ok(); +} + ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo) { ClientContext context; ScheduleTaskRequest request = {}; diff --git a/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp b/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp index c0038c270b..4af0003920 100644 --- a/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp +++ b/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp @@ -48,6 +48,7 @@ using ::android::frameworks::automotive::vhal::VhalClientResult; using ::aidl::android::hardware::automotive::remoteaccess::ApState; using ::aidl::android::hardware::automotive::remoteaccess::BnRemoteTaskCallback; using ::aidl::android::hardware::automotive::remoteaccess::ScheduleInfo; +using ::aidl::android::hardware::automotive::remoteaccess::TaskType; using ::aidl::android::hardware::automotive::vehicle::VehiclePropValue; using ::grpc::ClientAsyncReaderInterface; @@ -61,6 +62,7 @@ using ::grpc::testing::MockClientReader; using ::ndk::ScopedAStatus; using ::testing::_; using ::testing::DoAll; +using ::testing::ElementsAre; using ::testing::Return; using ::testing::SetArgPointee; @@ -434,6 +436,14 @@ TEST_F(RemoteAccessServiceUnitTest, TestIsTaskScheduleSupported) { EXPECT_TRUE(out); } +TEST_F(RemoteAccessServiceUnitTest, TestGetSupportedTaskTypesForScheduling) { + std::vector out; + ScopedAStatus status = getService()->getSupportedTaskTypesForScheduling(&out); + + EXPECT_TRUE(status.isOk()); + EXPECT_THAT(out, ElementsAre(TaskType::CUSTOM)); +} + TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask) { ScheduleTaskRequest grpcRequest = {}; EXPECT_CALL(*getGrpcWakeupClientStub(), ScheduleTask) -- GitLab From b58cee4af7fe8a3c9998ce44e84a69189f51c3df Mon Sep 17 00:00:00 2001 From: Limon Mia Date: Fri, 1 Dec 2023 12:16:00 +0000 Subject: [PATCH 035/418] BTAudio HAL: Added feature flag for DSA Over LEA Test: atest VtsHalBluetoothAudioTargetTest Bug: 270987427 Change-Id: Ifef0b97d20c7c12001b7d04cc7f8ce9da5fb1920 --- bluetooth/audio/flags/Android.bp | 12 ++++ bluetooth/audio/flags/btaudiohal.aconfig | 8 +++ bluetooth/audio/utils/Android.bp | 4 ++ .../aidl_session/BluetoothAudioSession.cpp | 67 +++++++++++++------ 4 files changed, 70 insertions(+), 21 deletions(-) create mode 100644 bluetooth/audio/flags/Android.bp create mode 100644 bluetooth/audio/flags/btaudiohal.aconfig diff --git a/bluetooth/audio/flags/Android.bp b/bluetooth/audio/flags/Android.bp new file mode 100644 index 0000000000..0d18a4d546 --- /dev/null +++ b/bluetooth/audio/flags/Android.bp @@ -0,0 +1,12 @@ +aconfig_declarations { + name: "btaudiohal_flags", + package: "com.android.btaudio.hal.flags", + srcs: ["btaudiohal.aconfig"], +} + +cc_aconfig_library { + name: "btaudiohal_flags_c_lib", + aconfig_declarations: "btaudiohal_flags", + vendor: true, + host_supported: true, +} diff --git a/bluetooth/audio/flags/btaudiohal.aconfig b/bluetooth/audio/flags/btaudiohal.aconfig new file mode 100644 index 0000000000..763777ea6a --- /dev/null +++ b/bluetooth/audio/flags/btaudiohal.aconfig @@ -0,0 +1,8 @@ +package: "com.android.btaudio.hal.flags" + +flag { + name: "dsa_lea" + namespace: "pixel_bluetooth" + description: "Flag for DSA Over LEA" + bug: "270987427" +} diff --git a/bluetooth/audio/utils/Android.bp b/bluetooth/audio/utils/Android.bp index f5f8163a92..c0817f54e1 100644 --- a/bluetooth/audio/utils/Android.bp +++ b/bluetooth/audio/utils/Android.bp @@ -63,6 +63,10 @@ cc_library_shared { "libhidlbase", "libxml2", "libflatbuffers-cpp", + "server_configurable_flags", + ], + static_libs: [ + "btaudiohal_flags_c_lib", ], generated_sources: ["le_audio_codec_capabilities"], generated_headers: [ diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp index 3519ace1f9..c05750538d 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include "BluetoothAudioSession.h" @@ -36,6 +37,14 @@ static constexpr int kFmqReceiveTimeoutMs = static constexpr int kWritePollMs = 1; // polled non-blocking interval static constexpr int kReadPollMs = 1; // polled non-blocking interval +static std::string toString(const std::vector& latencies) { + std::stringstream latencyModesStr; + for (LatencyMode mode : latencies) { + latencyModesStr << " " << toString(mode); + } + return latencyModesStr.str(); +} + BluetoothAudioSession::BluetoothAudioSession(const SessionType& session_type) : session_type_(session_type), stack_iface_(nullptr), data_mq_(nullptr) {} @@ -65,6 +74,7 @@ void BluetoothAudioSession::OnSessionStarted( stack_iface_ = stack_iface; latency_modes_ = latency_modes; LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_) + << " - All LatencyModes=" << toString(latency_modes) << ", AudioConfiguration=" << audio_config.toString(); ReportSessionStatus(); } @@ -604,31 +614,46 @@ std::vector BluetoothAudioSession::GetSupportedLatencyModes() { return std::vector(); } - std::vector supported_latency_modes; - if (session_type_ == - SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH) { - for (LatencyMode mode : latency_modes_) { - if (mode == LatencyMode::LOW_LATENCY) { - // LOW_LATENCY is not supported for LE_HARDWARE_OFFLOAD_ENC sessions - continue; - } - supported_latency_modes.push_back(mode); - } - } else { - for (LatencyMode mode : latency_modes_) { - if (!low_latency_allowed_ && mode == LatencyMode::LOW_LATENCY) { - // ignore LOW_LATENCY mode if Bluetooth stack doesn't allow - continue; + if (com::android::btaudio::hal::flags::dsa_lea()) { + std::vector supported_latency_modes; + if (session_type_ == + SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH) { + for (LatencyMode mode : latency_modes_) { + if (mode == LatencyMode::LOW_LATENCY) { + // LOW_LATENCY is not supported for LE_HARDWARE_OFFLOAD_ENC sessions + continue; + } + supported_latency_modes.push_back(mode); } - if (mode == LatencyMode::DYNAMIC_SPATIAL_AUDIO_SOFTWARE || - mode == LatencyMode::DYNAMIC_SPATIAL_AUDIO_HARDWARE) { - // DSA_SW and DSA_HW only supported for LE_HARDWARE_OFFLOAD_ENC sessions - continue; + } else { + for (LatencyMode mode : latency_modes_) { + if (!low_latency_allowed_ && mode == LatencyMode::LOW_LATENCY) { + // ignore LOW_LATENCY mode if Bluetooth stack doesn't allow + continue; + } + if (mode == LatencyMode::DYNAMIC_SPATIAL_AUDIO_SOFTWARE || + mode == LatencyMode::DYNAMIC_SPATIAL_AUDIO_HARDWARE) { + // DSA_SW and DSA_HW only supported for LE_HARDWARE_OFFLOAD_ENC + // sessions + continue; + } + supported_latency_modes.push_back(mode); } - supported_latency_modes.push_back(mode); } + LOG(DEBUG) << __func__ << " - Supported LatencyMode=" + << toString(supported_latency_modes); + return supported_latency_modes; + } + + if (low_latency_allowed_) return latency_modes_; + std::vector modes; + for (LatencyMode mode : latency_modes_) { + if (mode == LatencyMode::LOW_LATENCY) + // ignore those low latency mode if Bluetooth stack doesn't allow + continue; + modes.push_back(mode); } - return supported_latency_modes; + return modes; } void BluetoothAudioSession::SetLatencyMode(const LatencyMode& latency_mode) { -- GitLab From e6fcf244014c04c9a585d537ef2bbbb29945b4a9 Mon Sep 17 00:00:00 2001 From: Sukhwan Mun Date: Fri, 15 Dec 2023 09:14:52 +0000 Subject: [PATCH 036/418] rename TRIGGER_CLEAR_RAT_BLOCK to _BLOCKS Rename TRIGGER_CLEAR_RAT_BLOCK to TRIGGER_CLEAR_RAT_BLOCKS and update comments for TRIGGER_RAT_BLOCK Bug: 315094087 Test: FrameworksTelephonyTests:ImsPhoneCallTrackerTest#testUpdateImsRegistrationInfo Change-Id: I5c3f60c80caae0f66c40c18c0dd80e1e01b3ec42 --- .../android/hardware/radio/ims/SuggestedAction.aidl | 2 +- .../aidl/android/hardware/radio/ims/SuggestedAction.aidl | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl index 6dbf09ddc9..98460061ac 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl @@ -39,5 +39,5 @@ enum SuggestedAction { TRIGGER_PLMN_BLOCK, TRIGGER_PLMN_BLOCK_WITH_TIMEOUT, TRIGGER_RAT_BLOCK, - TRIGGER_CLEAR_RAT_BLOCK, + TRIGGER_CLEAR_RAT_BLOCKS, } diff --git a/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl b/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl index f0e28fc8e0..73c57fada3 100644 --- a/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl +++ b/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl @@ -37,9 +37,10 @@ enum SuggestedAction { TRIGGER_PLMN_BLOCK_WITH_TIMEOUT, /** * Indicates that the IMS registration on current RAT failed multiple times. - * The radio shall block the current RAT and search for other available RATs in the - * background. If no other RAT is available that meets the carrier requirements, the - * radio may remain on the current RAT for internet service. The radio clears all + * The radio shall block the {@link AccessNetwork} included with this and + * search for other available RATs in the background. + * If no other RAT is available that meets the carrier requirements, the + * radio may remain on the blocked RAT for internet service. The radio clears all * RATs marked as unavailable if {@link IRadioIms#updateImsRegistrationInfo()} API * with REGISTERED state is invoked. */ @@ -48,5 +49,5 @@ enum SuggestedAction { * Indicates that the radio clears all RATs marked as unavailable and tries to find * an available RAT that meets the carrier requirements. */ - TRIGGER_CLEAR_RAT_BLOCK, + TRIGGER_CLEAR_RAT_BLOCKS, } -- GitLab From d635e372fd6ca802cd0f8f637ace71760cc3e9aa Mon Sep 17 00:00:00 2001 From: Maxim Pleshivenkov Date: Fri, 15 Dec 2023 15:47:36 +0000 Subject: [PATCH 037/418] Update comments Updated comments for VehicleApPowerStateShutdownParam values. Bug: 316026370 Change-Id: I8e7b9c0c11755c885588b96b54490f0b70b4f9e0 Test: manual build Change-Id: I8e7b9c0c11755c885588b96b54490f0b70b4f9e0 --- .../VehicleApPowerStateShutdownParam.aidl | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl index 923d42aef1..966ff65d88 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl @@ -20,33 +20,41 @@ package android.hardware.automotive.vehicle; @Backing(type="int") enum VehicleApPowerStateShutdownParam { /** - * AP must shutdown immediately. Postponing is not allowed. + * AP must shutdown without Garage mode. Postponing is not allowed. + * If AP need to shutdown as soon as possible, EMERGENCY_SHUTDOWN shall be used. */ SHUTDOWN_IMMEDIATELY = 1, /** * AP can enter deep sleep instead of shutting down completely. + * AP can postpone entering deep sleep to run Garage mode. */ CAN_SLEEP = 2, /** - * AP can only shutdown with postponing allowed. + * AP can only shutdown. + * AP can postpone shutdown to run Garage mode. */ SHUTDOWN_ONLY = 3, /** - * AP may enter deep sleep, but must either sleep or shut down immediately. + * AP can enter deep sleep, without Garage mode. * Postponing is not allowed. + * Depending on the actual implementation, it may shut down immediately */ SLEEP_IMMEDIATELY = 4, /** - * AP must hibernate (suspend to disk) immediately. Postponing is not allowed. - * Depending on the actual implementation, it may shut down immediately + * AP can hibernate (suspend to disk) without Garage mode. + * Postponing is not allowed. + * Depending on the actual implementation, it may shut down immediately. */ HIBERNATE_IMMEDIATELY = 5, /** * AP can enter hibernation (suspend to disk) instead of shutting down completely. + * AP can postpone hibernation to run Garage mode. */ CAN_HIBERNATE = 6, /** - * AP must shutdown (gracefully) without a delay. + * AP must shutdown (gracefully) without a delay. AP cannot run Garage mode. + * This type must be used only in critical situations when AP must shutdown as soon as possible. + * CarService will only notify listeners, but will not wait for completion reports. */ EMERGENCY_SHUTDOWN = 7, } -- GitLab From 37cc14d02560863b4584bff72299d9157b266a7b Mon Sep 17 00:00:00 2001 From: Grant Menke Date: Wed, 29 Nov 2023 19:28:28 -0800 Subject: [PATCH 038/418] Added Telephony DSDA Support to the HAL. This CL updates the relevant aidl files to allow the modem to dynamically inform telephony of whether simultaneos cellular calling is supported. Bug: 311495663 Test: VTS Change-Id: Ie1e10a50227e8a53fc62a5822a0a115b101ef388 --- .../hardware/radio/config/IRadioConfig.aidl | 1 + .../radio/config/IRadioConfigIndication.aidl | 1 + .../radio/config/IRadioConfigResponse.aidl | 1 + .../radio/config/PhoneCapability.aidl | 2 ++ .../hardware/radio/config/IRadioConfig.aidl | 16 +++++++++ .../radio/config/IRadioConfigIndication.aidl | 11 ++++++ .../radio/config/IRadioConfigResponse.aidl | 23 ++++++++++++ .../radio/config/PhoneCapability.aidl | 7 ++++ .../libradiocompat/config/RadioConfig.cpp | 7 ++++ .../include/libradiocompat/RadioConfig.h | 1 + radio/aidl/vts/radio_config_indication.cpp | 5 +++ radio/aidl/vts/radio_config_response.cpp | 7 ++++ radio/aidl/vts/radio_config_test.cpp | 35 +++++++++++++++++++ radio/aidl/vts/radio_config_utils.h | 6 ++++ 14 files changed, 123 insertions(+) diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfig.aidl index 0f5e7e4f77..bc1c29236f 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfig.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfig.aidl @@ -51,4 +51,5 @@ interface IRadioConfig { oneway void setPreferredDataModem(in int serial, in byte modemId); oneway void setResponseFunctions(in android.hardware.radio.config.IRadioConfigResponse radioConfigResponse, in android.hardware.radio.config.IRadioConfigIndication radioConfigIndication); oneway void setSimSlotsMapping(in int serial, in android.hardware.radio.config.SlotPortMapping[] slotMap); + oneway void getSimultaneousCallingSupport(in int serial); } diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigIndication.aidl index 9189f9062f..f786373785 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigIndication.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigIndication.aidl @@ -36,4 +36,5 @@ package android.hardware.radio.config; @VintfStability interface IRadioConfigIndication { oneway void simSlotsStatusChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.config.SimSlotStatus[] slotStatus); + oneway void onSimultaneousCallingSupportChanged(in int[] enabledLogicalSlots); } diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigResponse.aidl index 348aa348bf..6ff7bd0b1b 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigResponse.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigResponse.aidl @@ -42,4 +42,5 @@ interface IRadioConfigResponse { oneway void setNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info); oneway void setPreferredDataModemResponse(in android.hardware.radio.RadioResponseInfo info); oneway void setSimSlotsMappingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getSimultaneousCallingSupportResponse(in android.hardware.radio.RadioResponseInfo info, in int[] enabledLogicalSlots); } diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/PhoneCapability.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/PhoneCapability.aidl index 3648866a13..2c66abda59 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/PhoneCapability.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/PhoneCapability.aidl @@ -39,4 +39,6 @@ parcelable PhoneCapability { byte maxActiveInternetData; boolean isInternetLingeringSupported; byte[] logicalModemIds; + byte maxActiveVoice = UNKNOWN /* -1 */; + const byte UNKNOWN = (-1) /* -1 */; } diff --git a/radio/aidl/android/hardware/radio/config/IRadioConfig.aidl b/radio/aidl/android/hardware/radio/config/IRadioConfig.aidl index 9058d9d050..8f4dff4bf6 100644 --- a/radio/aidl/android/hardware/radio/config/IRadioConfig.aidl +++ b/radio/aidl/android/hardware/radio/config/IRadioConfig.aidl @@ -191,4 +191,20 @@ oneway interface IRadioConfig { * This is available when android.hardware.telephony.subscription is defined. */ void setSimSlotsMapping(in int serial, in SlotPortMapping[] slotMap); + + /** + * Get the set of logical slots where simultaneous cellular calling is currently possible. This + * does not include simultaneous calling availability over other non-cellular transports, such + * as IWLAN. + * + * Get the set of slots that currently support simultaneous cellular calling. When a new + * cellular call is placed/received, if another slot is active and handing a call, both the + * active slot and proposed slot must be in this list in order to support simultaneous cellular + * calling for both of those slots. + * + * @param serial Serial number of request + * + * This is available when android.hardware.telephony is defined. + */ + void getSimultaneousCallingSupport(in int serial); } diff --git a/radio/aidl/android/hardware/radio/config/IRadioConfigIndication.aidl b/radio/aidl/android/hardware/radio/config/IRadioConfigIndication.aidl index ed2366bbad..9eacb8e653 100644 --- a/radio/aidl/android/hardware/radio/config/IRadioConfigIndication.aidl +++ b/radio/aidl/android/hardware/radio/config/IRadioConfigIndication.aidl @@ -37,4 +37,15 @@ oneway interface IRadioConfigIndication { */ void simSlotsStatusChanged( in android.hardware.radio.RadioIndicationType type, in SimSlotStatus[] slotStatus); + + /** + * The logical slots supporting simultaneous cellular calling has changed. + * + * @param enabledLogicalSlots The slots that have simultaneous cellular calling enabled. If + * there is a call active on logical slot X, then a simultaneous cellular call is only possible + * on logical slot Y if BOTH slot X and slot Y are in enabledLogicalSlots. If simultaneous + * cellular calling is not currently supported, the expected value of enabledLogicalSLots is an + * empty int array. Sending only one radio slot is not acceptable in any case. + */ + void onSimultaneousCallingSupportChanged(in int[] enabledLogicalSlots); } diff --git a/radio/aidl/android/hardware/radio/config/IRadioConfigResponse.aidl b/radio/aidl/android/hardware/radio/config/IRadioConfigResponse.aidl index df93e3c336..33b0ff0688 100644 --- a/radio/aidl/android/hardware/radio/config/IRadioConfigResponse.aidl +++ b/radio/aidl/android/hardware/radio/config/IRadioConfigResponse.aidl @@ -129,4 +129,27 @@ oneway interface IRadioConfigResponse { * RadioError:INVALID_ARGUMENTS */ void setSimSlotsMappingResponse(in android.hardware.radio.RadioResponseInfo info); + + /** + * Response to the asynchronous + * {@link IRadioConfig#getSimultaneousCallingSupport} request. + * + * @param info Response info struct containing response type, serial no. and error + * @param enabledLogicalSlots The slots that have simultaneous cellular calling enabled. If + * there is a call active on logical slot X, then a simultaneous cellular call is only possible + * on logical slot Y if BOTH slot X and slot Y are in enabledLogicalSlots. If simultaneous + * cellular calling is not currently supported, the expected value of enabledLogicalSLots is an + * empty int array. Sending only one radio slot is not acceptable in any case. + * + * Valid errors returned: + * RadioError:REQUEST_NOT_SUPPORTED when android.hardware.telephony is not defined + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + * + * @see IRadioConfig#getSimultaneousCallingSupport for more information. + */ + void getSimultaneousCallingSupportResponse( + in android.hardware.radio.RadioResponseInfo info, in int[] enabledLogicalSlots); } diff --git a/radio/aidl/android/hardware/radio/config/PhoneCapability.aidl b/radio/aidl/android/hardware/radio/config/PhoneCapability.aidl index 35d6b5d86d..7936eb6cd7 100644 --- a/radio/aidl/android/hardware/radio/config/PhoneCapability.aidl +++ b/radio/aidl/android/hardware/radio/config/PhoneCapability.aidl @@ -25,6 +25,7 @@ package android.hardware.radio.config; @VintfStability @JavaDerive(toString=true) parcelable PhoneCapability { + const byte UNKNOWN = -1; /** * maxActiveData defines how many logical modems can have * PS attached simultaneously. For example, for L+L modem it @@ -47,4 +48,10 @@ parcelable PhoneCapability { * List of logical modem IDs. */ byte[] logicalModemIds; + /** + * maxActiveVoice defines how many logical modems can have + * cellular voice calls simultaneously. For example, for cellular DSDA + * with simultaneous calling support, it should be 2. + */ + byte maxActiveVoice = UNKNOWN; } diff --git a/radio/aidl/compat/libradiocompat/config/RadioConfig.cpp b/radio/aidl/compat/libradiocompat/config/RadioConfig.cpp index b45041811d..837c62656a 100644 --- a/radio/aidl/compat/libradiocompat/config/RadioConfig.cpp +++ b/radio/aidl/compat/libradiocompat/config/RadioConfig.cpp @@ -62,6 +62,13 @@ ScopedAStatus RadioConfig::getPhoneCapability(int32_t serial) { return ok(); } +ScopedAStatus RadioConfig::getSimultaneousCallingSupport(int32_t serial) { + LOG_CALL << serial; + LOG(ERROR) << " getSimultaneousCallingSupport is unsupported by HIDL HALs"; + respond()->getSimultaneousCallingSupportResponse(notSupported(serial), {}); + return ok(); +} + ScopedAStatus RadioConfig::getSimSlotsStatus(int32_t serial) { LOG_CALL << serial; mHal1_1->getSimSlotsStatus(serial); diff --git a/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioConfig.h b/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioConfig.h index 89ddea0d49..17d59858a4 100644 --- a/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioConfig.h +++ b/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioConfig.h @@ -42,6 +42,7 @@ class RadioConfig : public aidl::android::hardware::radio::config::BnRadioConfig ::ndk::ScopedAStatus getHalDeviceCapabilities(int32_t serial) override; ::ndk::ScopedAStatus getNumOfLiveModems(int32_t serial) override; ::ndk::ScopedAStatus getPhoneCapability(int32_t serial) override; + ::ndk::ScopedAStatus getSimultaneousCallingSupport(int32_t serial) override; ::ndk::ScopedAStatus getSimSlotsStatus(int32_t serial) override; ::ndk::ScopedAStatus setNumOfLiveModems(int32_t serial, int8_t numOfLiveModems) override; ::ndk::ScopedAStatus setPreferredDataModem(int32_t serial, int8_t modemId) override; diff --git a/radio/aidl/vts/radio_config_indication.cpp b/radio/aidl/vts/radio_config_indication.cpp index a84c20b4b7..c7076632f2 100644 --- a/radio/aidl/vts/radio_config_indication.cpp +++ b/radio/aidl/vts/radio_config_indication.cpp @@ -22,3 +22,8 @@ ndk::ScopedAStatus RadioConfigIndication::simSlotsStatusChanged( RadioIndicationType /*type*/, const std::vector& /*slotStatus*/) { return ndk::ScopedAStatus::ok(); } + +ndk::ScopedAStatus RadioConfigIndication::onSimultaneousCallingSupportChanged( + const std::vector& /*enabledLogicalSlots*/) { + return ndk::ScopedAStatus::ok(); +} diff --git a/radio/aidl/vts/radio_config_response.cpp b/radio/aidl/vts/radio_config_response.cpp index 7384f87adc..dccbd0e9c5 100644 --- a/radio/aidl/vts/radio_config_response.cpp +++ b/radio/aidl/vts/radio_config_response.cpp @@ -40,6 +40,13 @@ ndk::ScopedAStatus RadioConfigResponse::getPhoneCapabilityResponse( return ndk::ScopedAStatus::ok(); } +ndk::ScopedAStatus RadioConfigResponse::getSimultaneousCallingSupportResponse( + const RadioResponseInfo& info, const std::vector& /* enabledLogicalSlots */) { + rspInfo = info; + parent_config.notify(info.serial); + return ndk::ScopedAStatus::ok(); +} + ndk::ScopedAStatus RadioConfigResponse::setPreferredDataModemResponse( const RadioResponseInfo& info) { rspInfo = info; diff --git a/radio/aidl/vts/radio_config_test.cpp b/radio/aidl/vts/radio_config_test.cpp index d8c0142ccd..f7251367c3 100644 --- a/radio/aidl/vts/radio_config_test.cpp +++ b/radio/aidl/vts/radio_config_test.cpp @@ -121,6 +121,41 @@ TEST_P(RadioConfigTest, getPhoneCapability) { } } +/* + * Test IRadioConfig.getSimultaneousCallingSupport() for the response returned. + */ +TEST_P(RadioConfigTest, getSimultaneousCallingSupport) { + if (telephony_flags::enforce_telephony_feature_mapping()) { + if (!deviceSupportsFeature(FEATURE_TELEPHONY)) { + GTEST_SKIP() << "Skipping getSimultaneousCallingSupport " + "due to undefined FEATURE_TELEPHONY"; + } + } + + int32_t aidl_version; + ndk::ScopedAStatus aidl_status = radio_config->getInterfaceVersion(&aidl_version); + ASSERT_OK(aidl_status); + if (aidl_version < 3) { + ALOGI("Skipped the test since" + " getSimultaneousCallingSupport is not supported on version < 3."); + GTEST_SKIP(); + } + + serial = GetRandomSerialNumber(); + ndk::ScopedAStatus res = radio_config->getSimultaneousCallingSupport(serial); + ASSERT_OK(res); + EXPECT_EQ(std::cv_status::no_timeout, wait()); + EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_config->rspInfo.type); + EXPECT_EQ(serial, radioRsp_config->rspInfo.serial); + ALOGI("getSimultaneousCallingSupport, rspInfo.error = %s\n", + toString(radioRsp_config->rspInfo.error).c_str()); + + ASSERT_TRUE(CheckAnyOfErrors( + radioRsp_config->rspInfo.error, + {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR, + RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); +} + /* * Test IRadioConfig.setPreferredDataModem() for the response returned. */ diff --git a/radio/aidl/vts/radio_config_utils.h b/radio/aidl/vts/radio_config_utils.h index f79aedbf9e..9e809ff4ef 100644 --- a/radio/aidl/vts/radio_config_utils.h +++ b/radio/aidl/vts/radio_config_utils.h @@ -48,6 +48,9 @@ class RadioConfigResponse : public BnRadioConfigResponse { virtual ndk::ScopedAStatus getPhoneCapabilityResponse( const RadioResponseInfo& info, const PhoneCapability& phoneCapability) override; + virtual ndk::ScopedAStatus getSimultaneousCallingSupportResponse( + const RadioResponseInfo& info, const std::vector& enabledLogicalSlots) override; + virtual ndk::ScopedAStatus setPreferredDataModemResponse( const RadioResponseInfo& info) override; @@ -71,6 +74,9 @@ class RadioConfigIndication : public BnRadioConfigIndication { virtual ndk::ScopedAStatus simSlotsStatusChanged( RadioIndicationType type, const std::vector& slotStatus) override; + + virtual ndk::ScopedAStatus onSimultaneousCallingSupportChanged( + const std::vector& /*enabledLogicalSlots*/) override; }; // The main test class for Radio AIDL Config. -- GitLab From e55691fdf1361a433700c617f050e88b4fdd8734 Mon Sep 17 00:00:00 2001 From: Antoine SOULIER Date: Thu, 14 Dec 2023 22:39:00 +0000 Subject: [PATCH 039/418] Improve A2DP Bits handling Test: m Bug: 316413963 Flag: EXEMPT small improvement non flaggable Change-Id: I5b6a6bbb130f9c9222373e3927d23908d1f8a351 --- bluetooth/audio/aidl/default/A2dpBits.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bluetooth/audio/aidl/default/A2dpBits.h b/bluetooth/audio/aidl/default/A2dpBits.h index f467c9588f..fb7587c707 100644 --- a/bluetooth/audio/aidl/default/A2dpBits.h +++ b/bluetooth/audio/aidl/default/A2dpBits.h @@ -23,7 +23,8 @@ class A2dpBits { uint8_t* data_; public: - A2dpBits(const std::vector& vector) : cdata_(vector.data()) {} + A2dpBits(const std::vector& vector) + : cdata_(vector.data()), data_(nullptr) {} A2dpBits(std::vector& vector) : cdata_(vector.data()), data_(vector.data()) {} -- GitLab From 54382a1f72b3779002e9fcaca9ab5d9905e3dd9a Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Fri, 15 Dec 2023 22:28:31 +0000 Subject: [PATCH 040/418] Check interface version when running the VTS test for disableEht. New AIDL methods are not available on the next configuration. Bug: 314851431 Test: atest VtsHalWifiSupplicantStaNetworkTargetTest # Test runs on the trunk configuration, but # gets skipped on the next configuration. Change-Id: I13bcfa51146e14932a8f377b1590719a683cea4f --- .../aidl/vts/functional/supplicant_sta_network_aidl_test.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp index 757414195e..e5e9735a18 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp @@ -110,6 +110,7 @@ class SupplicantStaNetworkAidlTest initializeService(); supplicant_ = getSupplicant(GetParam().c_str()); ASSERT_NE(supplicant_, nullptr); + ASSERT_TRUE(supplicant_->getInterfaceVersion(&interface_version_).isOk()); ASSERT_TRUE(supplicant_ ->setDebugParams(DebugLevel::EXCESSIVE, true, // show timestamps @@ -131,6 +132,7 @@ class SupplicantStaNetworkAidlTest std::shared_ptr supplicant_; std::shared_ptr sta_iface_; std::shared_ptr sta_network_; + int interface_version_; void removeNetwork() { ASSERT_NE(sta_iface_, nullptr); @@ -826,6 +828,9 @@ TEST_P(SupplicantStaNetworkAidlTest, SetMinimumTlsVersionEapPhase1Param) { * disableEht */ TEST_P(SupplicantStaNetworkAidlTest, DisableEht) { + if (interface_version_ < 3) { + GTEST_SKIP() << "disableEht is available as of Supplicant V3"; + } EXPECT_TRUE(sta_network_->disableEht().isOk()); } -- GitLab From bd65531e3b2f7900437af902f07d032f0e617d97 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 14 Dec 2023 17:28:35 -0800 Subject: [PATCH 041/418] Fix empty array object obtain. Test: atest VehicleHalVehicleUtilsTest Bug: 316432606 Change-Id: I6b2009cf3e96be33cc4abdfaa4c781b46a0f49f8 --- .../impl/utils/common/include/VehicleObjectPool.h | 2 +- .../aidl/impl/utils/common/include/VehicleUtils.h | 1 - .../impl/utils/common/src/VehicleObjectPool.cpp | 7 ------- .../utils/common/test/VehicleObjectPoolTest.cpp | 14 ++++++++++++++ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleObjectPool.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleObjectPool.h index 6e812d1d40..501ce40b38 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleObjectPool.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleObjectPool.h @@ -235,7 +235,7 @@ class VehiclePropValuePool { bool isDisposable(aidl::android::hardware::automotive::vehicle::VehiclePropertyType type, size_t vectorSize) const { - return vectorSize > mMaxRecyclableVectorSize || isComplexType(type); + return vectorSize == 0 || vectorSize > mMaxRecyclableVectorSize || isComplexType(type); } RecyclableType obtainDisposable( diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h index 546421e109..523cac527e 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h @@ -124,7 +124,6 @@ createVehiclePropValueVec(aidl::android::hardware::automotive::vehicle::VehicleP break; // Valid, but nothing to do. default: ALOGE("createVehiclePropValue: unknown type: %d", toInt(type)); - val.reset(nullptr); } return val; } diff --git a/automotive/vehicle/aidl/impl/utils/common/src/VehicleObjectPool.cpp b/automotive/vehicle/aidl/impl/utils/common/src/VehicleObjectPool.cpp index 2480a7362e..7e0276739e 100644 --- a/automotive/vehicle/aidl/impl/utils/common/src/VehicleObjectPool.cpp +++ b/automotive/vehicle/aidl/impl/utils/common/src/VehicleObjectPool.cpp @@ -55,13 +55,6 @@ VehiclePropValuePool::RecyclableType VehiclePropValuePool::obtain(const VehicleP int propId = src.prop; VehiclePropertyType type = getPropType(propId); size_t vectorSize = getVehicleRawValueVectorSize(src.value, type); - if (vectorSize == 0 && !isComplexType(type)) { - ALOGW("empty vehicle prop value, contains no content"); - ALOGW("empty vehicle prop value, contains no content, prop: %d", propId); - // Return any empty VehiclePropValue. - return RecyclableType{new VehiclePropValue{}, mDisposableDeleter}; - } - auto dest = obtain(type, vectorSize); dest->prop = propId; diff --git a/automotive/vehicle/aidl/impl/utils/common/test/VehicleObjectPoolTest.cpp b/automotive/vehicle/aidl/impl/utils/common/test/VehicleObjectPoolTest.cpp index a62532c911..6226e8943c 100644 --- a/automotive/vehicle/aidl/impl/utils/common/test/VehicleObjectPoolTest.cpp +++ b/automotive/vehicle/aidl/impl/utils/common/test/VehicleObjectPoolTest.cpp @@ -267,6 +267,20 @@ TEST_F(VehicleObjectPoolTest, testObtainCopyInt32Values) { ASSERT_EQ(*gotValue, prop); } +TEST_F(VehicleObjectPoolTest, testObtainCopyInt32ValuesEmptyArray) { + VehiclePropValue prop{ + // INT32_VEC property. + .prop = toInt(VehicleProperty::INFO_FUEL_TYPE), + .areaId = 2, + .timestamp = 3, + .value = {.int32Values = {}}, + }; + auto gotValue = mValuePool->obtain(prop); + + ASSERT_NE(gotValue, nullptr); + ASSERT_EQ(*gotValue, prop); +} + TEST_F(VehicleObjectPoolTest, testObtainCopyInt64Values) { VehiclePropValue prop{ // INT64_VEC property. -- GitLab From 10d37ef3aa10bf5f4ada345b9d9127d7f1ba59b9 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Fri, 15 Dec 2023 12:45:27 -0800 Subject: [PATCH 042/418] Add version annotation. Add aidl_property interface version annotation. This prepares us for adding VTS test to make sure newly introduced properties are not supported in older versions. Test: None Bug: 316614617 Change-Id: Id16ebc4888160e9a48999bc91e02884805a5189b --- .../automotive/vehicle/VehicleProperty.aidl | 265 ++++++++++++++++++ 1 file changed, 265 insertions(+) diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index fb8f730398..026c040139 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -52,6 +52,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_VIN = 0x0100 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -60,6 +61,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_MAKE = 0x0101 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -68,6 +70,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_MODEL = 0x0102 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -77,6 +80,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @unit VehicleUnit:YEAR + * @version 2 */ INFO_MODEL_YEAR = 0x0103 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -86,6 +90,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @unit VehicleUnit:MILLILITER + * @version 2 */ INFO_FUEL_CAPACITY = 0x0104 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -105,6 +110,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum FuelType + * @version 2 */ INFO_FUEL_TYPE = 0x0105 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -119,6 +125,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @unit VehicleUnit:WH + * @version 2 */ INFO_EV_BATTERY_CAPACITY = 0x0106 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -128,6 +135,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @data_enum EvConnectorType * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_EV_CONNECTOR_TYPE = 0x0107 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -137,6 +145,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @data_enum PortLocationType * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_FUEL_DOOR_LOCATION = 0x0108 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -146,6 +155,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum PortLocationType + * @version 2 */ INFO_EV_PORT_LOCATION = 0x0109 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -156,6 +166,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @data_enum VehicleAreaSeat * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_DRIVER_SEAT = 0x010A + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -174,6 +185,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @unit VehicleUnit:MILLIMETER + * @version 2 */ INFO_EXTERIOR_DIMENSIONS = 0x010B + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -189,6 +201,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum PortLocationType + * @version 2 */ INFO_MULTI_EV_PORT_LOCATIONS = 0x010C + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -198,6 +211,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:KILOMETER + * @version 2 */ PERF_ODOMETER = 0x0204 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -213,6 +227,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:METER_PER_SEC + * @version 2 */ PERF_VEHICLE_SPEED = 0x0207 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -225,6 +240,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:METER_PER_SEC + * @version 2 */ PERF_VEHICLE_SPEED_DISPLAY = 0x0208 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -236,6 +252,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:DEGREES + * @version 2 */ PERF_STEERING_ANGLE = 0x0209 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -247,6 +264,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:DEGREES + * @version 2 */ PERF_REAR_STEERING_ANGLE = 0x0210 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -256,6 +274,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:CELSIUS + * @version 2 */ ENGINE_COOLANT_TEMP = 0x0301 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -265,6 +284,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleOilLevel + * @version 2 */ ENGINE_OIL_LEVEL = 0x0303 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -274,6 +294,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:CELSIUS + * @version 2 */ ENGINE_OIL_TEMP = 0x0304 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -283,6 +304,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:RPM + * @version 2 */ ENGINE_RPM = 0x0305 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -323,6 +345,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ + * @version 2 */ WHEEL_TICK = 0x0306 + 0x10000000 + 0x01000000 + 0x00510000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT64_VEC @@ -334,6 +357,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:MILLILITER + * @version 2 */ FUEL_LEVEL = 0x0307 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -346,6 +370,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ FUEL_DOOR_OPEN = 0x0308 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -359,6 +384,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:WH + * @version 2 */ EV_BATTERY_LEVEL = 0x0309 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -373,6 +399,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:WH + * @version 2 */ EV_CURRENT_BATTERY_CAPACITY = 0x030D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.FLOAT, @@ -385,6 +412,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_CHARGE_PORT_OPEN = 0x030A + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -393,6 +421,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_CHARGE_PORT_CONNECTED = 0x030B + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -405,6 +434,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:MW + * @version 2 */ EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 0x030C + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -423,6 +453,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:METER + * @version 2 */ RANGE_REMAINING = 0x0308 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -436,6 +467,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:CELSIUS + * @version 3 */ EV_BATTERY_AVERAGE_TEMPERATURE = 0x030E + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.FLOAT, @@ -463,6 +495,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:KILOPASCAL + * @version 2 */ TIRE_PRESSURE = 0x0309 + 0x10000000 + 0x07000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WHEEL,VehiclePropertyType:FLOAT @@ -478,6 +511,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @unit VehicleUnit:KILOPASCAL + * @version 2 */ CRITICALLY_LOW_TIRE_PRESSURE = 0x030A + 0x10000000 + 0x07000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WHEEL,VehiclePropertyType:FLOAT @@ -493,6 +527,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ ENGINE_IDLE_AUTO_STOP_ENABLED = 0x0320 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -509,6 +544,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum ImpactSensorLocation + * @version 3 */ IMPACT_DETECTED = 0x0330 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -529,6 +565,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleGear + * @version 2 */ GEAR_SELECTION = 0x0400 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -548,6 +585,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleGear + * @version 2 */ CURRENT_GEAR = 0x0401 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -559,6 +597,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ PARKING_BRAKE_ON = 0x0402 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -576,6 +615,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ PARKING_BRAKE_AUTO_APPLY = 0x0403 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -594,6 +634,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_BRAKE_REGENERATION_LEVEL = 0x040C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -612,6 +653,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ FUEL_LEVEL_LOW = 0x0405 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -624,6 +666,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ NIGHT_MODE = 0x0407 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -633,6 +676,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleTurnSignal + * @version 2 */ TURN_SIGNAL_STATE = 0x0408 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -642,6 +686,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleIgnitionState + * @version 2 */ IGNITION_STATE = 0x0409 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -654,6 +699,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ ABS_ACTIVE = 0x040A + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -666,6 +712,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ TRACTION_CONTROL_ACTIVE = 0x040B + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -684,6 +731,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum EvStoppingMode + * @version 2 */ EV_STOPPING_MODE = 0x040D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -705,6 +753,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ ELECTRONIC_STABILITY_CONTROL_ENABLED = 0x040E + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -723,6 +772,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum ElectronicStabilityControlState * @data_enum ErrorState + * @version 2 */ ELECTRONIC_STABILITY_CONTROL_STATE = 0x040F + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -789,6 +839,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_FAN_SPEED = 0x0500 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -802,6 +853,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleHvacFanDirection + * @version 2 */ HVAC_FAN_DIRECTION = 0x0501 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -811,6 +863,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:CELSIUS + * @version 2 */ HVAC_TEMPERATURE_CURRENT = 0x0502 + 0x10000000 + 0x05000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:FLOAT @@ -842,6 +895,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:CELSIUS + * @version 2 */ HVAC_TEMPERATURE_SET = 0x0503 + 0x10000000 + 0x05000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:FLOAT @@ -854,6 +908,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_DEFROSTER = 0x0504 + 0x10000000 + 0x03000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:BOOLEAN @@ -867,6 +922,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @config_flags Supported areaIds + * @version 2 */ HVAC_AC_ON = 0x0505 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -884,6 +940,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_MAX_AC_ON = 0x0506 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -907,6 +964,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_MAX_DEFROST_ON = 0x0507 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -924,6 +982,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_RECIRC_ON = 0x0508 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -963,6 +1022,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_DUAL_ON = 0x0509 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -985,6 +1045,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_AUTO_ON = 0x050A + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -1007,6 +1068,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_SEAT_TEMPERATURE = 0x050B + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -1030,6 +1092,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_SIDE_MIRROR_HEAT = 0x050C + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1053,6 +1116,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_STEERING_WHEEL_HEAT = 0x050D + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1079,6 +1143,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ HVAC_TEMPERATURE_DISPLAY_UNITS = 0x050E + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1087,6 +1152,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_ACTUAL_FAN_SPEED_RPM = 0x050F + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -1133,6 +1199,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_POWER_ON = 0x0510 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -1152,6 +1219,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum VehicleHvacFanDirection + * @version 2 */ HVAC_FAN_DIRECTION_AVAILABLE = 0x0511 + 0x10000000 + 0x05000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32_VEC @@ -1168,6 +1236,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_AUTO_RECIRC_ON = 0x0512 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -1193,6 +1262,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_SEAT_VENTILATION = 0x0513 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -1205,6 +1275,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_ELECTRIC_DEFROSTER_ON = 0x0514 + 0x10000000 + 0x03000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:BOOLEAN @@ -1245,6 +1316,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ HVAC_TEMPERATURE_VALUE_SUGGESTION = 0x0515 + 0x10000000 + 0x01000000 + 0x00610000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT_VEC @@ -1270,6 +1342,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ DISTANCE_DISPLAY_UNITS = 0x0600 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1294,6 +1367,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ FUEL_VOLUME_DISPLAY_UNITS = 0x0601 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1319,6 +1393,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ TIRE_PRESSURE_DISPLAY_UNITS = 0x0602 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1344,6 +1419,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ EV_BATTERY_DISPLAY_UNITS = 0x0603 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1360,6 +1436,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 0x0604 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -1383,6 +1460,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ VEHICLE_SPEED_DISPLAY_UNITS = 0x0605 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1427,6 +1505,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:MILLI_SECS + * @version 2 */ EXTERNAL_CAR_TIME = 0x0608 + 0x10000000 // VehiclePropertyGroup:SYSTEM + 0x01000000 // VehicleArea:GLOBAL @@ -1456,6 +1535,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE * @unit VehicleUnit:MILLI_SECS + * @version 2 */ ANDROID_EPOCH_TIME = 0x0606 + 0x10000000 + 0x01000000 + 0x00500000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT64 @@ -1470,6 +1550,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ STORAGE_ENCRYPTION_BINDING_SEED = 0x0607 + 0x10000000 + 0x01000000 + 0x00700000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BYTES @@ -1479,6 +1560,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:CELSIUS + * @version 2 */ ENV_OUTSIDE_TEMPERATURE = 0x0703 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -1497,6 +1579,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ AP_POWER_STATE_REQ = 0x0A00 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1511,6 +1594,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ AP_POWER_STATE_REPORT = 0x0A01 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1525,6 +1609,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ AP_POWER_BOOTUP_REASON = 0x0A02 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1547,6 +1632,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ DISPLAY_BRIGHTNESS = 0x0A03 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1570,6 +1656,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ PER_DISPLAY_BRIGHTNESS = 0x0A04 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1586,6 +1673,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ VALET_MODE_ENABLED = 0x0A05 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -1602,6 +1690,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ HEAD_UP_DISPLAY_ENABLED = 0x0A06 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -1619,6 +1708,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @config_flags + * @version 2 */ HW_KEY_INPUT = 0x0A10 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1641,6 +1731,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @config_flags + * @version 2 */ HW_KEY_INPUT_V2 = 0x0A11 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.MIXED, @@ -1675,6 +1766,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @config_flags + * @version 2 */ HW_MOTION_INPUT = 0x0A12 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.MIXED, @@ -1698,6 +1790,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @data_enum RotaryInputType * @access VehiclePropertyAccess.READ + * @version 2 */ HW_ROTARY_INPUT = 0x0A20 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1721,6 +1814,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @data_enum CustomInputType * @access VehiclePropertyAccess.READ + * @version 2 */ HW_CUSTOM_INPUT = 0X0A30 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1765,6 +1859,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DOOR_POS = 0x0B00 + 0x10000000 + 0x06000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:DOOR,VehiclePropertyType:INT32 @@ -1790,6 +1885,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DOOR_MOVE = 0x0B01 + 0x10000000 + 0x06000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:DOOR,VehiclePropertyType:INT32 @@ -1804,6 +1900,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DOOR_LOCK = 0x0B02 + 0x10000000 + 0x06000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:DOOR,VehiclePropertyType:BOOLEAN @@ -1820,6 +1917,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DOOR_CHILD_LOCK_ENABLED = 0x0B03 + VehiclePropertyGroup.SYSTEM + VehicleArea.DOOR + VehiclePropertyType.BOOLEAN, @@ -1846,6 +1944,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_Z_POS = 0x0B40 + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1872,6 +1971,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_Z_MOVE = 0x0B41 + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1898,6 +1998,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_Y_POS = 0x0B42 + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1923,6 +2024,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_Y_MOVE = 0x0B43 + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1937,6 +2039,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_LOCK = 0x0B44 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -1951,6 +2054,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_FOLD = 0x0B45 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -1968,6 +2072,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_AUTO_FOLD_ENABLED = @@ -1986,6 +2091,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_AUTO_TILT_ENABLED = @@ -2005,6 +2111,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ SEAT_MEMORY_SELECT = 0x0B80 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2018,6 +2125,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ SEAT_MEMORY_SET = 0x0B81 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2035,6 +2143,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BELT_BUCKLED = 0x0B82 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -2060,6 +2169,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BELT_HEIGHT_POS = 0x0B83 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2088,6 +2198,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BELT_HEIGHT_MOVE = 0x0B84 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2113,6 +2224,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_FORE_AFT_POS = 0x0B85 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2140,6 +2252,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_FORE_AFT_MOVE = 0x0B86 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2167,6 +2280,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BACKREST_ANGLE_1_POS = 0x0B87 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2194,6 +2308,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BACKREST_ANGLE_1_MOVE = 0x0B88 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2223,6 +2338,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BACKREST_ANGLE_2_POS = 0x0B89 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2250,6 +2366,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BACKREST_ANGLE_2_MOVE = 0x0B8A + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2273,6 +2390,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEIGHT_POS = 0x0B8B + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2298,6 +2416,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEIGHT_MOVE = 0x0B8C + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2326,6 +2445,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_DEPTH_POS = 0x0B8D + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2352,6 +2472,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_DEPTH_MOVE = 0x0B8E + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2379,6 +2500,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_TILT_POS = 0x0B8F + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2406,6 +2528,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_TILT_MOVE = 0x0B90 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2431,6 +2554,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_FORE_AFT_POS = 0x0B91 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2459,6 +2583,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_FORE_AFT_MOVE = 0x0B92 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2484,6 +2609,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_SIDE_SUPPORT_POS = 0x0B93 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2512,6 +2638,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 0x0B94 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2532,6 +2659,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_HEIGHT_POS = 0x0B95 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -2559,6 +2687,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_HEIGHT_POS_V2 = 0x0BA4 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2588,6 +2717,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_HEIGHT_MOVE = 0x0B96 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2611,6 +2741,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_ANGLE_POS = 0x0B97 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2639,6 +2770,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_ANGLE_MOVE = 0x0B98 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2662,6 +2794,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_FORE_AFT_POS = 0x0B99 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2690,6 +2823,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_FORE_AFT_MOVE = 0x0B9A + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2711,6 +2845,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ SEAT_FOOTWELL_LIGHTS_STATE = 0x0B9B + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2736,6 +2871,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ SEAT_FOOTWELL_LIGHTS_SWITCH = 0x0B9C + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2752,6 +2888,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_EASY_ACCESS_ENABLED = 0x0B9D + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -2772,6 +2909,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ SEAT_AIRBAG_ENABLED = 0x0B9E + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -2794,6 +2932,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleAirbagLocation + * @version 2 */ SEAT_AIRBAGS_DEPLOYED = 0x0BA5 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2819,6 +2958,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_CUSHION_SIDE_SUPPORT_POS = 0x0B9F + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2847,6 +2987,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_CUSHION_SIDE_SUPPORT_MOVE = 0x0BA0 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2870,6 +3011,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_VERTICAL_POS = 0x0BA1 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2896,6 +3038,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_VERTICAL_MOVE = 0x0BA2 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2922,6 +3065,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_WALK_IN_POS = 0x0BA3 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2940,6 +3084,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 3 */ SEAT_BELT_PRETENSIONER_DEPLOYED = 0x0BA6 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -2952,6 +3097,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleSeatOccupancyState + * @version 2 */ SEAT_OCCUPANCY = 0x0BB0 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2988,6 +3134,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ WINDOW_POS = 0x0BC0 + 0x10000000 + 0x03000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:INT32 @@ -3030,6 +3177,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ WINDOW_MOVE = 0x0BC1 + 0x10000000 + 0x03000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:INT32 @@ -3044,6 +3192,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ WINDOW_LOCK = 0x0BC4 + 0x10000000 + 0x03000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:BOOLEAN @@ -3064,6 +3213,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:MILLI_SECS + * @version 2 */ WINDSHIELD_WIPERS_PERIOD = 0x0BC5 + VehiclePropertyGroup.SYSTEM + VehicleArea.WINDOW + VehiclePropertyType.INT32, @@ -3085,6 +3235,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum WindshieldWipersState + * @version 2 */ WINDSHIELD_WIPERS_STATE = 0x0BC6 + VehiclePropertyGroup.SYSTEM + VehicleArea.WINDOW + VehiclePropertyType.INT32, @@ -3111,6 +3262,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum WindshieldWipersSwitch + * @version 2 */ WINDSHIELD_WIPERS_SWITCH = 0x0BC7 + VehiclePropertyGroup.SYSTEM + VehicleArea.WINDOW + VehiclePropertyType.INT32, @@ -3137,6 +3289,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_DEPTH_POS = 0x0BE0 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3163,6 +3316,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_DEPTH_MOVE = 0x0BE1 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3186,6 +3340,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_HEIGHT_POS = 0x0BE2 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3212,6 +3367,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_HEIGHT_MOVE = 0x0BE3 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3227,6 +3383,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_THEFT_LOCK_ENABLED = 0x0BE4 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -3241,6 +3398,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_LOCKED = 0x0BE5 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -3256,6 +3414,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_EASY_ACCESS_ENABLED = 0x0BE6 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -3283,6 +3442,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ GLOVE_BOX_DOOR_POS = 0x0BF0 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -3302,6 +3462,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ GLOVE_BOX_LOCKED = 0x0BF1 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -3321,6 +3482,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ VEHICLE_MAP_SERVICE = 0x0C00 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3340,6 +3502,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ LOCATION_CHARACTERIZATION = 0x0C10 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3363,6 +3526,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_POSITION = 0x0C20 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3394,6 +3558,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_ORIENTATION = 0x0C21 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3417,6 +3582,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_FIELD_OF_VIEW = 0x0C22 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3438,6 +3604,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_DETECTION_RANGE = 0x0C23 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3484,6 +3651,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_SUPPORTED_RANGES = 0x0C24 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3510,6 +3678,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_MEASURED_DISTANCE = 0x0C25 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3554,6 +3723,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ OBD2_LIVE_FRAME = 0x0D00 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3580,6 +3750,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ OBD2_FREEZE_FRAME = 0x0D01 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3597,6 +3768,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ OBD2_FREEZE_FRAME_INFO = 0x0D02 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3619,6 +3791,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ OBD2_FREEZE_FRAME_CLEAR = 0x0D03 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3630,6 +3803,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ HEADLIGHTS_STATE = 0x0E00 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3641,6 +3815,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ HIGH_BEAM_LIGHTS_STATE = 0x0E01 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3668,6 +3843,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ FOG_LIGHTS_STATE = 0x0E02 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3679,6 +3855,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ HAZARD_LIGHTS_STATE = 0x0E03 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3694,6 +3871,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ HEADLIGHTS_SWITCH = 0x0E10 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3709,6 +3887,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ HIGH_BEAM_LIGHTS_SWITCH = 0x0E11 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3740,6 +3919,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ FOG_LIGHTS_SWITCH = 0x0E12 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3755,6 +3935,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ HAZARD_LIGHTS_SWITCH = 0x0E13 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3766,6 +3947,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ CABIN_LIGHTS_STATE = 0x0F01 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3784,6 +3966,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ CABIN_LIGHTS_SWITCH = 0x0F02 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3795,6 +3978,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ READING_LIGHTS_STATE = 0x0F03 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -3813,6 +3997,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ READING_LIGHTS_SWITCH = 0x0F04 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -3834,6 +4019,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ STEERING_WHEEL_LIGHTS_STATE = 0x0F0C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3859,6 +4045,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ STEERING_WHEEL_LIGHTS_SWITCH = 0x0F0D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3887,6 +4074,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ SUPPORT_CUSTOMIZE_VENDOR_PERMISSION = 0x0F05 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -3903,6 +4091,7 @@ enum VehicleProperty { * ex) "com.android.car.user.CarUserNoticeService,storage_monitoring" * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ DISABLED_OPTIONAL_FEATURES = 0x0F06 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -3953,6 +4142,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ INITIAL_USER_INFO = 0x0F07 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4119,6 +4309,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ SWITCH_USER = 0x0F08 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4165,6 +4356,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ CREATE_USER = 0x0F09 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4196,6 +4388,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.WRITE + * @version 2 */ REMOVE_USER = 0x0F0A + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4271,6 +4464,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ USER_IDENTIFICATION_ASSOCIATION = 0x0F0B + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4290,6 +4484,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ EVS_SERVICE_REQUEST = 0x0F10 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -4307,6 +4502,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ POWER_POLICY_REQ = 0x0F21 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -4326,6 +4522,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ POWER_POLICY_GROUP_REQ = 0x0F22 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -4338,6 +4535,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ CURRENT_POWER_POLICY = 0x0F23 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -4349,6 +4547,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ WATCHDOG_ALIVE = 0xF31 + 0x10000000 + 0x01000000 + 0x00500000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT64 @@ -4360,6 +4559,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ WATCHDOG_TERMINATED_PROCESS = 0x0F32 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4375,6 +4575,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ VHAL_HEARTBEAT = 0x0F33 + 0x10000000 + 0x01000000 + 0x00500000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT64 @@ -4388,6 +4589,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ CLUSTER_SWITCH_UI = 0x0F34 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4412,6 +4614,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ CLUSTER_DISPLAY_STATE = 0x0F35 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -4447,6 +4650,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ CLUSTER_REPORT_STATE = 0x0F36 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4461,6 +4665,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ CLUSTER_REQUEST_DISPLAY = 0x0F37 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4471,6 +4676,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ CLUSTER_NAVIGATION_STATE = 0x0F38 + 0x10000000 + 0x01000000 + 0x00700000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BYTES @@ -4484,6 +4690,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum ElectronicTollCollectionCardType + * @version 2 */ ELECTRONIC_TOLL_COLLECTION_CARD_TYPE = 0x0F39 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4498,6 +4705,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum ElectronicTollCollectionCardStatus + * @version 2 */ ELECTRONIC_TOLL_COLLECTION_CARD_STATUS = 0x0F3A + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4511,6 +4719,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ FRONT_FOG_LIGHTS_STATE = 0x0F3B + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4529,6 +4738,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ FRONT_FOG_LIGHTS_SWITCH = 0x0F3C + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4543,6 +4753,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ REAR_FOG_LIGHTS_STATE = 0x0F3D + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4561,6 +4772,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ REAR_FOG_LIGHTS_SWITCH = 0x0F3E + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4578,6 +4790,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:AMPERE + * @version 2 */ EV_CHARGE_CURRENT_DRAW_LIMIT = 0x0F3F + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -4599,6 +4812,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_CHARGE_PERCENT_LIMIT = 0x0F40 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -4611,6 +4825,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum EvChargeState + * @version 2 */ EV_CHARGE_STATE = 0x0F41 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4627,6 +4842,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_CHARGE_SWITCH = 0x0F42 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -4639,6 +4855,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:SECS + * @version 2 */ EV_CHARGE_TIME_REMAINING = 0x0F43 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4652,6 +4869,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum EvRegenerativeBrakingState + * @version 2 */ EV_REGENERATIVE_BRAKING_STATE = 0x0F44 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4664,6 +4882,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum TrailerState + * @version 2 */ TRAILER_PRESENT = 0x0F45 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4687,6 +4906,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @unit VehicleUnit:KILOGRAM + * @version 2 */ VEHICLE_CURB_WEIGHT = 0x0F46 + 0x10000000 + 0x01000000 @@ -4701,6 +4921,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum GsrComplianceRequirementType + * @version 2 */ GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT = 0x0F47 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4725,6 +4946,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ SUPPORTED_PROPERTY_IDS = 0x0F48 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -4772,6 +4994,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE * @data_enum VehicleApPowerStateShutdownParam + * @version 2 */ SHUTDOWN_REQUEST = 0x0F49 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -4804,6 +5027,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ VEHICLE_IN_USE = 0x0F4A + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4818,6 +5042,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 3 */ CLUSTER_HEARTBEAT = 0x0F4B + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.MIXED, @@ -4837,6 +5062,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleAutonomousState + * @version 3 */ VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = 0x0F4C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -4866,6 +5092,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ AUTOMATIC_EMERGENCY_BRAKING_ENABLED = 0x1000 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4890,6 +5117,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum AutomaticEmergencyBrakingState * @data_enum ErrorState + * @version 2 */ AUTOMATIC_EMERGENCY_BRAKING_STATE = 0x1001 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -4911,6 +5139,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ FORWARD_COLLISION_WARNING_ENABLED = 0x1002 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4930,6 +5159,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum ForwardCollisionWarningState * @data_enum ErrorState + * @version 2 */ FORWARD_COLLISION_WARNING_STATE = 0x1003 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -4951,6 +5181,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ BLIND_SPOT_WARNING_ENABLED = 0x1004 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4970,6 +5201,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum BlindSpotWarningState * @data_enum ErrorState + * @version 2 */ BLIND_SPOT_WARNING_STATE = 0x1005 + VehiclePropertyGroup.SYSTEM + VehicleArea.MIRROR + VehiclePropertyType.INT32, @@ -4992,6 +5224,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ LANE_DEPARTURE_WARNING_ENABLED = 0x1006 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5011,6 +5244,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LaneDepartureWarningState * @data_enum ErrorState + * @version 2 */ LANE_DEPARTURE_WARNING_STATE = 0x1007 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5037,6 +5271,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ LANE_KEEP_ASSIST_ENABLED = 0x1008 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5059,6 +5294,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LaneKeepAssistState * @data_enum ErrorState + * @version 2 */ LANE_KEEP_ASSIST_STATE = 0x1009 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5086,6 +5322,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ LANE_CENTERING_ASSIST_ENABLED = 0x100A + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5116,6 +5353,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE * @data_enum LaneCenteringAssistCommand + * @version 2 */ LANE_CENTERING_ASSIST_COMMAND = 0x100B + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5138,6 +5376,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LaneCenteringAssistState * @data_enum ErrorState + * @version 2 */ LANE_CENTERING_ASSIST_STATE = 0x100C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5161,6 +5400,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EMERGENCY_LANE_KEEP_ASSIST_ENABLED = 0x100D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5181,6 +5421,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum EmergencyLaneKeepAssistState * @data_enum ErrorState + * @version 2 */ EMERGENCY_LANE_KEEP_ASSIST_STATE = 0x100E + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5205,6 +5446,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ CRUISE_CONTROL_ENABLED = 0x100F + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5233,6 +5475,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum CruiseControlType * @data_enum ErrorState + * @version 2 */ CRUISE_CONTROL_TYPE = 0x1010 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5253,6 +5496,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum CruiseControlState * @data_enum ErrorState + * @version 2 */ CRUISE_CONTROL_STATE = 0x1011 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5276,6 +5520,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE * @data_enum CruiseControlCommand + * @version 2 */ CRUISE_CONTROL_COMMAND = 0x1012 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5299,6 +5544,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:METER_PER_SEC + * @version 2 */ CRUISE_CONTROL_TARGET_SPEED = 0x1013 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.FLOAT, @@ -5330,6 +5576,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @unit VehicleUnit:MILLI_SECS + * @version 2 */ ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP = 0x1014 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5360,6 +5607,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ * @unit VehicleUnit:MILLIMETER + * @version 2 */ ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE = 0x1015 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5381,6 +5629,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HANDS_ON_DETECTION_ENABLED = 0x1016 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5405,6 +5654,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum HandsOnDetectionDriverState * @data_enum ErrorState + * @version 2 */ HANDS_ON_DETECTION_DRIVER_STATE = 0x1017 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5427,6 +5677,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum HandsOnDetectionWarning * @data_enum ErrorState + * @version 2 */ HANDS_ON_DETECTION_WARNING = 0x1018 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5449,6 +5700,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED = 0x1019 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5475,6 +5727,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum DriverDrowsinessAttentionState * @data_enum ErrorState + * @version 3 */ DRIVER_DROWSINESS_ATTENTION_STATE = 0x101A + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5499,6 +5752,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED = 0x101B + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5520,6 +5774,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum DriverDrowsinessAttentionWarning * @data_enum ErrorState + * @version 3 */ DRIVER_DROWSINESS_ATTENTION_WARNING = 0x101C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5542,6 +5797,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ DRIVER_DISTRACTION_SYSTEM_ENABLED = 0x101D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5566,6 +5822,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum DriverDistractionState * @data_enum ErrorState + * @version 3 */ DRIVER_DISTRACTION_STATE = 0x101E + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5589,6 +5846,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DRIVER_DISTRACTION_WARNING_ENABLED = 0x101F + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5610,6 +5868,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum DriverDistractionWarning * @data_enum ErrorState + * @version 3 */ DRIVER_DISTRACTION_WARNING = 0x1020 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5635,6 +5894,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ LOW_SPEED_COLLISION_WARNING_ENABLED = 0x1021 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5657,6 +5917,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LowSpeedCollisionWarningState * @data_enum ErrorState + * @version 3 */ LOW_SPEED_COLLISION_WARNING_STATE = 0x1022 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5679,6 +5940,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ CROSS_TRAFFIC_MONITORING_ENABLED = 0x1023 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5698,6 +5960,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum CrossTrafficMonitoringWarningState * @data_enum ErrorState + * @version 3 */ CROSS_TRAFFIC_MONITORING_WARNING_STATE = 0x1024 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5724,6 +5987,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = 0x1025 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5750,6 +6014,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LowSpeedAutomaticEmergencyBrakingState * @data_enum ErrorState + * @version 3 */ LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE = 0x1026 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, -- GitLab From a6e336cc5fc3ed8bcdc79186587f0e75027bc724 Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Sat, 16 Dec 2023 00:33:37 +0000 Subject: [PATCH 043/418] Add CtsStrictJavaPackagesTestCases to TEST_MAPPING presubmits This test will catch when the same types are duplicated in the framework.jar or services.jar which is helpful to know in presubmits. Recent case causing P0 bug and reverts: b/316620445 Test: none Bug: 316620445 Change-Id: I260e85acaabc81e8bac03702951873a21f7ae236 --- TEST_MAPPING | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TEST_MAPPING b/TEST_MAPPING index 25246d8f58..92cafbd750 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -11,6 +11,9 @@ }, { "name": "VtsHalTvInputV1_0TargetTest" + }, + { + "name": "CtsStrictJavaPackagesTestCases" } ], "auto-presubmit": [ -- GitLab From 7881e82bf025db9f745b44fa9bd54f9a2ba557e8 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Fri, 15 Dec 2023 13:12:01 -0800 Subject: [PATCH 044/418] Generate VersionForVehicleProperty.h. This will be used in VHAL implementation to filter out properties that are not supported by the client version. Test: presubmit Bug: 115764870 Change-Id: I89d8421debde15677b0fbd6da69335f43b681eff --- .../cpp/AccessForVehicleProperty.h | 5 +- .../cpp/ChangeModeForVehicleProperty.h | 5 +- .../cpp/VersionForVehicleProperty.h | 309 ++++++++++++++++++ .../tools/generate_annotation_enums.py | 198 +++++++---- 4 files changed, 443 insertions(+), 74 deletions(-) create mode 100644 automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h index a8effcbeb9..15056e2436 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h @@ -22,8 +22,7 @@ // clang-format off -#ifndef android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ -#define android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ +#pragma once #include #include @@ -309,5 +308,3 @@ std::unordered_map AccessForVehiclePrope } // namespace hardware } // namespace android } // aidl - -#endif // android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h index 3321c20c39..d3f97e313e 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h @@ -22,8 +22,7 @@ // clang-format off -#ifndef android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ -#define android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ +#pragma once #include #include @@ -309,5 +308,3 @@ std::unordered_map ChangeModeForVehi } // namespace hardware } // namespace android } // aidl - -#endif // android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ diff --git a/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h new file mode 100644 index 0000000000..70c914da7a --- /dev/null +++ b/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h @@ -0,0 +1,309 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * DO NOT EDIT MANUALLY!!! + * + * Generated by tools/generate_annotation_enums.py. + */ + +// clang-format off + +#pragma once + +#include + +#include + +namespace aidl { +namespace android { +namespace hardware { +namespace automotive { +namespace vehicle { + +std::unordered_map VersionForVehicleProperty = { + {VehicleProperty::INFO_VIN, 2}, + {VehicleProperty::INFO_MAKE, 2}, + {VehicleProperty::INFO_MODEL, 2}, + {VehicleProperty::INFO_MODEL_YEAR, 2}, + {VehicleProperty::INFO_FUEL_CAPACITY, 2}, + {VehicleProperty::INFO_FUEL_TYPE, 2}, + {VehicleProperty::INFO_EV_BATTERY_CAPACITY, 2}, + {VehicleProperty::INFO_EV_CONNECTOR_TYPE, 2}, + {VehicleProperty::INFO_FUEL_DOOR_LOCATION, 2}, + {VehicleProperty::INFO_EV_PORT_LOCATION, 2}, + {VehicleProperty::INFO_DRIVER_SEAT, 2}, + {VehicleProperty::INFO_EXTERIOR_DIMENSIONS, 2}, + {VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS, 2}, + {VehicleProperty::PERF_ODOMETER, 2}, + {VehicleProperty::PERF_VEHICLE_SPEED, 2}, + {VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY, 2}, + {VehicleProperty::PERF_STEERING_ANGLE, 2}, + {VehicleProperty::PERF_REAR_STEERING_ANGLE, 2}, + {VehicleProperty::ENGINE_COOLANT_TEMP, 2}, + {VehicleProperty::ENGINE_OIL_LEVEL, 2}, + {VehicleProperty::ENGINE_OIL_TEMP, 2}, + {VehicleProperty::ENGINE_RPM, 2}, + {VehicleProperty::WHEEL_TICK, 2}, + {VehicleProperty::FUEL_LEVEL, 2}, + {VehicleProperty::FUEL_DOOR_OPEN, 2}, + {VehicleProperty::EV_BATTERY_LEVEL, 2}, + {VehicleProperty::EV_CURRENT_BATTERY_CAPACITY, 2}, + {VehicleProperty::EV_CHARGE_PORT_OPEN, 2}, + {VehicleProperty::EV_CHARGE_PORT_CONNECTED, 2}, + {VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, 2}, + {VehicleProperty::RANGE_REMAINING, 2}, + {VehicleProperty::EV_BATTERY_AVERAGE_TEMPERATURE, 3}, + {VehicleProperty::TIRE_PRESSURE, 2}, + {VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE, 2}, + {VehicleProperty::ENGINE_IDLE_AUTO_STOP_ENABLED, 2}, + {VehicleProperty::IMPACT_DETECTED, 3}, + {VehicleProperty::GEAR_SELECTION, 2}, + {VehicleProperty::CURRENT_GEAR, 2}, + {VehicleProperty::PARKING_BRAKE_ON, 2}, + {VehicleProperty::PARKING_BRAKE_AUTO_APPLY, 2}, + {VehicleProperty::EV_BRAKE_REGENERATION_LEVEL, 2}, + {VehicleProperty::FUEL_LEVEL_LOW, 2}, + {VehicleProperty::NIGHT_MODE, 2}, + {VehicleProperty::TURN_SIGNAL_STATE, 2}, + {VehicleProperty::IGNITION_STATE, 2}, + {VehicleProperty::ABS_ACTIVE, 2}, + {VehicleProperty::TRACTION_CONTROL_ACTIVE, 2}, + {VehicleProperty::EV_STOPPING_MODE, 2}, + {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_ENABLED, 3}, + {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_STATE, 2}, + {VehicleProperty::HVAC_FAN_SPEED, 2}, + {VehicleProperty::HVAC_FAN_DIRECTION, 2}, + {VehicleProperty::HVAC_TEMPERATURE_CURRENT, 2}, + {VehicleProperty::HVAC_TEMPERATURE_SET, 2}, + {VehicleProperty::HVAC_DEFROSTER, 2}, + {VehicleProperty::HVAC_AC_ON, 2}, + {VehicleProperty::HVAC_MAX_AC_ON, 2}, + {VehicleProperty::HVAC_MAX_DEFROST_ON, 2}, + {VehicleProperty::HVAC_RECIRC_ON, 2}, + {VehicleProperty::HVAC_DUAL_ON, 2}, + {VehicleProperty::HVAC_AUTO_ON, 2}, + {VehicleProperty::HVAC_SEAT_TEMPERATURE, 2}, + {VehicleProperty::HVAC_SIDE_MIRROR_HEAT, 2}, + {VehicleProperty::HVAC_STEERING_WHEEL_HEAT, 2}, + {VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS, 2}, + {VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM, 2}, + {VehicleProperty::HVAC_POWER_ON, 2}, + {VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE, 2}, + {VehicleProperty::HVAC_AUTO_RECIRC_ON, 2}, + {VehicleProperty::HVAC_SEAT_VENTILATION, 2}, + {VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON, 2}, + {VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION, 2}, + {VehicleProperty::DISTANCE_DISPLAY_UNITS, 2}, + {VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS, 2}, + {VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS, 2}, + {VehicleProperty::EV_BATTERY_DISPLAY_UNITS, 2}, + {VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, 2}, + {VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS, 2}, + {VehicleProperty::EXTERNAL_CAR_TIME, 2}, + {VehicleProperty::ANDROID_EPOCH_TIME, 2}, + {VehicleProperty::STORAGE_ENCRYPTION_BINDING_SEED, 2}, + {VehicleProperty::ENV_OUTSIDE_TEMPERATURE, 2}, + {VehicleProperty::AP_POWER_STATE_REQ, 2}, + {VehicleProperty::AP_POWER_STATE_REPORT, 2}, + {VehicleProperty::AP_POWER_BOOTUP_REASON, 2}, + {VehicleProperty::DISPLAY_BRIGHTNESS, 2}, + {VehicleProperty::PER_DISPLAY_BRIGHTNESS, 2}, + {VehicleProperty::VALET_MODE_ENABLED, 3}, + {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, 3}, + {VehicleProperty::HW_KEY_INPUT, 2}, + {VehicleProperty::HW_KEY_INPUT_V2, 2}, + {VehicleProperty::HW_MOTION_INPUT, 2}, + {VehicleProperty::HW_ROTARY_INPUT, 2}, + {VehicleProperty::HW_CUSTOM_INPUT, 2}, + {VehicleProperty::DOOR_POS, 2}, + {VehicleProperty::DOOR_MOVE, 2}, + {VehicleProperty::DOOR_LOCK, 2}, + {VehicleProperty::DOOR_CHILD_LOCK_ENABLED, 2}, + {VehicleProperty::MIRROR_Z_POS, 2}, + {VehicleProperty::MIRROR_Z_MOVE, 2}, + {VehicleProperty::MIRROR_Y_POS, 2}, + {VehicleProperty::MIRROR_Y_MOVE, 2}, + {VehicleProperty::MIRROR_LOCK, 2}, + {VehicleProperty::MIRROR_FOLD, 2}, + {VehicleProperty::MIRROR_AUTO_FOLD_ENABLED, 2}, + {VehicleProperty::MIRROR_AUTO_TILT_ENABLED, 2}, + {VehicleProperty::SEAT_MEMORY_SELECT, 2}, + {VehicleProperty::SEAT_MEMORY_SET, 2}, + {VehicleProperty::SEAT_BELT_BUCKLED, 2}, + {VehicleProperty::SEAT_BELT_HEIGHT_POS, 2}, + {VehicleProperty::SEAT_BELT_HEIGHT_MOVE, 2}, + {VehicleProperty::SEAT_FORE_AFT_POS, 2}, + {VehicleProperty::SEAT_FORE_AFT_MOVE, 2}, + {VehicleProperty::SEAT_BACKREST_ANGLE_1_POS, 2}, + {VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE, 2}, + {VehicleProperty::SEAT_BACKREST_ANGLE_2_POS, 2}, + {VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE, 2}, + {VehicleProperty::SEAT_HEIGHT_POS, 2}, + {VehicleProperty::SEAT_HEIGHT_MOVE, 2}, + {VehicleProperty::SEAT_DEPTH_POS, 2}, + {VehicleProperty::SEAT_DEPTH_MOVE, 2}, + {VehicleProperty::SEAT_TILT_POS, 2}, + {VehicleProperty::SEAT_TILT_MOVE, 2}, + {VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS, 2}, + {VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE, 2}, + {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS, 2}, + {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE, 2}, + {VehicleProperty::SEAT_HEADREST_HEIGHT_POS, 2}, + {VehicleProperty::SEAT_HEADREST_HEIGHT_POS_V2, 2}, + {VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE, 2}, + {VehicleProperty::SEAT_HEADREST_ANGLE_POS, 2}, + {VehicleProperty::SEAT_HEADREST_ANGLE_MOVE, 2}, + {VehicleProperty::SEAT_HEADREST_FORE_AFT_POS, 2}, + {VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE, 2}, + {VehicleProperty::SEAT_FOOTWELL_LIGHTS_STATE, 2}, + {VehicleProperty::SEAT_FOOTWELL_LIGHTS_SWITCH, 2}, + {VehicleProperty::SEAT_EASY_ACCESS_ENABLED, 2}, + {VehicleProperty::SEAT_AIRBAG_ENABLED, 3}, + {VehicleProperty::SEAT_AIRBAGS_DEPLOYED, 2}, + {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_POS, 2}, + {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_MOVE, 2}, + {VehicleProperty::SEAT_LUMBAR_VERTICAL_POS, 2}, + {VehicleProperty::SEAT_LUMBAR_VERTICAL_MOVE, 2}, + {VehicleProperty::SEAT_WALK_IN_POS, 2}, + {VehicleProperty::SEAT_BELT_PRETENSIONER_DEPLOYED, 3}, + {VehicleProperty::SEAT_OCCUPANCY, 2}, + {VehicleProperty::WINDOW_POS, 2}, + {VehicleProperty::WINDOW_MOVE, 2}, + {VehicleProperty::WINDOW_LOCK, 2}, + {VehicleProperty::WINDSHIELD_WIPERS_PERIOD, 2}, + {VehicleProperty::WINDSHIELD_WIPERS_STATE, 2}, + {VehicleProperty::WINDSHIELD_WIPERS_SWITCH, 2}, + {VehicleProperty::STEERING_WHEEL_DEPTH_POS, 2}, + {VehicleProperty::STEERING_WHEEL_DEPTH_MOVE, 2}, + {VehicleProperty::STEERING_WHEEL_HEIGHT_POS, 2}, + {VehicleProperty::STEERING_WHEEL_HEIGHT_MOVE, 2}, + {VehicleProperty::STEERING_WHEEL_THEFT_LOCK_ENABLED, 2}, + {VehicleProperty::STEERING_WHEEL_LOCKED, 2}, + {VehicleProperty::STEERING_WHEEL_EASY_ACCESS_ENABLED, 2}, + {VehicleProperty::GLOVE_BOX_DOOR_POS, 2}, + {VehicleProperty::GLOVE_BOX_LOCKED, 2}, + {VehicleProperty::VEHICLE_MAP_SERVICE, 2}, + {VehicleProperty::LOCATION_CHARACTERIZATION, 2}, + {VehicleProperty::ULTRASONICS_SENSOR_POSITION, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, 3}, + {VehicleProperty::OBD2_LIVE_FRAME, 2}, + {VehicleProperty::OBD2_FREEZE_FRAME, 2}, + {VehicleProperty::OBD2_FREEZE_FRAME_INFO, 2}, + {VehicleProperty::OBD2_FREEZE_FRAME_CLEAR, 2}, + {VehicleProperty::HEADLIGHTS_STATE, 2}, + {VehicleProperty::HIGH_BEAM_LIGHTS_STATE, 2}, + {VehicleProperty::FOG_LIGHTS_STATE, 2}, + {VehicleProperty::HAZARD_LIGHTS_STATE, 2}, + {VehicleProperty::HEADLIGHTS_SWITCH, 2}, + {VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH, 2}, + {VehicleProperty::FOG_LIGHTS_SWITCH, 2}, + {VehicleProperty::HAZARD_LIGHTS_SWITCH, 2}, + {VehicleProperty::CABIN_LIGHTS_STATE, 2}, + {VehicleProperty::CABIN_LIGHTS_SWITCH, 2}, + {VehicleProperty::READING_LIGHTS_STATE, 2}, + {VehicleProperty::READING_LIGHTS_SWITCH, 2}, + {VehicleProperty::STEERING_WHEEL_LIGHTS_STATE, 2}, + {VehicleProperty::STEERING_WHEEL_LIGHTS_SWITCH, 2}, + {VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, 2}, + {VehicleProperty::DISABLED_OPTIONAL_FEATURES, 2}, + {VehicleProperty::INITIAL_USER_INFO, 2}, + {VehicleProperty::SWITCH_USER, 2}, + {VehicleProperty::CREATE_USER, 2}, + {VehicleProperty::REMOVE_USER, 2}, + {VehicleProperty::USER_IDENTIFICATION_ASSOCIATION, 2}, + {VehicleProperty::EVS_SERVICE_REQUEST, 2}, + {VehicleProperty::POWER_POLICY_REQ, 2}, + {VehicleProperty::POWER_POLICY_GROUP_REQ, 2}, + {VehicleProperty::CURRENT_POWER_POLICY, 2}, + {VehicleProperty::WATCHDOG_ALIVE, 2}, + {VehicleProperty::WATCHDOG_TERMINATED_PROCESS, 2}, + {VehicleProperty::VHAL_HEARTBEAT, 2}, + {VehicleProperty::CLUSTER_SWITCH_UI, 2}, + {VehicleProperty::CLUSTER_DISPLAY_STATE, 2}, + {VehicleProperty::CLUSTER_REPORT_STATE, 2}, + {VehicleProperty::CLUSTER_REQUEST_DISPLAY, 2}, + {VehicleProperty::CLUSTER_NAVIGATION_STATE, 2}, + {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, 2}, + {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, 2}, + {VehicleProperty::FRONT_FOG_LIGHTS_STATE, 2}, + {VehicleProperty::FRONT_FOG_LIGHTS_SWITCH, 2}, + {VehicleProperty::REAR_FOG_LIGHTS_STATE, 2}, + {VehicleProperty::REAR_FOG_LIGHTS_SWITCH, 2}, + {VehicleProperty::EV_CHARGE_CURRENT_DRAW_LIMIT, 2}, + {VehicleProperty::EV_CHARGE_PERCENT_LIMIT, 2}, + {VehicleProperty::EV_CHARGE_STATE, 2}, + {VehicleProperty::EV_CHARGE_SWITCH, 2}, + {VehicleProperty::EV_CHARGE_TIME_REMAINING, 2}, + {VehicleProperty::EV_REGENERATIVE_BRAKING_STATE, 2}, + {VehicleProperty::TRAILER_PRESENT, 2}, + {VehicleProperty::VEHICLE_CURB_WEIGHT, 2}, + {VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, 2}, + {VehicleProperty::SUPPORTED_PROPERTY_IDS, 2}, + {VehicleProperty::SHUTDOWN_REQUEST, 2}, + {VehicleProperty::VEHICLE_IN_USE, 2}, + {VehicleProperty::CLUSTER_HEARTBEAT, 3}, + {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, 3}, + {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, 2}, + {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, 2}, + {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, 2}, + {VehicleProperty::FORWARD_COLLISION_WARNING_STATE, 2}, + {VehicleProperty::BLIND_SPOT_WARNING_ENABLED, 2}, + {VehicleProperty::BLIND_SPOT_WARNING_STATE, 2}, + {VehicleProperty::LANE_DEPARTURE_WARNING_ENABLED, 2}, + {VehicleProperty::LANE_DEPARTURE_WARNING_STATE, 2}, + {VehicleProperty::LANE_KEEP_ASSIST_ENABLED, 2}, + {VehicleProperty::LANE_KEEP_ASSIST_STATE, 2}, + {VehicleProperty::LANE_CENTERING_ASSIST_ENABLED, 2}, + {VehicleProperty::LANE_CENTERING_ASSIST_COMMAND, 2}, + {VehicleProperty::LANE_CENTERING_ASSIST_STATE, 2}, + {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_ENABLED, 2}, + {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_STATE, 2}, + {VehicleProperty::CRUISE_CONTROL_ENABLED, 2}, + {VehicleProperty::CRUISE_CONTROL_TYPE, 2}, + {VehicleProperty::CRUISE_CONTROL_STATE, 2}, + {VehicleProperty::CRUISE_CONTROL_COMMAND, 2}, + {VehicleProperty::CRUISE_CONTROL_TARGET_SPEED, 2}, + {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, 2}, + {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, 2}, + {VehicleProperty::HANDS_ON_DETECTION_ENABLED, 2}, + {VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, 2}, + {VehicleProperty::HANDS_ON_DETECTION_WARNING, 2}, + {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, 3}, + {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_STATE, 3}, + {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, 3}, + {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING, 3}, + {VehicleProperty::DRIVER_DISTRACTION_SYSTEM_ENABLED, 3}, + {VehicleProperty::DRIVER_DISTRACTION_STATE, 3}, + {VehicleProperty::DRIVER_DISTRACTION_WARNING_ENABLED, 2}, + {VehicleProperty::DRIVER_DISTRACTION_WARNING, 3}, + {VehicleProperty::LOW_SPEED_COLLISION_WARNING_ENABLED, 3}, + {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, 3}, + {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, 3}, + {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, 3}, + {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 diff --git a/automotive/vehicle/tools/generate_annotation_enums.py b/automotive/vehicle/tools/generate_annotation_enums.py index 05fc99a231..87e9bdc851 100755 --- a/automotive/vehicle/tools/generate_annotation_enums.py +++ b/automotive/vehicle/tools/generate_annotation_enums.py @@ -42,6 +42,8 @@ ACCESS_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_ 'AccessForVehicleProperty.java') ENUM_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/java/' + 'EnumForVehicleProperty.java') +VERSION_CPP_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/cpp/' + + 'VersionForVehicleProperty.h') SCRIPT_PATH = 'hardware/interfaces/automotive/vehicle/tools/generate_annotation_enums.py' TAB = ' ' @@ -50,6 +52,7 @@ RE_ENUM_END = re.compile('\s*\}\;') RE_COMMENT_BEGIN = re.compile('\s*\/\*\*?') RE_COMMENT_END = re.compile('\s*\*\/') RE_CHANGE_MODE = re.compile('\s*\* @change_mode (\S+)\s*') +RE_VERSION = re.compile('\s*\* @version (\S+)\s*') RE_ACCESS = re.compile('\s*\* @access (\S+)\s*') RE_DATA_ENUM = re.compile('\s*\* @data_enum (\S+)\s*') RE_UNIT = re.compile('\s*\* @unit (\S+)\s+') @@ -81,8 +84,7 @@ LICENSE = """/* """ -CHANGE_MODE_CPP_HEADER = """#ifndef android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ -#define android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ +CHANGE_MODE_CPP_HEADER = """#pragma once #include #include @@ -98,7 +100,7 @@ namespace vehicle { std::unordered_map ChangeModeForVehicleProperty = { """ -CHANGE_MODE_CPP_FOOTER = """ +CPP_FOOTER = """ }; } // namespace vehicle @@ -106,12 +108,9 @@ CHANGE_MODE_CPP_FOOTER = """ } // namespace hardware } // namespace android } // aidl - -#endif // android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ """ -ACCESS_CPP_HEADER = """#ifndef android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ -#define android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ +ACCESS_CPP_HEADER = """#pragma once #include #include @@ -127,16 +126,19 @@ namespace vehicle { std::unordered_map AccessForVehicleProperty = { """ -ACCESS_CPP_FOOTER = """ -}; +VERSION_CPP_HEADER = """#pragma once -} // namespace vehicle -} // namespace automotive -} // namespace hardware -} // namespace android -} // aidl +#include + +#include + +namespace aidl { +namespace android { +namespace hardware { +namespace automotive { +namespace vehicle { -#endif // android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ +std::unordered_map VersionForVehicleProperty = { """ CHANGE_MODE_JAVA_HEADER = """package android.hardware.automotive.vehicle; @@ -148,7 +150,7 @@ public final class ChangeModeForVehicleProperty { public static final Map values = Map.ofEntries( """ -CHANGE_MODE_JAVA_FOOTER = """ +JAVA_FOOTER = """ ); } @@ -163,12 +165,6 @@ public final class AccessForVehicleProperty { public static final Map values = Map.ofEntries( """ -ACCESS_JAVA_FOOTER = """ - ); - -} -""" - ENUM_JAVA_HEADER = """package android.hardware.automotive.vehicle; import java.util.List; @@ -179,12 +175,6 @@ public final class EnumForVehicleProperty { public static final Map>> values = Map.ofEntries( """ -ENUM_JAVA_FOOTER = """ - ); - -} -""" - class PropertyConfig: """Represents one VHAL property definition in VehicleProperty.aidl.""" @@ -196,6 +186,7 @@ class PropertyConfig: self.access_modes = [] self.enum_types = [] self.unit_type = None + self.version = None def __repr__(self): return self.__str__() @@ -258,6 +249,11 @@ class FileParser: match = RE_DATA_ENUM.match(line) if match: config.enum_types.append(match.group(1)) + match = RE_VERSION.match(line) + if match: + if config.version != None: + raise Exception('Duplicate version annotation for property: ' + prop_name) + config.version = match.group(1) else: match = RE_VALUE.match(line) if match: @@ -270,6 +266,9 @@ class FileParser: if not config.access_modes: raise Exception( 'No access_mode annotation for property: ' + prop_name) + if not config.version: + raise Exception( + 'no version annotation for property: ' + prop_name) config.name = prop_name configs.append(config) @@ -295,6 +294,9 @@ class FileParser: continue; if not cpp: annotation = "List.of(" + ', '.join([class_name + ".class" for class_name in config.enum_types]) + ")" + elif field == 'version': + if cpp: + annotation = config.version else: raise Exception('Unknown field: ' + field) if counter != 0: @@ -347,6 +349,69 @@ def createTempFile(): return f.name +class GeneratedFile: + + def __init__(self, type): + 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_output_file = None + self.java_output_file = None + + def setCppFilePath(self, cpp_file_path): + self.cpp_file_path = cpp_file_path + + def setJavaFilePath(self, java_file_path): + self.java_file_path = java_file_path + + def setCppHeader(self, cpp_header): + self.cpp_header = cpp_header + + 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 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) + 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) + self.java_output_file = output_file + + def cmp(self): + if self.cpp_file_path: + if not filecmp.cmp(self.cpp_output_file, self.cpp_file_path): + return False + + if self.java_file_path: + if not filecmp.cmp(self.java_output_file, self.java_file_path): + return False + + return True + + @staticmethod + def _getOutputFile(file_path, check_only, temp_files): + if not check_only: + return file_path + + temp_file = createTempFile() + temp_files.append(temp_file) + return temp_file + + def main(): parser = argparse.ArgumentParser( description='Generate Java and C++ enums based on annotations in VehicleProperty.aidl') @@ -382,51 +447,52 @@ def main(): f.outputAsCsv(args.output_csv) return - change_mode_cpp_file = os.path.join(android_top, CHANGE_MODE_CPP_FILE_PATH); - access_cpp_file = os.path.join(android_top, ACCESS_CPP_FILE_PATH); - change_mode_java_file = os.path.join(android_top, CHANGE_MODE_JAVA_FILE_PATH); - access_java_file = os.path.join(android_top, ACCESS_JAVA_FILE_PATH); - enum_java_file = os.path.join(android_top, ENUM_JAVA_FILE_PATH); - temp_files = [] + generated_files = [] + + 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) + 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) + 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) + generated_files.append(enum_types) + + version = GeneratedFile('version') + version.setCppFilePath(os.path.join(android_top, VERSION_CPP_FILE_PATH)) + version.setCppHeader(VERSION_CPP_HEADER) + version.setCppFooter(CPP_FOOTER) + generated_files.append(version) - if not args.check_only: - change_mode_cpp_output = change_mode_cpp_file - access_cpp_output = access_cpp_file - change_mode_java_output = change_mode_java_file - access_java_output = access_java_file - enum_java_output = enum_java_file - else: - change_mode_cpp_output = createTempFile() - temp_files.append(change_mode_cpp_output) - access_cpp_output = createTempFile() - temp_files.append(access_cpp_output) - change_mode_java_output = createTempFile() - temp_files.append(change_mode_java_output) - access_java_output = createTempFile() - temp_files.append(access_java_output) - enum_java_output = createTempFile() - temp_files.append(enum_java_output) + temp_files = [] try: - f.convert(change_mode_cpp_output, CHANGE_MODE_CPP_HEADER, CHANGE_MODE_CPP_FOOTER, - True, 'change_mode') - f.convert(change_mode_java_output, CHANGE_MODE_JAVA_HEADER, - CHANGE_MODE_JAVA_FOOTER, False, 'change_mode') - f.convert(access_cpp_output, ACCESS_CPP_HEADER, ACCESS_CPP_FOOTER, True, 'access_mode') - f.convert(access_java_output, ACCESS_JAVA_HEADER, ACCESS_JAVA_FOOTER, False, 'access_mode') - f.convert(enum_java_output, ENUM_JAVA_HEADER, ENUM_JAVA_FOOTER, False, 'enum_types') + for generated_file in generated_files: + generated_file.convert(f, args.check_only, temp_files) if not args.check_only: return - if ((not filecmp.cmp(change_mode_cpp_output, change_mode_cpp_file)) or - (not filecmp.cmp(change_mode_java_output, change_mode_java_file)) or - (not filecmp.cmp(access_cpp_output, access_cpp_file)) or - (not filecmp.cmp(access_java_output, access_java_file)) or - (not filecmp.cmp(enum_java_output, enum_java_file))): - print('The generated enum files for VehicleProperty.aidl requires update, ') - print('Run \npython ' + android_top + '/' + SCRIPT_PATH) - sys.exit(1) + for generated_file in generated_files: + if not generated_file.cmp(): + print('The generated enum files for VehicleProperty.aidl requires update, ') + print('Run \npython ' + android_top + '/' + SCRIPT_PATH) + sys.exit(1) except Exception as e: print('Error parsing VehicleProperty.aidl') print(e) -- GitLab From 56402008b294ed108d83ca735982d10d83d74c52 Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Mon, 4 Dec 2023 17:53:25 +0000 Subject: [PATCH 045/418] Add ISecretkeeper/default On Cuttlefish, the implementation of the ISecretkeeper HAL runs in-process in the HAL service, and so is deliberately marked as being the /nonsecure instance to make that clear. A real device that's running Secretkeeper inside a secure environment should report that instance as being the /default instance. So allow either in the compatibility matrix. Bug: 306364873 Test: build, VtsAidlAuthGraphRoleTest, VtsSecretkeeperTargetTest Change-Id: Ifb58d8bb9318707b714a345adc1b1b4198054f81 --- compatibility_matrices/compatibility_matrix.9.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/compatibility_matrices/compatibility_matrix.9.xml b/compatibility_matrices/compatibility_matrix.9.xml index 831cebb842..03a217f46f 100644 --- a/compatibility_matrices/compatibility_matrix.9.xml +++ b/compatibility_matrices/compatibility_matrix.9.xml @@ -323,6 +323,7 @@ 1 ISecretkeeper + default nonsecure -- GitLab From d9657be6d91a4e116739e6c6b534754caf91ddb5 Mon Sep 17 00:00:00 2001 From: Gil Cukierman Date: Mon, 18 Dec 2023 14:56:18 +0000 Subject: [PATCH 046/418] Fix case on SIP HMAC enums null -> NULL Change-Id: I283bae1e8820db1e862f03372041796db5daa204 Test: m Bug: 283336425 --- .../android/hardware/radio/network/SecurityAlgorithm.aidl | 4 ++-- .../android/hardware/radio/network/SecurityAlgorithm.aidl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl index 166450154c..3eb51e7e83 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -64,9 +64,9 @@ enum SecurityAlgorithm { DES_EDE3_CBC = 72, AES_EDE3_CBC = 73, HMAC_SHA1_96 = 74, - HMAC_SHA1_96_null = 75, + HMAC_SHA1_96_NULL = 75, HMAC_MD5_96 = 76, - HMAC_MD5_96_null = 77, + HMAC_MD5_96_NULL = 77, SRTP_AES_COUNTER = 87, SRTP_AES_F8 = 88, SRTP_HMAC_SHA1 = 89, diff --git a/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl index 71c654c53d..fefa26edd0 100644 --- a/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl +++ b/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -67,9 +67,9 @@ enum SecurityAlgorithm { DES_EDE3_CBC = 72, AES_EDE3_CBC = 73, HMAC_SHA1_96 = 74, - HMAC_SHA1_96_null = 75, + HMAC_SHA1_96_NULL = 75, HMAC_MD5_96 = 76, - HMAC_MD5_96_null = 77, + HMAC_MD5_96_NULL = 77, // RTP (see 3GPP TS 33.328) SRTP_AES_COUNTER = 87, -- GitLab From f60fc373d932fa619da333c7f0e8498881df2361 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Tue, 12 Dec 2023 17:48:18 +0000 Subject: [PATCH 047/418] Spatializer default implementatoin with VTS Bug: 273373363 Test: atest VtsHalSpatializerTargetTest Test: atest VtsHalAudioEffectTargetTest Change-Id: I41218661ac7265723258303438dd01f704838188 --- audio/aidl/TEST_MAPPING | 5 + audio/aidl/default/audio_effects_config.xml | 2 + audio/aidl/default/spatializer/Android.bp | 41 ++++ .../default/spatializer/SpatializerSw.cpp | 211 ++++++++++++++++++ .../aidl/default/spatializer/SpatializerSw.h | 68 ++++++ audio/aidl/vts/Android.bp | 6 + audio/aidl/vts/EffectHelper.h | 16 +- .../aidl/vts/VtsHalSpatializerTargetTest.cpp | 189 ++++++++++++++++ 8 files changed, 534 insertions(+), 4 deletions(-) create mode 100644 audio/aidl/default/spatializer/Android.bp create mode 100644 audio/aidl/default/spatializer/SpatializerSw.cpp create mode 100644 audio/aidl/default/spatializer/SpatializerSw.h create mode 100644 audio/aidl/vts/VtsHalSpatializerTargetTest.cpp diff --git a/audio/aidl/TEST_MAPPING b/audio/aidl/TEST_MAPPING index 81c99f78a9..2b6207eb06 100644 --- a/audio/aidl/TEST_MAPPING +++ b/audio/aidl/TEST_MAPPING @@ -51,5 +51,10 @@ { "name": "VtsHalNSTargetTest" } + ], + "postsubmit": [ + { + "name": "VtsHalSpatializerTargetTest" + } ] } diff --git a/audio/aidl/default/audio_effects_config.xml b/audio/aidl/default/audio_effects_config.xml index 6f0af21ffc..827ff80a8a 100644 --- a/audio/aidl/default/audio_effects_config.xml +++ b/audio/aidl/default/audio_effects_config.xml @@ -47,6 +47,7 @@ + -- GitLab From 58be11ecc4dc9d8645b86ae3d6d9e9e450ba1945 Mon Sep 17 00:00:00 2001 From: Ray Chin Date: Fri, 22 Dec 2023 19:10:46 +0800 Subject: [PATCH 085/418] Blind scan should be an optional feature based on the design document Bug: 317215552 Bug: 305118733 Test: cf_x86_tv-staging-userdebug (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:740a0a8c5ebd0218139aded763fb3204886c2dd0) Merged-In: Id0153700cfa2c02933c23e13ca1305b0a96b00ca Change-Id: Id0153700cfa2c02933c23e13ca1305b0a96b00ca NOTE FOR REVIEWERS - errors occurred while applying the patch. PLEASE REVIEW CAREFULLY. Errors: Error applying patch in tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp, hunk HunkHeader[1258,6->1262,10]: Hunk cannot be applied Original patch: From 740a0a8c5ebd0218139aded763fb3204886c2dd0 Mon Sep 17 00:00:00 2001 From: Ray Chin Date: Fri, 22 Dec 2023 19:10:46 +0800 Subject: [PATCH] Blind scan should be an optional feature based on the design document Bug: 317215552 Bug: 305118733 Test: cf_x86_tv-staging-userdebug Change-Id: Id0153700cfa2c02933c23e13ca1305b0a96b00ca --- --- tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp | 8 ++++++++ .../aidl/vts/functional/VtsHalTvTunerTestConfigurations.h | 1 + tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h | 6 ++++++ tv/tuner/config/api/current.txt | 2 ++ tv/tuner/config/tuner_testing_dynamic_configuration.xsd | 1 + 5 files changed, 18 insertions(+) diff --git a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp index 6987588ef7..766814f950 100644 --- a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp +++ b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp @@ -1198,6 +1198,10 @@ TEST_P(TunerFrontendAidlTest, BlindScanFrontend) { vector scan_configs = generateScanConfigurations(); for (auto& configuration : scan_configs) { scan = configuration; + // Skip test if the frontend implementation doesn't support blind scan + if (!frontendMap[scan.frontendId].supportBlindScan) { + continue; + } mFrontendTests.scanTest(frontendMap[scan.frontendId], FrontendScanType::SCAN_BLIND); } } @@ -1222,6 +1226,10 @@ TEST_P(TunerFrontendAidlTest, BlindScanFrontendWithEndFrequency) { vector scan_configs = generateScanConfigurations(); for (auto& configuration : scan_configs) { scan = configuration; + // Skip test if the frontend implementation doesn't support blind scan + if (!frontendMap[scan.frontendId].supportBlindScan) { + continue; + } mFrontendTests.scanTest(frontendMap[scan.frontendId], FrontendScanType::SCAN_BLIND); } } diff --git a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h index 516cb62f04..5c13ed081a 100644 --- a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h +++ b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h @@ -612,6 +612,7 @@ inline void initFrontendConfig() { frontendMap[defaultFeId].isSoftwareFe = true; frontendMap[defaultFeId].canConnectToCiCam = true; frontendMap[defaultFeId].ciCamId = 0; + frontendMap[defaultFeId].supportBlindScan = true; FrontendDvbtSettings dvbt; dvbt.transmissionMode = FrontendDvbtTransmissionMode::MODE_8K_E; frontendMap[defaultFeId].settings.set(dvbt); diff --git a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h index 9517520c18..5ffb38ffcd 100644 --- a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h +++ b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h @@ -114,6 +114,7 @@ struct FrontendConfig { FrontendSettings settings; vector tuneStatusTypes; vector expectTuneStatuses; + bool supportBlindScan; }; struct FilterConfig { @@ -354,6 +355,11 @@ struct TunerTestingConfigAidlReader1_0 { } else { hasHwFe = true; } + if (feConfig.hasSupportBlindScan()) { + frontendMap[id].supportBlindScan = feConfig.getSupportBlindScan(); + } else { + frontendMap[id].supportBlindScan = true; + } // TODO: b/182519645 complete the tune status config frontendMap[id].tuneStatusTypes = types; frontendMap[id].expectTuneStatuses = statuses; diff --git a/tv/tuner/config/api/current.txt b/tv/tuner/config/api/current.txt index dbd3486e67..ff2df90b80 100644 --- a/tv/tuner/config/api/current.txt +++ b/tv/tuner/config/api/current.txt @@ -369,6 +369,7 @@ package android.media.tuner.testing.configuration.V1_0 { method @Nullable public android.media.tuner.testing.configuration.V1_0.IsdbsFrontendSettings getIsdbsFrontendSettings_optional(); method @Nullable public android.media.tuner.testing.configuration.V1_0.IsdbtFrontendSettings getIsdbtFrontendSettings_optional(); method @Nullable public java.math.BigInteger getRemoveOutputPid(); + method @Nullable public boolean getSupportBlindScan(); method @Nullable public android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum getType(); method public void setAtscFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.AtscFrontendSettings); method public void setConnectToCicamId(@Nullable java.math.BigInteger); @@ -381,6 +382,7 @@ package android.media.tuner.testing.configuration.V1_0 { method public void setIsdbsFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.IsdbsFrontendSettings); method public void setIsdbtFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.IsdbtFrontendSettings); method public void setRemoveOutputPid(@Nullable java.math.BigInteger); + method public void setSupportBlindScan(@Nullable boolean); method public void setType(@Nullable android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum); } diff --git a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd index c51ac5183c..eafaca9a30 100644 --- a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd +++ b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd @@ -162,6 +162,7 @@ + -- GitLab From 3b732895a82c18f86d43dc8fa06c3754baa3730a Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 20 Dec 2023 16:05:01 -0800 Subject: [PATCH 086/418] audio r_submix: Suggest configuration from the peer When there is a pipe established for a remote submix device, suggest the configuration of the peer when opening the other end. Refactor SubmixRoute management to move it out from StreamRemoteSubmix so that ModuleRemoteSubmix could also use it. Bug: 294962274 Test: atest audiorouting_tests Change-Id: Ib31a662e7b65b92c614dc441a01160cae3485f3a --- .../include/core-impl/ModuleRemoteSubmix.h | 4 ++ .../include/core-impl/StreamRemoteSubmix.h | 8 --- .../default/r_submix/ModuleRemoteSubmix.cpp | 60 ++++++++++++++++++- .../default/r_submix/StreamRemoteSubmix.cpp | 38 ++---------- audio/aidl/default/r_submix/SubmixRoute.cpp | 58 ++++++++++++++---- audio/aidl/default/r_submix/SubmixRoute.h | 31 +++++++++- 6 files changed, 145 insertions(+), 54 deletions(-) diff --git a/audio/aidl/default/include/core-impl/ModuleRemoteSubmix.h b/audio/aidl/default/include/core-impl/ModuleRemoteSubmix.h index e89c6edd03..613ac6209c 100644 --- a/audio/aidl/default/include/core-impl/ModuleRemoteSubmix.h +++ b/audio/aidl/default/include/core-impl/ModuleRemoteSubmix.h @@ -29,6 +29,10 @@ class ModuleRemoteSubmix : public Module { // IModule interfaces ndk::ScopedAStatus getMicMute(bool* _aidl_return) override; ndk::ScopedAStatus setMicMute(bool in_mute) override; + ndk::ScopedAStatus setAudioPortConfig( + const ::aidl::android::media::audio::common::AudioPortConfig& in_requested, + ::aidl::android::media::audio::common::AudioPortConfig* out_suggested, + bool* _aidl_return) override; // Module interfaces ndk::ScopedAStatus createInputStream( diff --git a/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h b/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h index ee10abf087..cc06881c7b 100644 --- a/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h +++ b/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h @@ -16,7 +16,6 @@ #pragma once -#include #include #include "core-impl/Stream.h" @@ -56,13 +55,6 @@ class StreamRemoteSubmix : public StreamCommonImpl { r_submix::AudioConfig mStreamConfig; std::shared_ptr mCurrentRoute = nullptr; - // Mutex lock to protect vector of submix routes, each of these submix routes have their mutex - // locks and none of the mutex locks should be taken together. - static std::mutex sSubmixRoutesLock; - static std::map<::aidl::android::media::audio::common::AudioDeviceAddress, - std::shared_ptr> - sSubmixRoutes GUARDED_BY(sSubmixRoutesLock); - // limit for number of read error log entries to avoid spamming the logs static constexpr int kMaxReadErrorLogs = 5; // The duration of kMaxReadFailureAttempts * READ_ATTEMPT_SLEEP_MS must be strictly inferior diff --git a/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp b/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp index 1a5ee00885..47ade4981f 100644 --- a/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp +++ b/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp @@ -27,14 +27,36 @@ using aidl::android::hardware::audio::common::SinkMetadata; using aidl::android::hardware::audio::common::SourceMetadata; +using aidl::android::media::audio::common::AudioDeviceAddress; using aidl::android::media::audio::common::AudioFormatType; +using aidl::android::media::audio::common::AudioIoFlags; using aidl::android::media::audio::common::AudioOffloadInfo; using aidl::android::media::audio::common::AudioPort; using aidl::android::media::audio::common::AudioPortConfig; +using aidl::android::media::audio::common::AudioPortExt; +using aidl::android::media::audio::common::AudioProfile; +using aidl::android::media::audio::common::Int; using aidl::android::media::audio::common::MicrophoneInfo; namespace aidl::android::hardware::audio::core { +namespace { + +std::optional getRemoteEndConfig(const AudioPort& audioPort) { + const auto& deviceAddress = audioPort.ext.get().device.address; + const bool isInput = audioPort.flags.getTag() == AudioIoFlags::input; + if (auto submixRoute = r_submix::SubmixRoute::findRoute(deviceAddress); + submixRoute != nullptr) { + if ((isInput && submixRoute->isStreamOutOpen()) || + (!isInput && submixRoute->isStreamInOpen())) { + return submixRoute->getPipeConfig(); + } + } + return {}; +} + +} // namespace + ndk::ScopedAStatus ModuleRemoteSubmix::getMicMute(bool* _aidl_return __unused) { LOG(DEBUG) << __func__ << ": is not supported"; return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); @@ -45,6 +67,26 @@ ndk::ScopedAStatus ModuleRemoteSubmix::setMicMute(bool in_mute __unused) { return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); } +ndk::ScopedAStatus ModuleRemoteSubmix::setAudioPortConfig(const AudioPortConfig& in_requested, + AudioPortConfig* out_suggested, + bool* _aidl_return) { + auto fillConfig = [this](const AudioPort& port, AudioPortConfig* config) { + if (port.ext.getTag() == AudioPortExt::device) { + if (auto pipeConfig = getRemoteEndConfig(port); pipeConfig.has_value()) { + LOG(DEBUG) << "setAudioPortConfig: suggesting port config from the remote end."; + config->format = pipeConfig->format; + config->channelMask = pipeConfig->channelLayout; + config->sampleRate = Int{.value = pipeConfig->sampleRate}; + config->flags = port.flags; + config->ext = port.ext; + return true; + } + } + return generateDefaultPortConfig(port, config); + }; + return Module::setAudioPortConfigImpl(in_requested, fillConfig, out_suggested, _aidl_return); +} + ndk::ScopedAStatus ModuleRemoteSubmix::createInputStream( StreamContext&& context, const SinkMetadata& sinkMetadata, const std::vector& microphones, std::shared_ptr* result) { @@ -68,7 +110,22 @@ ndk::ScopedAStatus ModuleRemoteSubmix::createOutputStream( } ndk::ScopedAStatus ModuleRemoteSubmix::populateConnectedDevicePort(AudioPort* audioPort, int32_t) { - // Find the corresponding mix port and copy its profiles. + if (audioPort->ext.getTag() != AudioPortExt::device) { + LOG(ERROR) << __func__ << ": not a device port: " << audioPort->toString(); + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); + } + // If there is already a pipe with a stream for the port address, provide its configuration as + // the only option. Otherwise, find the corresponding mix port and copy its profiles. + if (auto pipeConfig = getRemoteEndConfig(*audioPort); pipeConfig.has_value()) { + audioPort->profiles.clear(); + audioPort->profiles.push_back(AudioProfile{ + .format = pipeConfig->format, + .channelMasks = std::vector({pipeConfig->channelLayout}), + .sampleRates = std::vector({pipeConfig->sampleRate})}); + LOG(DEBUG) << __func__ << ": populated from remote end as: " << audioPort->toString(); + return ndk::ScopedAStatus::ok(); + } + // At this moment, the port has the same ID as the template port, see connectExternalDevice. std::vector routes = getAudioRoutesForAudioPortImpl(audioPort->id); if (routes.empty()) { @@ -87,6 +144,7 @@ ndk::ScopedAStatus ModuleRemoteSubmix::populateConnectedDevicePort(AudioPort* au RETURN_STATUS_IF_ERROR(getAudioPort(route->sinkPortId, &mixPort)); } audioPort->profiles = mixPort.profiles; + LOG(DEBUG) << __func__ << ": populated from the mix port as: " << audioPort->toString(); return ndk::ScopedAStatus::ok(); } diff --git a/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp b/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp index d238aa42b3..df706ac026 100644 --- a/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp +++ b/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp @@ -43,26 +43,10 @@ StreamRemoteSubmix::StreamRemoteSubmix(StreamContext* context, const Metadata& m mStreamConfig.sampleRate = context->getSampleRate(); } -std::mutex StreamRemoteSubmix::sSubmixRoutesLock; -std::map> StreamRemoteSubmix::sSubmixRoutes; - ::android::status_t StreamRemoteSubmix::init() { - { - std::lock_guard guard(sSubmixRoutesLock); - auto routeItr = sSubmixRoutes.find(mDeviceAddress); - if (routeItr != sSubmixRoutes.end()) { - mCurrentRoute = routeItr->second; - } - // If route is not available for this port, add it. - if (mCurrentRoute == nullptr) { - // Initialize the pipe. - mCurrentRoute = std::make_shared(); - if (::android::OK != mCurrentRoute->createPipe(mStreamConfig)) { - LOG(ERROR) << __func__ << ": create pipe failed"; - return ::android::NO_INIT; - } - sSubmixRoutes.emplace(mDeviceAddress, mCurrentRoute); - } + mCurrentRoute = SubmixRoute::findOrCreateRoute(mDeviceAddress, mStreamConfig); + if (mCurrentRoute == nullptr) { + return ::android::NO_INIT; } if (!mCurrentRoute->isStreamConfigValid(mIsInput, mStreamConfig)) { LOG(ERROR) << __func__ << ": invalid stream config"; @@ -80,7 +64,6 @@ std::map> StreamRemoteSubmix::s return ::android::NO_INIT; } } - mCurrentRoute->openStream(mIsInput); return ::android::OK; } @@ -114,14 +97,7 @@ std::map> StreamRemoteSubmix::s ndk::ScopedAStatus StreamRemoteSubmix::prepareToClose() { if (!mIsInput) { - std::shared_ptr route = nullptr; - { - std::lock_guard guard(sSubmixRoutesLock); - auto routeItr = sSubmixRoutes.find(mDeviceAddress); - if (routeItr != sSubmixRoutes.end()) { - route = routeItr->second; - } - } + std::shared_ptr route = SubmixRoute::findRoute(mDeviceAddress); if (route != nullptr) { sp sink = route->getSink(); if (sink == nullptr) { @@ -148,9 +124,7 @@ void StreamRemoteSubmix::shutdown() { if (!mCurrentRoute->hasAtleastOneStreamOpen()) { mCurrentRoute->releasePipe(); LOG(DEBUG) << __func__ << ": pipe destroyed"; - - std::lock_guard guard(sSubmixRoutesLock); - sSubmixRoutes.erase(mDeviceAddress); + SubmixRoute::removeRoute(mDeviceAddress); } mCurrentRoute.reset(); } @@ -201,7 +175,7 @@ long StreamRemoteSubmix::getDelayInUsForFrameCount(size_t frameCount) { // Calculate the maximum size of the pipe buffer in frames for the specified stream. size_t StreamRemoteSubmix::getStreamPipeSizeInFrames() { - auto pipeConfig = mCurrentRoute->mPipeConfig; + auto pipeConfig = mCurrentRoute->getPipeConfig(); const size_t maxFrameSize = std::max(mStreamConfig.frameSize, pipeConfig.frameSize); return (pipeConfig.frameCount * pipeConfig.frameSize) / maxFrameSize; } diff --git a/audio/aidl/default/r_submix/SubmixRoute.cpp b/audio/aidl/default/r_submix/SubmixRoute.cpp index 235c9a3f32..7d706c27ce 100644 --- a/audio/aidl/default/r_submix/SubmixRoute.cpp +++ b/audio/aidl/default/r_submix/SubmixRoute.cpp @@ -23,9 +23,49 @@ #include "SubmixRoute.h" using aidl::android::hardware::audio::common::getChannelCount; +using aidl::android::media::audio::common::AudioDeviceAddress; namespace aidl::android::hardware::audio::core::r_submix { +// static +SubmixRoute::RoutesMonitor SubmixRoute::getRoutes() { + static std::mutex submixRoutesLock; + static RoutesMap submixRoutes; + return RoutesMonitor(submixRoutesLock, submixRoutes); +} + +// static +std::shared_ptr SubmixRoute::findOrCreateRoute(const AudioDeviceAddress& deviceAddress, + const AudioConfig& pipeConfig) { + auto routes = getRoutes(); + auto routeItr = routes->find(deviceAddress); + if (routeItr != routes->end()) { + return routeItr->second; + } + auto route = std::make_shared(); + if (::android::OK != route->createPipe(pipeConfig)) { + LOG(ERROR) << __func__ << ": create pipe failed"; + return nullptr; + } + routes->emplace(deviceAddress, route); + return route; +} + +// static +std::shared_ptr SubmixRoute::findRoute(const AudioDeviceAddress& deviceAddress) { + auto routes = getRoutes(); + auto routeItr = routes->find(deviceAddress); + if (routeItr != routes->end()) { + return routeItr->second; + } + return nullptr; +} + +// static +void SubmixRoute::removeRoute(const AudioDeviceAddress& deviceAddress) { + getRoutes()->erase(deviceAddress); +} + // Verify a submix input or output stream can be opened. bool SubmixRoute::isStreamConfigValid(bool isInput, const AudioConfig& streamConfig) { // If the stream is already open, don't open it again. @@ -44,6 +84,7 @@ bool SubmixRoute::isStreamConfigValid(bool isInput, const AudioConfig& streamCon // Compare this stream config with existing pipe config, returning false if they do *not* // match, true otherwise. bool SubmixRoute::isStreamConfigCompatible(const AudioConfig& streamConfig) { + std::lock_guard guard(mLock); if (streamConfig.channelLayout != mPipeConfig.channelLayout) { LOG(ERROR) << __func__ << ": channel count mismatch, stream channels = " << streamConfig.channelLayout.toString() @@ -162,17 +203,14 @@ void SubmixRoute::closeStream(bool isInput) { LOG(FATAL) << __func__ << ": Negotiation for the source failed, index = " << index; return ::android::BAD_INDEX; } - LOG(VERBOSE) << __func__ << ": created pipe"; - - mPipeConfig = streamConfig; - mPipeConfig.frameCount = sink->maxFrames(); - - LOG(VERBOSE) << __func__ << ": Pipe frame size : " << mPipeConfig.frameSize - << ", pipe frames : " << mPipeConfig.frameCount; + LOG(VERBOSE) << __func__ << ": Pipe frame size : " << streamConfig.frameSize + << ", pipe frames : " << sink->maxFrames(); // Save references to the source and sink. { std::lock_guard guard(mLock); + mPipeConfig = streamConfig; + mPipeConfig.frameCount = sink->maxFrames(); mSink = std::move(sink); mSource = std::move(source); } @@ -181,15 +219,15 @@ void SubmixRoute::closeStream(bool isInput) { } // Release references to the sink and source. -void SubmixRoute::releasePipe() { +AudioConfig SubmixRoute::releasePipe() { std::lock_guard guard(mLock); mSink.clear(); mSource.clear(); + return mPipeConfig; } ::android::status_t SubmixRoute::resetPipe() { - releasePipe(); - return createPipe(mPipeConfig); + return createPipe(releasePipe()); } void SubmixRoute::standby(bool isInput) { diff --git a/audio/aidl/default/r_submix/SubmixRoute.h b/audio/aidl/default/r_submix/SubmixRoute.h index 252b1c9524..160df41265 100644 --- a/audio/aidl/default/r_submix/SubmixRoute.h +++ b/audio/aidl/default/r_submix/SubmixRoute.h @@ -25,6 +25,7 @@ #include #include +#include #include using aidl::android::media::audio::common::AudioChannelLayout; @@ -60,7 +61,13 @@ struct AudioConfig { class SubmixRoute { public: - AudioConfig mPipeConfig; + static std::shared_ptr findOrCreateRoute( + const ::aidl::android::media::audio::common::AudioDeviceAddress& deviceAddress, + const AudioConfig& pipeConfig); + static std::shared_ptr findRoute( + const ::aidl::android::media::audio::common::AudioDeviceAddress& deviceAddress); + static void removeRoute( + const ::aidl::android::media::audio::common::AudioDeviceAddress& deviceAddress); bool isStreamInOpen() { std::lock_guard guard(mLock); @@ -90,6 +97,10 @@ class SubmixRoute { std::lock_guard guard(mLock); return mSource; } + AudioConfig getPipeConfig() { + std::lock_guard guard(mLock); + return mPipeConfig; + } bool isStreamConfigValid(bool isInput, const AudioConfig& streamConfig); void closeStream(bool isInput); @@ -98,17 +109,31 @@ class SubmixRoute { bool hasAtleastOneStreamOpen(); int notifyReadError(); void openStream(bool isInput); - void releasePipe(); + AudioConfig releasePipe(); ::android::status_t resetPipe(); bool shouldBlockWrite(); void standby(bool isInput); long updateReadCounterFrames(size_t frameCount); private: + using RoutesMap = std::map<::aidl::android::media::audio::common::AudioDeviceAddress, + std::shared_ptr>; + class RoutesMonitor { + public: + RoutesMonitor(std::mutex& mutex, RoutesMap& routes) : mLock(mutex), mRoutes(routes) {} + RoutesMap* operator->() { return &mRoutes; } + + private: + std::lock_guard mLock; + RoutesMap& mRoutes; + }; + + static RoutesMonitor getRoutes(); + bool isStreamConfigCompatible(const AudioConfig& streamConfig); std::mutex mLock; - + AudioConfig mPipeConfig GUARDED_BY(mLock); bool mStreamInOpen GUARDED_BY(mLock) = false; int mInputRefCount GUARDED_BY(mLock) = 0; bool mStreamInStandby GUARDED_BY(mLock) = true; -- GitLab From 9bba0a7215d75537947e19ef5621a9406f10f941 Mon Sep 17 00:00:00 2001 From: Aleti Nageshwar Reddy Date: Thu, 21 Dec 2023 12:02:55 +0530 Subject: [PATCH 087/418] P2p: Add OuiKeyedData List in ExtListen API Add configureExtListenWithParams API to configure the vendor data as OuiKeyedData List. Bug: 296069900 Test: atest VtsHalWifiSupplicantP2pIfaceTargetTest Change-Id: I7a6394b751ab61e1ca5153ce6ca6ddc55792900c --- .../wifi/supplicant/ISupplicantP2pIface.aidl | 4 ++ .../wifi/supplicant/P2pExtListenInfo.aidl | 40 +++++++++++++++++++ .../wifi/supplicant/ISupplicantP2pIface.aidl | 21 ++++++++++ .../wifi/supplicant/P2pExtListenInfo.aidl | 39 ++++++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl create mode 100644 wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl index 0729646c9a..05a7548345 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -42,6 +42,9 @@ interface ISupplicantP2pIface { void cancelConnect(); void cancelServiceDiscovery(in long identifier); void cancelWps(in String groupIfName); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use configureExtListenWithParams. + */ void configureExtListen(in int periodInMillis, in int intervalInMillis); /** * @deprecated This method is deprecated from AIDL v3, newer HALs should use connectWithParams. @@ -111,4 +114,5 @@ interface ISupplicantP2pIface { void configureEapolIpAddressAllocationParams(in int ipAddressGo, in int ipAddressMask, in int ipAddressStart, in int ipAddressEnd); String connectWithParams(in android.hardware.wifi.supplicant.P2pConnectInfo connectInfo); void findWithParams(in android.hardware.wifi.supplicant.P2pDiscoveryInfo discoveryInfo); + void configureExtListenWithParams(in android.hardware.wifi.supplicant.P2pExtListenInfo extListenInfo); } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl new file mode 100644 index 0000000000..b4d8e9d92e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pExtListenInfo { + int periodMs; + int intervalMs; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl index 983ed154a4..8b78a4a286 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -24,6 +24,7 @@ import android.hardware.wifi.supplicant.IfaceType; import android.hardware.wifi.supplicant.MiracastMode; import android.hardware.wifi.supplicant.P2pConnectInfo; import android.hardware.wifi.supplicant.P2pDiscoveryInfo; +import android.hardware.wifi.supplicant.P2pExtListenInfo; import android.hardware.wifi.supplicant.P2pFrameTypeMask; import android.hardware.wifi.supplicant.P2pGroupCapabilityMask; import android.hardware.wifi.supplicant.WpsConfigMethods; @@ -165,6 +166,9 @@ interface ISupplicantP2pIface { * (with interval obviously having to be larger than or equal to duration). * If the P2P module is not idle at the time the Extended Listen Timing * timeout occurs, the Listen State operation must be skipped. + *

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * configureExtListenWithParams. * * @param periodInMillis Period in milliseconds. * @param intervalInMillis Interval in milliseconds. @@ -882,4 +886,21 @@ interface ISupplicantP2pIface { * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| */ void findWithParams(in P2pDiscoveryInfo discoveryInfo); + + /** + * Configure Extended Listen Timing. + * + * If enabled, listen state must be entered every |intervalMs| for at + * least |periodMs|. Both values have acceptable range of 1-65535 + * (note that the interval must be larger than or equal to the duration). + * If the P2P module is not idle at the time the Extended Listen Timing + * timeout occurs, the Listen State operation must be skipped. + * + * @param extListenInfo Parameters to configure extended listening timing. + * @throws ServiceSpecificException with one of the following values: + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + void configureExtListenWithParams(in P2pExtListenInfo extListenInfo); } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl new file mode 100644 index 0000000000..1086c94c08 --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; + +/** + * Parameters used to configure the P2P Extended Listen Interval. + */ +@VintfStability +parcelable P2pExtListenInfo { + /** + * Period in milliseconds. + */ + int periodMs; + /** + * Interval in milliseconds. + */ + int intervalMs; + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} -- GitLab From a88cf60b87b23d813e9c1ddd32fa892034b5f821 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 13 Dec 2023 14:35:11 -0800 Subject: [PATCH 088/418] audio: Fix BT AIDL HAL module implementation In order to align with legacy behavior, when opening a stream, the module must suggest the current configuration of the BT session. For that to work, the BT device proxy must be opened prior to creating a stream, code moved to ModuleBluetooth. Fix minor inconsistencies and bugs found during testing. Bug: 301213930 Bug: 316027906 Test: atest pts-bot Change-Id: I04ddaf73be82f872a3f32a789563c3cbd648eb61 --- .../default/bluetooth/DevicePortProxy.cpp | 37 +-- .../default/bluetooth/ModuleBluetooth.cpp | 232 +++++++++++++-- .../default/bluetooth/StreamBluetooth.cpp | 266 +++++++----------- .../include/core-impl/DevicePortProxy.h | 20 +- .../include/core-impl/ModuleBluetooth.h | 30 ++ .../include/core-impl/StreamBluetooth.h | 49 ++-- .../aidl_session/BluetoothAudioSession.cpp | 4 +- 7 files changed, 395 insertions(+), 243 deletions(-) diff --git a/audio/aidl/default/bluetooth/DevicePortProxy.cpp b/audio/aidl/default/bluetooth/DevicePortProxy.cpp index 1be0875a55..d772c20090 100644 --- a/audio/aidl/default/bluetooth/DevicePortProxy.cpp +++ b/audio/aidl/default/bluetooth/DevicePortProxy.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define LOG_TAG "AHAL_BluetoothPortProxy" +#define LOG_TAG "AHAL_BluetoothAudioPort" #include #include @@ -254,12 +254,7 @@ bool BluetoothAudioPortAidl::inUse() const { return (mCookie != ::aidl::android::hardware::bluetooth::audio::kObserversCookieUndefined); } -bool BluetoothAudioPortAidl::getPreferredDataIntervalUs(size_t* interval_us) const { - if (!interval_us) { - LOG(ERROR) << __func__ << ": bad input arg"; - return false; - } - +bool BluetoothAudioPortAidl::getPreferredDataIntervalUs(size_t& interval_us) const { if (!inUse()) { LOG(ERROR) << __func__ << ": BluetoothAudioPortAidl is not in use"; return false; @@ -272,16 +267,11 @@ bool BluetoothAudioPortAidl::getPreferredDataIntervalUs(size_t* interval_us) con return false; } - *interval_us = hal_audio_cfg.get().dataIntervalUs; + interval_us = hal_audio_cfg.get().dataIntervalUs; return true; } -bool BluetoothAudioPortAidl::loadAudioConfig(PcmConfiguration* audio_cfg) const { - if (!audio_cfg) { - LOG(ERROR) << __func__ << ": bad input arg"; - return false; - } - +bool BluetoothAudioPortAidl::loadAudioConfig(PcmConfiguration& audio_cfg) { if (!inUse()) { LOG(ERROR) << __func__ << ": BluetoothAudioPortAidl is not in use"; return false; @@ -293,15 +283,26 @@ bool BluetoothAudioPortAidl::loadAudioConfig(PcmConfiguration* audio_cfg) const LOG(ERROR) << __func__ << ": unsupported audio cfg tag"; return false; } - *audio_cfg = hal_audio_cfg.get(); + audio_cfg = hal_audio_cfg.get(); LOG(VERBOSE) << __func__ << debugMessage() << ", state*=" << getState() << ", PcmConfig=[" - << audio_cfg->toString() << "]"; - if (audio_cfg->channelMode == ChannelMode::UNKNOWN) { + << audio_cfg.toString() << "]"; + if (audio_cfg.channelMode == ChannelMode::UNKNOWN) { return false; } return true; } +bool BluetoothAudioPortAidlOut::loadAudioConfig(PcmConfiguration& audio_cfg) { + if (!BluetoothAudioPortAidl::loadAudioConfig(audio_cfg)) return false; + // WAR to support Mono / 16 bits per sample as the Bluetooth stack requires + if (audio_cfg.channelMode == ChannelMode::MONO && audio_cfg.bitsPerSample == 16) { + mIsStereoToMono = true; + audio_cfg.channelMode = ChannelMode::STEREO; + LOG(INFO) << __func__ << ": force channels = to be AUDIO_CHANNEL_OUT_STEREO"; + } + return true; +} + bool BluetoothAudioPortAidl::standby() { if (!inUse()) { LOG(ERROR) << __func__ << ": BluetoothAudioPortAidl is not in use"; @@ -435,7 +436,7 @@ bool BluetoothAudioPortAidl::suspend() { retval = condWaitState(BluetoothStreamState::SUSPENDING); } else { LOG(ERROR) << __func__ << debugMessage() << ", state=" << getState() - << " Hal fails"; + << " failure to suspend stream"; } } } diff --git a/audio/aidl/default/bluetooth/ModuleBluetooth.cpp b/audio/aidl/default/bluetooth/ModuleBluetooth.cpp index 03abd34f4c..9084b3044c 100644 --- a/audio/aidl/default/bluetooth/ModuleBluetooth.cpp +++ b/audio/aidl/default/bluetooth/ModuleBluetooth.cpp @@ -24,13 +24,25 @@ using aidl::android::hardware::audio::common::SinkMetadata; using aidl::android::hardware::audio::common::SourceMetadata; +using aidl::android::hardware::bluetooth::audio::ChannelMode; +using aidl::android::hardware::bluetooth::audio::PcmConfiguration; +using aidl::android::media::audio::common::AudioChannelLayout; +using aidl::android::media::audio::common::AudioConfigBase; using aidl::android::media::audio::common::AudioDeviceDescription; using aidl::android::media::audio::common::AudioDeviceType; +using aidl::android::media::audio::common::AudioFormatDescription; +using aidl::android::media::audio::common::AudioFormatType; +using aidl::android::media::audio::common::AudioIoFlags; using aidl::android::media::audio::common::AudioOffloadInfo; using aidl::android::media::audio::common::AudioPort; +using aidl::android::media::audio::common::AudioPortConfig; using aidl::android::media::audio::common::AudioPortExt; +using aidl::android::media::audio::common::AudioProfile; +using aidl::android::media::audio::common::Int; using aidl::android::media::audio::common::MicrophoneInfo; +using aidl::android::media::audio::common::PcmType; using android::bluetooth::audio::aidl::BluetoothAudioPortAidl; +using android::bluetooth::audio::aidl::BluetoothAudioPortAidlIn; using android::bluetooth::audio::aidl::BluetoothAudioPortAidlOut; // TODO(b/312265159) bluetooth audio should be in its own process @@ -39,6 +51,35 @@ extern "C" binder_status_t createIBluetoothAudioProviderFactory(); namespace aidl::android::hardware::audio::core { +namespace { + +PcmType pcmTypeFromBitsPerSample(int8_t bitsPerSample) { + if (bitsPerSample == 8) + return PcmType::UINT_8_BIT; + else if (bitsPerSample == 16) + return PcmType::INT_16_BIT; + else if (bitsPerSample == 24) + return PcmType::INT_24_BIT; + else if (bitsPerSample == 32) + return PcmType::INT_32_BIT; + ALOGE("Unsupported bitsPerSample: %d", bitsPerSample); + return PcmType::DEFAULT; +} + +AudioChannelLayout channelLayoutFromChannelMode(ChannelMode mode) { + if (mode == ChannelMode::MONO) { + return AudioChannelLayout::make( + AudioChannelLayout::LAYOUT_MONO); + } else if (mode == ChannelMode::STEREO || mode == ChannelMode::DUALMONO) { + return AudioChannelLayout::make( + AudioChannelLayout::LAYOUT_STEREO); + } + ALOGE("Unsupported channel mode: %s", toString(mode).c_str()); + return AudioChannelLayout{}; +} + +} // namespace + ModuleBluetooth::ModuleBluetooth(std::unique_ptr&& config) : Module(Type::BLUETOOTH, std::move(config)) { // TODO(b/312265159) bluetooth audio should be in its own process @@ -95,66 +136,130 @@ ndk::ScopedAStatus ModuleBluetooth::setMicMute(bool in_mute __unused) { return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); } +ndk::ScopedAStatus ModuleBluetooth::setAudioPortConfig(const AudioPortConfig& in_requested, + AudioPortConfig* out_suggested, + bool* _aidl_return) { + auto fillConfig = [this](const AudioPort& port, AudioPortConfig* config) { + if (port.ext.getTag() == AudioPortExt::device) { + CachedProxy proxy; + auto status = findOrCreateProxy(port, proxy); + if (status.isOk()) { + const auto& pcmConfig = proxy.pcmConfig; + LOG(DEBUG) << "setAudioPortConfig: suggesting port config from " + << pcmConfig.toString(); + const auto pcmType = pcmTypeFromBitsPerSample(pcmConfig.bitsPerSample); + const auto channelMask = channelLayoutFromChannelMode(pcmConfig.channelMode); + if (pcmType != PcmType::DEFAULT && channelMask != AudioChannelLayout{}) { + config->format = + AudioFormatDescription{.type = AudioFormatType::PCM, .pcm = pcmType}; + config->channelMask = channelMask; + config->sampleRate = Int{.value = pcmConfig.sampleRateHz}; + config->flags = port.flags; + config->ext = port.ext; + return true; + } + } + } + return generateDefaultPortConfig(port, config); + }; + return Module::setAudioPortConfigImpl(in_requested, fillConfig, out_suggested, _aidl_return); +} + +ndk::ScopedAStatus ModuleBluetooth::checkAudioPatchEndpointsMatch( + const std::vector& sources, const std::vector& sinks) { + // Both sources and sinks must be non-empty, this is guaranteed by 'setAudioPatch'. + const bool isInput = sources[0]->ext.getTag() == AudioPortExt::device; + const int32_t devicePortId = isInput ? sources[0]->portId : sinks[0]->portId; + const auto proxyIt = mProxies.find(devicePortId); + if (proxyIt == mProxies.end()) return ndk::ScopedAStatus::ok(); + const auto& pcmConfig = proxyIt->second.pcmConfig; + const AudioPortConfig* mixPortConfig = isInput ? sinks[0] : sources[0]; + if (!StreamBluetooth::checkConfigParams( + pcmConfig, AudioConfigBase{.sampleRate = mixPortConfig->sampleRate->value, + .channelMask = *(mixPortConfig->channelMask), + .format = *(mixPortConfig->format)})) { + return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); + } + if (int32_t handle = mixPortConfig->ext.get().handle; handle > 0) { + mConnections.insert(std::pair(handle, devicePortId)); + } + return ndk::ScopedAStatus::ok(); +} + +void ModuleBluetooth::onExternalDeviceConnectionChanged(const AudioPort& audioPort, + bool connected) { + if (!connected) mProxies.erase(audioPort.id); +} + ndk::ScopedAStatus ModuleBluetooth::createInputStream( StreamContext&& context, const SinkMetadata& sinkMetadata, const std::vector& microphones, std::shared_ptr* result) { + CachedProxy proxy; + RETURN_STATUS_IF_ERROR(fetchAndCheckProxy(context, proxy)); return createStreamInstance(result, std::move(context), sinkMetadata, - microphones, getBtProfileManagerHandles()); + microphones, getBtProfileManagerHandles(), + proxy.ptr, proxy.pcmConfig); } ndk::ScopedAStatus ModuleBluetooth::createOutputStream( StreamContext&& context, const SourceMetadata& sourceMetadata, const std::optional& offloadInfo, std::shared_ptr* result) { + CachedProxy proxy; + RETURN_STATUS_IF_ERROR(fetchAndCheckProxy(context, proxy)); return createStreamInstance(result, std::move(context), sourceMetadata, - offloadInfo, getBtProfileManagerHandles()); + offloadInfo, getBtProfileManagerHandles(), + proxy.ptr, proxy.pcmConfig); } -ndk::ScopedAStatus ModuleBluetooth::populateConnectedDevicePort(AudioPort* audioPort, int32_t) { +ndk::ScopedAStatus ModuleBluetooth::populateConnectedDevicePort(AudioPort* audioPort, + int32_t nextPortId) { if (audioPort->ext.getTag() != AudioPortExt::device) { LOG(ERROR) << __func__ << ": not a device port: " << audioPort->toString(); return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); } + if (!::aidl::android::hardware::bluetooth::audio::BluetoothAudioSession::IsAidlAvailable()) { + LOG(ERROR) << __func__ << ": IBluetoothAudioProviderFactory AIDL service not available"; + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); + } const auto& devicePort = audioPort->ext.get(); const auto& description = devicePort.device.type; - // Since the configuration of the BT module is static, there is nothing to populate here. - // However, this method must return an error when the device can not be connected, - // this is determined by the status of BT profiles. + // This method must return an error when the device can not be connected. if (description.connection == AudioDeviceDescription::CONNECTION_BT_A2DP) { bool isA2dpEnabled = false; if (!!mBluetoothA2dp) { RETURN_STATUS_IF_ERROR((*mBluetoothA2dp).isEnabled(&isA2dpEnabled)); } LOG(DEBUG) << __func__ << ": isA2dpEnabled: " << isA2dpEnabled; - return isA2dpEnabled ? ndk::ScopedAStatus::ok() - : ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); + if (!isA2dpEnabled) return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); } else if (description.connection == AudioDeviceDescription::CONNECTION_BT_LE) { bool isLeEnabled = false; if (!!mBluetoothLe) { RETURN_STATUS_IF_ERROR((*mBluetoothLe).isEnabled(&isLeEnabled)); } LOG(DEBUG) << __func__ << ": isLeEnabled: " << isLeEnabled; - return isLeEnabled ? ndk::ScopedAStatus::ok() - : ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); + if (!isLeEnabled) return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); } else if (description.connection == AudioDeviceDescription::CONNECTION_WIRELESS && description.type == AudioDeviceType::OUT_HEARING_AID) { - // Hearing aids can use a number of profiles, thus the only way to check - // connectivity is to try to talk to the BT HAL. - if (!::aidl::android::hardware::bluetooth::audio::BluetoothAudioSession:: - IsAidlAvailable()) { - return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); - } - std::shared_ptr proxy = std::shared_ptr( - std::make_shared()); - if (proxy->registerPort(description)) { - LOG(DEBUG) << __func__ << ": registered hearing aid port"; - proxy->unregisterPort(); - return ndk::ScopedAStatus::ok(); - } - LOG(DEBUG) << __func__ << ": failed to register hearing aid port"; - return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); + // Hearing aids can use a number of profiles, no single switch exists. + } else { + LOG(ERROR) << __func__ << ": unsupported device type: " << audioPort->toString(); + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); } - LOG(ERROR) << __func__ << ": unsupported device type: " << audioPort->toString(); - return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); + CachedProxy proxy; + RETURN_STATUS_IF_ERROR(createProxy(*audioPort, nextPortId, proxy)); + // Since the device is already connected and configured by the BT stack, provide + // the current configuration instead of all possible profiles. + const auto& pcmConfig = proxy.pcmConfig; + audioPort->profiles.clear(); + audioPort->profiles.push_back( + AudioProfile{.format = AudioFormatDescription{.type = AudioFormatType::PCM, + .pcm = pcmTypeFromBitsPerSample( + pcmConfig.bitsPerSample)}, + .channelMasks = std::vector( + {channelLayoutFromChannelMode(pcmConfig.channelMode)}), + .sampleRates = std::vector({pcmConfig.sampleRateHz})}); + LOG(DEBUG) << __func__ << ": " << audioPort->toString(); + return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus ModuleBluetooth::onMasterMuteChanged(bool) { @@ -167,4 +272,77 @@ ndk::ScopedAStatus ModuleBluetooth::onMasterVolumeChanged(float) { return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); } +int32_t ModuleBluetooth::getNominalLatencyMs(const AudioPortConfig& portConfig) { + const auto connectionsIt = mConnections.find(portConfig.ext.get().handle); + if (connectionsIt != mConnections.end()) { + const auto proxyIt = mProxies.find(connectionsIt->second); + if (proxyIt != mProxies.end()) { + auto proxy = proxyIt->second.ptr; + size_t dataIntervalUs = 0; + if (!proxy->getPreferredDataIntervalUs(dataIntervalUs)) { + LOG(WARNING) << __func__ << ": could not fetch preferred data interval"; + } + const bool isInput = portConfig.flags->getTag() == AudioIoFlags::input; + return isInput ? StreamInBluetooth::getNominalLatencyMs(dataIntervalUs) + : StreamOutBluetooth::getNominalLatencyMs(dataIntervalUs); + } + } + LOG(ERROR) << __func__ << ": no connection or proxy found for " << portConfig.toString(); + return Module::getNominalLatencyMs(portConfig); +} + +ndk::ScopedAStatus ModuleBluetooth::createProxy(const AudioPort& audioPort, int32_t instancePortId, + CachedProxy& proxy) { + const bool isInput = audioPort.flags.getTag() == AudioIoFlags::input; + proxy.ptr = isInput ? std::shared_ptr( + std::make_shared()) + : std::shared_ptr( + std::make_shared()); + const auto& devicePort = audioPort.ext.get(); + if (const auto device = devicePort.device.type; !proxy.ptr->registerPort(device)) { + LOG(ERROR) << __func__ << ": failed to register BT port for " << device.toString(); + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); + } + if (!proxy.ptr->loadAudioConfig(proxy.pcmConfig)) { + LOG(ERROR) << __func__ << ": state=" << proxy.ptr->getState() + << ", failed to load audio config"; + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); + } + mProxies.insert(std::pair(instancePortId, proxy)); + return ndk::ScopedAStatus::ok(); +} + +ndk::ScopedAStatus ModuleBluetooth::fetchAndCheckProxy(const StreamContext& context, + CachedProxy& proxy) { + const auto connectionsIt = mConnections.find(context.getMixPortHandle()); + if (connectionsIt != mConnections.end()) { + const auto proxyIt = mProxies.find(connectionsIt->second); + if (proxyIt != mProxies.end()) { + proxy = proxyIt->second; + mProxies.erase(proxyIt); + } + mConnections.erase(connectionsIt); + } + if (proxy.ptr != nullptr) { + if (!StreamBluetooth::checkConfigParams( + proxy.pcmConfig, AudioConfigBase{.sampleRate = context.getSampleRate(), + .channelMask = context.getChannelLayout(), + .format = context.getFormat()})) { + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); + } + } + // Not having a proxy is OK, it may happen in VTS tests when streams are opened on unconnected + // mix ports. + return ndk::ScopedAStatus::ok(); +} + +ndk::ScopedAStatus ModuleBluetooth::findOrCreateProxy(const AudioPort& audioPort, + CachedProxy& proxy) { + if (auto proxyIt = mProxies.find(audioPort.id); proxyIt != mProxies.end()) { + proxy = proxyIt->second; + return ndk::ScopedAStatus::ok(); + } + return createProxy(audioPort, audioPort.id, proxy); +} + } // namespace aidl::android::hardware::audio::core diff --git a/audio/aidl/default/bluetooth/StreamBluetooth.cpp b/audio/aidl/default/bluetooth/StreamBluetooth.cpp index 0cee7f4002..a73af1b6b4 100644 --- a/audio/aidl/default/bluetooth/StreamBluetooth.cpp +++ b/audio/aidl/default/bluetooth/StreamBluetooth.cpp @@ -14,8 +14,9 @@ * limitations under the License. */ -#define LOG_TAG "AHAL_StreamBluetooth" +#include +#define LOG_TAG "AHAL_StreamBluetooth" #include #include #include @@ -31,6 +32,7 @@ using aidl::android::hardware::bluetooth::audio::ChannelMode; using aidl::android::hardware::bluetooth::audio::PcmConfiguration; using aidl::android::hardware::bluetooth::audio::PresentationPosition; using aidl::android::media::audio::common::AudioChannelLayout; +using aidl::android::media::audio::common::AudioConfigBase; using aidl::android::media::audio::common::AudioDevice; using aidl::android::media::audio::common::AudioDeviceAddress; using aidl::android::media::audio::common::AudioFormatDescription; @@ -48,51 +50,33 @@ namespace aidl::android::hardware::audio::core { constexpr int kBluetoothDefaultInputBufferMs = 20; constexpr int kBluetoothDefaultOutputBufferMs = 10; // constexpr int kBluetoothSpatializerOutputBufferMs = 10; +constexpr int kBluetoothDefaultRemoteDelayMs = 200; -// pcm configuration params are not really used by the module StreamBluetooth::StreamBluetooth(StreamContext* context, const Metadata& metadata, - ModuleBluetooth::BtProfileHandles&& btHandles) + ModuleBluetooth::BtProfileHandles&& btHandles, + const std::shared_ptr& btDeviceProxy, + const PcmConfiguration& pcmConfig) : StreamCommonImpl(context, metadata), - mSampleRate(getContext().getSampleRate()), - mChannelLayout(getContext().getChannelLayout()), - mFormat(getContext().getFormat()), mFrameSizeBytes(getContext().getFrameSize()), mIsInput(isInput(metadata)), mBluetoothA2dp(std::move(std::get(btHandles))), - mBluetoothLe(std::move(std::get(btHandles))) { - mPreferredDataIntervalUs = - (mIsInput ? kBluetoothDefaultInputBufferMs : kBluetoothDefaultOutputBufferMs) * 1000; - mPreferredFrameCount = frameCountFromDurationUs(mPreferredDataIntervalUs, mSampleRate); - mIsInitialized = false; - mIsReadyToClose = false; -} + mBluetoothLe(std::move(std::get(btHandles))), + mPreferredDataIntervalUs(pcmConfig.dataIntervalUs != 0 + ? pcmConfig.dataIntervalUs + : (mIsInput ? kBluetoothDefaultInputBufferMs + : kBluetoothDefaultOutputBufferMs) * + 1000), + mPreferredFrameCount( + frameCountFromDurationUs(mPreferredDataIntervalUs, pcmConfig.sampleRateHz)), + mBtDeviceProxy(btDeviceProxy) {} ::android::status_t StreamBluetooth::init() { - return ::android::OK; // defering this till we get AudioDeviceDescription -} - -const StreamCommonInterface::ConnectedDevices& StreamBluetooth::getConnectedDevices() const { std::lock_guard guard(mLock); - return StreamCommonImpl::getConnectedDevices(); -} - -ndk::ScopedAStatus StreamBluetooth::setConnectedDevices( - const std::vector& connectedDevices) { - if (mIsInput && connectedDevices.size() > 1) { - LOG(ERROR) << __func__ << ": wrong device size(" << connectedDevices.size() - << ") for input stream"; - return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); - } - for (const auto& connectedDevice : connectedDevices) { - if (connectedDevice.address.getTag() != AudioDeviceAddress::mac) { - LOG(ERROR) << __func__ << ": bad device address" << connectedDevice.address.toString(); - return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); - } + if (mBtDeviceProxy == nullptr) { + // This is a normal situation in VTS tests. + LOG(INFO) << __func__ << ": no BT HAL proxy, stream is non-functional"; } - std::lock_guard guard(mLock); - RETURN_STATUS_IF_ERROR(StreamCommonImpl::setConnectedDevices(connectedDevices)); - mIsInitialized = false; // updated connected device list, need initialization - return ndk::ScopedAStatus::ok(); + return ::android::OK; } ::android::status_t StreamBluetooth::drain(StreamDescriptor::DrainMode) { @@ -112,167 +96,111 @@ ndk::ScopedAStatus StreamBluetooth::setConnectedDevices( ::android::status_t StreamBluetooth::transfer(void* buffer, size_t frameCount, size_t* actualFrameCount, int32_t* latencyMs) { std::lock_guard guard(mLock); - if (!mIsInitialized || mIsReadyToClose) { - // 'setConnectedDevices' has been called or stream is ready to close, so no transfers + if (mBtDeviceProxy == nullptr || mBtDeviceProxy->getState() == BluetoothStreamState::DISABLED) { *actualFrameCount = 0; *latencyMs = StreamDescriptor::LATENCY_UNKNOWN; return ::android::OK; } *actualFrameCount = 0; *latencyMs = 0; - for (auto proxy : mBtDeviceProxies) { - if (!proxy->start()) { - LOG(ERROR) << __func__ << ": state = " << proxy->getState() << " failed to start "; - return -EIO; - } - const size_t fc = std::min(frameCount, mPreferredFrameCount); - const size_t bytesToTransfer = fc * mFrameSizeBytes; - if (mIsInput) { - const size_t totalRead = proxy->readData(buffer, bytesToTransfer); - *actualFrameCount = std::max(*actualFrameCount, totalRead / mFrameSizeBytes); - } else { - const size_t totalWrite = proxy->writeData(buffer, bytesToTransfer); - *actualFrameCount = std::max(*actualFrameCount, totalWrite / mFrameSizeBytes); - } - PresentationPosition presentation_position; - if (!proxy->getPresentationPosition(presentation_position)) { - LOG(ERROR) << __func__ << ": getPresentationPosition returned error "; - return ::android::UNKNOWN_ERROR; - } - *latencyMs = - std::max(*latencyMs, (int32_t)(presentation_position.remoteDeviceAudioDelayNanos / - NANOS_PER_MILLISECOND)); - } - return ::android::OK; -} - -::android::status_t StreamBluetooth::initialize() { - if (!::aidl::android::hardware::bluetooth::audio::BluetoothAudioSession::IsAidlAvailable()) { - LOG(ERROR) << __func__ << ": IBluetoothAudioProviderFactory service not available"; - return ::android::UNKNOWN_ERROR; + if (!mBtDeviceProxy->start()) { + LOG(ERROR) << __func__ << ": state= " << mBtDeviceProxy->getState() << " failed to start"; + return -EIO; } - if (StreamCommonImpl::getConnectedDevices().empty()) { - LOG(ERROR) << __func__ << ", has no connected devices"; - return ::android::NO_INIT; - } - // unregister older proxies (if any) - for (auto proxy : mBtDeviceProxies) { - proxy->stop(); - proxy->unregisterPort(); + const size_t fc = std::min(frameCount, mPreferredFrameCount); + const size_t bytesToTransfer = fc * mFrameSizeBytes; + if (mIsInput) { + const size_t totalRead = mBtDeviceProxy->readData(buffer, bytesToTransfer); + *actualFrameCount = std::max(*actualFrameCount, totalRead / mFrameSizeBytes); + } else { + const size_t totalWrite = mBtDeviceProxy->writeData(buffer, bytesToTransfer); + *actualFrameCount = std::max(*actualFrameCount, totalWrite / mFrameSizeBytes); } - mBtDeviceProxies.clear(); - for (auto it = StreamCommonImpl::getConnectedDevices().begin(); - it != StreamCommonImpl::getConnectedDevices().end(); ++it) { - std::shared_ptr proxy = - mIsInput ? std::shared_ptr( - std::make_shared()) - : std::shared_ptr( - std::make_shared()); - if (proxy->registerPort(it->type)) { - LOG(ERROR) << __func__ << ": cannot init HAL"; - return ::android::UNKNOWN_ERROR; - } - PcmConfiguration config; - if (!proxy->loadAudioConfig(&config)) { - LOG(ERROR) << __func__ << ": state=" << proxy->getState() - << " failed to get audio config"; - return ::android::UNKNOWN_ERROR; - } - // TODO: Ensure minimum duration for spatialized output? - // WAR to support Mono / 16 bits per sample as the Bluetooth stack required - if (!mIsInput && config.channelMode == ChannelMode::MONO && config.bitsPerSample == 16) { - proxy->forcePcmStereoToMono(true); - config.channelMode = ChannelMode::STEREO; - LOG(INFO) << __func__ << ": force channels = to be AUDIO_CHANNEL_OUT_STEREO"; - } - if (!checkConfigParams(config)) { - LOG(ERROR) << __func__ << " checkConfigParams failed"; - return ::android::UNKNOWN_ERROR; - } - mBtDeviceProxies.push_back(std::move(proxy)); + PresentationPosition presentation_position; + if (!mBtDeviceProxy->getPresentationPosition(presentation_position)) { + presentation_position.remoteDeviceAudioDelayNanos = + kBluetoothDefaultRemoteDelayMs * NANOS_PER_MILLISECOND; + LOG(WARNING) << __func__ << ": getPresentationPosition failed, latency info is unavailable"; } - mIsInitialized = true; + // TODO(b/317117580): incorporate logic from + // packages/modules/Bluetooth/system/audio_bluetooth_hw/stream_apis.cc + // out_calculate_feeding_delay_ms / in_calculate_starving_delay_ms + *latencyMs = std::max(*latencyMs, (int32_t)(presentation_position.remoteDeviceAudioDelayNanos / + NANOS_PER_MILLISECOND)); return ::android::OK; } -bool StreamBluetooth::checkConfigParams( - ::aidl::android::hardware::bluetooth::audio::PcmConfiguration& config) { - if ((int)mSampleRate != config.sampleRateHz) { - LOG(ERROR) << __func__ << ": Sample Rate mismatch, stream val = " << mSampleRate - << " hal val = " << config.sampleRateHz; +// static +bool StreamBluetooth::checkConfigParams(const PcmConfiguration& pcmConfig, + const AudioConfigBase& config) { + if ((int)config.sampleRate != pcmConfig.sampleRateHz) { + LOG(ERROR) << __func__ << ": sample rate mismatch, stream value=" << config.sampleRate + << ", BT HAL value=" << pcmConfig.sampleRateHz; return false; } - auto channelCount = aidl::android::hardware::audio::common::getChannelCount(mChannelLayout); - if ((config.channelMode == ChannelMode::MONO && channelCount != 1) || - (config.channelMode == ChannelMode::STEREO && channelCount != 2)) { - LOG(ERROR) << __func__ << ": Channel count mismatch, stream val = " << channelCount - << " hal val = " << toString(config.channelMode); + const auto channelCount = + aidl::android::hardware::audio::common::getChannelCount(config.channelMask); + if ((pcmConfig.channelMode == ChannelMode::MONO && channelCount != 1) || + (pcmConfig.channelMode == ChannelMode::STEREO && channelCount != 2)) { + LOG(ERROR) << __func__ << ": Channel count mismatch, stream value=" << channelCount + << ", BT HAL value=" << toString(pcmConfig.channelMode); return false; } - if (mFormat.type != AudioFormatType::PCM) { - LOG(ERROR) << __func__ << ": unexpected format type " - << aidl::android::media::audio::common::toString(mFormat.type); + if (config.format.type != AudioFormatType::PCM) { + LOG(ERROR) << __func__ + << ": unexpected stream format type: " << toString(config.format.type); return false; } - int8_t bps = aidl::android::hardware::audio::common::getPcmSampleSizeInBytes(mFormat.pcm) * 8; - if (bps != config.bitsPerSample) { - LOG(ERROR) << __func__ << ": bits per sample mismatch, stream val = " << bps - << " hal val = " << config.bitsPerSample; + const int8_t bitsPerSample = + aidl::android::hardware::audio::common::getPcmSampleSizeInBytes(config.format.pcm) * 8; + if (bitsPerSample != pcmConfig.bitsPerSample) { + LOG(ERROR) << __func__ << ": bits per sample mismatch, stream value=" << bitsPerSample + << ", BT HAL value=" << pcmConfig.bitsPerSample; return false; } - if (config.dataIntervalUs > 0) { - mPreferredDataIntervalUs = - std::min((int32_t)mPreferredDataIntervalUs, config.dataIntervalUs); - mPreferredFrameCount = frameCountFromDurationUs(mPreferredDataIntervalUs, mSampleRate); - } return true; } ndk::ScopedAStatus StreamBluetooth::prepareToClose() { std::lock_guard guard(mLock); - mIsReadyToClose = true; + if (mBtDeviceProxy != nullptr) { + if (mBtDeviceProxy->getState() != BluetoothStreamState::DISABLED) { + mBtDeviceProxy->stop(); + } + } return ndk::ScopedAStatus::ok(); } ::android::status_t StreamBluetooth::standby() { std::lock_guard guard(mLock); - if (!mIsInitialized) { - if (auto status = initialize(); status != ::android::OK) return status; - } - for (auto proxy : mBtDeviceProxies) { - if (!proxy->suspend()) { - LOG(ERROR) << __func__ << ": state = " << proxy->getState() << " failed to stand by "; - return -EIO; - } - } + if (mBtDeviceProxy != nullptr) mBtDeviceProxy->suspend(); return ::android::OK; } ::android::status_t StreamBluetooth::start() { std::lock_guard guard(mLock); - if (!mIsInitialized) return initialize(); + if (mBtDeviceProxy != nullptr) mBtDeviceProxy->start(); return ::android::OK; } void StreamBluetooth::shutdown() { std::lock_guard guard(mLock); - for (auto proxy : mBtDeviceProxies) { - proxy->stop(); - proxy->unregisterPort(); + if (mBtDeviceProxy != nullptr) { + mBtDeviceProxy->stop(); + mBtDeviceProxy = nullptr; } - mBtDeviceProxies.clear(); } ndk::ScopedAStatus StreamBluetooth::updateMetadataCommon(const Metadata& metadata) { std::lock_guard guard(mLock); - if (!mIsInitialized) return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); + if (mBtDeviceProxy == nullptr) { + return ndk::ScopedAStatus::ok(); + } bool isOk = true; if (isInput(metadata)) { - isOk = mBtDeviceProxies[0]->updateSinkMetadata(std::get(metadata)); + isOk = mBtDeviceProxy->updateSinkMetadata(std::get(metadata)); } else { - for (auto proxy : mBtDeviceProxies) { - if (!proxy->updateSourceMetadata(std::get(metadata))) isOk = false; - } + isOk = mBtDeviceProxy->updateSourceMetadata(std::get(metadata)); } return isOk ? ndk::ScopedAStatus::ok() : ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); @@ -280,7 +208,6 @@ ndk::ScopedAStatus StreamBluetooth::updateMetadataCommon(const Metadata& metadat ndk::ScopedAStatus StreamBluetooth::bluetoothParametersUpdated() { if (mIsInput) { - LOG(WARNING) << __func__ << ": not handled"; return ndk::ScopedAStatus::ok(); } auto applyParam = [](const std::shared_ptr& proxy, @@ -297,15 +224,10 @@ ndk::ScopedAStatus StreamBluetooth::bluetoothParametersUpdated() { bool hasLeParam, enableLe; auto btLe = mBluetoothLe.lock(); hasLeParam = btLe != nullptr && btLe->isEnabled(&enableLe).isOk(); - std::unique_lock lock(mLock); - ::android::base::ScopedLockAssertion lock_assertion(mLock); - if (!mIsInitialized) { - LOG(WARNING) << __func__ << ": init not done"; - return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); - } - for (auto proxy : mBtDeviceProxies) { - if ((hasA2dpParam && proxy->isA2dp() && !applyParam(proxy, enableA2dp)) || - (hasLeParam && proxy->isLeAudio() && !applyParam(proxy, enableLe))) { + std::lock_guard guard(mLock); + if (mBtDeviceProxy != nullptr) { + if ((hasA2dpParam && mBtDeviceProxy->isA2dp() && !applyParam(mBtDeviceProxy, enableA2dp)) || + (hasLeParam && mBtDeviceProxy->isLeAudio() && !applyParam(mBtDeviceProxy, enableLe))) { LOG(DEBUG) << __func__ << ": applyParam failed"; return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); } @@ -313,11 +235,20 @@ ndk::ScopedAStatus StreamBluetooth::bluetoothParametersUpdated() { return ndk::ScopedAStatus::ok(); } +// static +int32_t StreamInBluetooth::getNominalLatencyMs(size_t dataIntervalUs) { + if (dataIntervalUs == 0) dataIntervalUs = kBluetoothDefaultInputBufferMs * 1000LL; + return dataIntervalUs / 1000LL; +} + StreamInBluetooth::StreamInBluetooth(StreamContext&& context, const SinkMetadata& sinkMetadata, const std::vector& microphones, - ModuleBluetooth::BtProfileHandles&& btProfileHandles) + ModuleBluetooth::BtProfileHandles&& btProfileHandles, + const std::shared_ptr& btDeviceProxy, + const PcmConfiguration& pcmConfig) : StreamIn(std::move(context), microphones), - StreamBluetooth(&mContextInstance, sinkMetadata, std::move(btProfileHandles)) {} + StreamBluetooth(&mContextInstance, sinkMetadata, std::move(btProfileHandles), btDeviceProxy, + pcmConfig) {} ndk::ScopedAStatus StreamInBluetooth::getActiveMicrophones( std::vector* _aidl_return __unused) { @@ -325,11 +256,20 @@ ndk::ScopedAStatus StreamInBluetooth::getActiveMicrophones( return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); } +// static +int32_t StreamOutBluetooth::getNominalLatencyMs(size_t dataIntervalUs) { + if (dataIntervalUs == 0) dataIntervalUs = kBluetoothDefaultOutputBufferMs * 1000LL; + return dataIntervalUs / 1000LL; +} + StreamOutBluetooth::StreamOutBluetooth(StreamContext&& context, const SourceMetadata& sourceMetadata, const std::optional& offloadInfo, - ModuleBluetooth::BtProfileHandles&& btProfileHandles) + ModuleBluetooth::BtProfileHandles&& btProfileHandles, + const std::shared_ptr& btDeviceProxy, + const PcmConfiguration& pcmConfig) : StreamOut(std::move(context), offloadInfo), - StreamBluetooth(&mContextInstance, sourceMetadata, std::move(btProfileHandles)) {} + StreamBluetooth(&mContextInstance, sourceMetadata, std::move(btProfileHandles), btDeviceProxy, + pcmConfig) {} } // namespace aidl::android::hardware::audio::core diff --git a/audio/aidl/default/include/core-impl/DevicePortProxy.h b/audio/aidl/default/include/core-impl/DevicePortProxy.h index 17a8cf3d9a..ccb23bbe5b 100644 --- a/audio/aidl/default/include/core-impl/DevicePortProxy.h +++ b/audio/aidl/default/include/core-impl/DevicePortProxy.h @@ -73,12 +73,7 @@ class BluetoothAudioPort { * Bluetooth stack */ virtual bool loadAudioConfig( - ::aidl::android::hardware::bluetooth::audio::PcmConfiguration*) const = 0; - - /** - * WAR to support Mono mode / 16 bits per sample - */ - virtual void forcePcmStereoToMono(bool) = 0; + ::aidl::android::hardware::bluetooth::audio::PcmConfiguration&) = 0; /** * When the Audio framework / HAL wants to change the stream state, it invokes @@ -145,7 +140,7 @@ class BluetoothAudioPort { virtual bool isLeAudio() const = 0; - virtual bool getPreferredDataIntervalUs(size_t*) const = 0; + virtual bool getPreferredDataIntervalUs(size_t&) const = 0; virtual size_t writeData(const void*, size_t) const { return 0; } @@ -162,10 +157,8 @@ class BluetoothAudioPortAidl : public BluetoothAudioPort { void unregisterPort() override; - bool loadAudioConfig(::aidl::android::hardware::bluetooth::audio::PcmConfiguration* audio_cfg) - const override; - - void forcePcmStereoToMono(bool force) override { mIsStereoToMono = force; } + bool loadAudioConfig( + ::aidl::android::hardware::bluetooth::audio::PcmConfiguration& audio_cfg) override; bool standby() override; bool start() override; @@ -193,7 +186,7 @@ class BluetoothAudioPortAidl : public BluetoothAudioPort { bool isLeAudio() const override; - bool getPreferredDataIntervalUs(size_t* interval_us) const override; + bool getPreferredDataIntervalUs(size_t& interval_us) const override; protected: uint16_t mCookie; @@ -228,6 +221,9 @@ class BluetoothAudioPortAidl : public BluetoothAudioPort { class BluetoothAudioPortAidlOut : public BluetoothAudioPortAidl { public: + bool loadAudioConfig( + ::aidl::android::hardware::bluetooth::audio::PcmConfiguration& audio_cfg) override; + // The audio data path to the Bluetooth stack (Software encoding) size_t writeData(const void* buffer, size_t bytes) const override; }; diff --git a/audio/aidl/default/include/core-impl/ModuleBluetooth.h b/audio/aidl/default/include/core-impl/ModuleBluetooth.h index e48526e292..9451411f48 100644 --- a/audio/aidl/default/include/core-impl/ModuleBluetooth.h +++ b/audio/aidl/default/include/core-impl/ModuleBluetooth.h @@ -16,7 +16,10 @@ #pragma once +#include + #include "core-impl/Bluetooth.h" +#include "core-impl/DevicePortProxy.h" #include "core-impl/Module.h" namespace aidl::android::hardware::audio::core { @@ -31,6 +34,11 @@ class ModuleBluetooth final : public Module { ModuleBluetooth(std::unique_ptr&& config); private: + struct CachedProxy { + std::shared_ptr<::android::bluetooth::audio::aidl::BluetoothAudioPortAidl> ptr; + ::aidl::android::hardware::bluetooth::audio::PcmConfiguration pcmConfig; + }; + ChildInterface& getBtA2dp(); ChildInterface& getBtLe(); BtProfileHandles getBtProfileManagerHandles(); @@ -40,6 +48,17 @@ class ModuleBluetooth final : public Module { ndk::ScopedAStatus getMicMute(bool* _aidl_return) override; ndk::ScopedAStatus setMicMute(bool in_mute) override; + ndk::ScopedAStatus setAudioPortConfig( + const ::aidl::android::media::audio::common::AudioPortConfig& in_requested, + ::aidl::android::media::audio::common::AudioPortConfig* out_suggested, + bool* _aidl_return) override; + + ndk::ScopedAStatus checkAudioPatchEndpointsMatch( + const std::vector<::aidl::android::media::audio::common::AudioPortConfig*>& sources, + const std::vector<::aidl::android::media::audio::common::AudioPortConfig*>& sinks) + override; + void onExternalDeviceConnectionChanged( + const ::aidl::android::media::audio::common::AudioPort& audioPort, bool connected); ndk::ScopedAStatus createInputStream( StreamContext&& context, const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata, @@ -56,9 +75,20 @@ class ModuleBluetooth final : public Module { int32_t nextPortId) override; ndk::ScopedAStatus onMasterMuteChanged(bool mute) override; ndk::ScopedAStatus onMasterVolumeChanged(float volume) override; + int32_t getNominalLatencyMs( + const ::aidl::android::media::audio::common::AudioPortConfig& portConfig) override; + + ndk::ScopedAStatus createProxy( + const ::aidl::android::media::audio::common::AudioPort& audioPort, + int32_t instancePortId, CachedProxy& proxy); + ndk::ScopedAStatus fetchAndCheckProxy(const StreamContext& context, CachedProxy& proxy); + ndk::ScopedAStatus findOrCreateProxy( + const ::aidl::android::media::audio::common::AudioPort& audioPort, CachedProxy& proxy); ChildInterface mBluetoothA2dp; ChildInterface mBluetoothLe; + std::map mProxies; + std::map mConnections; }; } // namespace aidl::android::hardware::audio::core diff --git a/audio/aidl/default/include/core-impl/StreamBluetooth.h b/audio/aidl/default/include/core-impl/StreamBluetooth.h index 1258d3860c..35c3183560 100644 --- a/audio/aidl/default/include/core-impl/StreamBluetooth.h +++ b/audio/aidl/default/include/core-impl/StreamBluetooth.h @@ -31,8 +31,16 @@ namespace aidl::android::hardware::audio::core { class StreamBluetooth : public StreamCommonImpl { public: - StreamBluetooth(StreamContext* context, const Metadata& metadata, - ModuleBluetooth::BtProfileHandles&& btHandles); + static bool checkConfigParams( + const ::aidl::android::hardware::bluetooth::audio::PcmConfiguration& pcmConfig, + const ::aidl::android::media::audio::common::AudioConfigBase& config); + + StreamBluetooth( + StreamContext* context, const Metadata& metadata, + ModuleBluetooth::BtProfileHandles&& btHandles, + const std::shared_ptr<::android::bluetooth::audio::aidl::BluetoothAudioPortAidl>& + btDeviceProxy, + const ::aidl::android::hardware::bluetooth::audio::PcmConfiguration& pcmConfig); // Methods of 'DriverInterface'. ::android::status_t init() override; ::android::status_t drain(StreamDescriptor::DrainMode) override; @@ -47,40 +55,35 @@ class StreamBluetooth : public StreamCommonImpl { // Overridden methods of 'StreamCommonImpl', called on a Binder thread. ndk::ScopedAStatus updateMetadataCommon(const Metadata& metadata) override; ndk::ScopedAStatus prepareToClose() override; - const ConnectedDevices& getConnectedDevices() const override; - ndk::ScopedAStatus setConnectedDevices(const ConnectedDevices& devices) override; ndk::ScopedAStatus bluetoothParametersUpdated() override; private: - // Audio Pcm Config - const uint32_t mSampleRate; - const ::aidl::android::media::audio::common::AudioChannelLayout mChannelLayout; - const ::aidl::android::media::audio::common::AudioFormatDescription mFormat; const size_t mFrameSizeBytes; const bool mIsInput; const std::weak_ptr mBluetoothA2dp; const std::weak_ptr mBluetoothLe; - size_t mPreferredDataIntervalUs; - size_t mPreferredFrameCount; - + const size_t mPreferredDataIntervalUs; + const size_t mPreferredFrameCount; mutable std::mutex mLock; - bool mIsInitialized GUARDED_BY(mLock); - bool mIsReadyToClose GUARDED_BY(mLock); - std::vector> - mBtDeviceProxies GUARDED_BY(mLock); - - ::android::status_t initialize() REQUIRES(mLock); - bool checkConfigParams(::aidl::android::hardware::bluetooth::audio::PcmConfiguration& config); + // The lock is also used to serialize calls to the proxy. + std::shared_ptr<::android::bluetooth::audio::aidl::BluetoothAudioPortAidl> mBtDeviceProxy + GUARDED_BY(mLock); // proxy may be null if the stream is not connected to a device }; class StreamInBluetooth final : public StreamIn, public StreamBluetooth { public: friend class ndk::SharedRefBase; + + static int32_t getNominalLatencyMs(size_t dataIntervalUs); + StreamInBluetooth( StreamContext&& context, const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata, const std::vector<::aidl::android::media::audio::common::MicrophoneInfo>& microphones, - ModuleBluetooth::BtProfileHandles&& btHandles); + ModuleBluetooth::BtProfileHandles&& btHandles, + const std::shared_ptr<::android::bluetooth::audio::aidl::BluetoothAudioPortAidl>& + btDeviceProxy, + const ::aidl::android::hardware::bluetooth::audio::PcmConfiguration& pcmConfig); private: void onClose(StreamDescriptor::State) override { defaultOnClose(); } @@ -92,12 +95,18 @@ class StreamInBluetooth final : public StreamIn, public StreamBluetooth { class StreamOutBluetooth final : public StreamOut, public StreamBluetooth { public: friend class ndk::SharedRefBase; + + static int32_t getNominalLatencyMs(size_t dataIntervalUs); + StreamOutBluetooth( StreamContext&& context, const ::aidl::android::hardware::audio::common::SourceMetadata& sourceMetadata, const std::optional<::aidl::android::media::audio::common::AudioOffloadInfo>& offloadInfo, - ModuleBluetooth::BtProfileHandles&& btHandles); + ModuleBluetooth::BtProfileHandles&& btHandles, + const std::shared_ptr<::android::bluetooth::audio::aidl::BluetoothAudioPortAidl>& + btDeviceProxy, + const ::aidl::android::hardware::bluetooth::audio::PcmConfiguration& pcmConfig); private: void onClose(StreamDescriptor::State) override { defaultOnClose(); } diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp index c05750538d..67ba93cdd7 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp @@ -500,14 +500,12 @@ bool BluetoothAudioSession::GetPresentationPosition( << " has NO session"; return false; } - bool retval = false; - if (!stack_iface_->getPresentationPosition(&presentation_position).isOk()) { LOG(WARNING) << __func__ << " - IBluetoothAudioPort SessionType=" << toString(session_type_) << " failed"; return false; } - return retval; + return true; } void BluetoothAudioSession::UpdateSourceMetadata( -- GitLab From f8e4a123d891f417589bc08fbb097817a8540225 Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Wed, 27 Dec 2023 00:43:21 +0000 Subject: [PATCH 089/418] Address ANAPIC feedback for Supplicant V3 and Vendor HAL V2. Comments addressed include: - Indicate version where methods were deprecated. - Bitmasks should use an int rather than an enum. - Use 'us' suffix instead of 'micros' for consistency with the rest of the interface. Bug: 317404786 Test: m Change-Id: I026479aaa3f358913f61c6505ff9dccb0edc5ae8 --- .../hardware/wifi/RttCapabilities.aidl | 4 +-- .../hardware/wifi/TwtCapabilities.aidl | 8 ++--- .../android/hardware/wifi/TwtRequest.aidl | 8 ++--- .../android/hardware/wifi/TwtSession.aidl | 4 +-- .../hardware/wifi/TwtSessionStats.aidl | 2 +- .../hardware/wifi/RttCapabilities.aidl | 4 +-- .../hardware/wifi/TwtCapabilities.aidl | 8 ++--- .../android/hardware/wifi/TwtRequest.aidl | 8 ++--- .../android/hardware/wifi/TwtSession.aidl | 4 +-- .../hardware/wifi/TwtSessionStats.aidl | 2 +- wifi/aidl/default/aidl_struct_util.cpp | 34 +++++++++---------- .../ISupplicantP2pIfaceCallback.aidl | 2 +- .../ISupplicantStaIfaceCallback.aidl | 2 +- ...rovisionDiscoveryCompletedEventParams.aidl | 2 +- .../ISupplicantP2pIfaceCallback.aidl | 2 +- .../ISupplicantStaIfaceCallback.aidl | 2 +- ...rovisionDiscoveryCompletedEventParams.aidl | 5 ++- 17 files changed, 50 insertions(+), 51 deletions(-) diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl index 83f3f7e30d..af1647dd5d 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl @@ -42,8 +42,8 @@ parcelable RttCapabilities { android.hardware.wifi.RttPreamble preambleSupport; android.hardware.wifi.RttBw bwSupport; byte mcVersion; - android.hardware.wifi.RttPreamble azPreambleSupport; - android.hardware.wifi.RttBw azBwSupport; + int azPreambleSupport; + int azBwSupport; boolean ntbInitiatorSupported; boolean ntbResponderSupported; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl index d6ed62e943..75f3e83829 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl @@ -38,8 +38,8 @@ parcelable TwtCapabilities { boolean isTwtResponderSupported; boolean isBroadcastTwtSupported; boolean isFlexibleTwtScheduleSupported; - int minWakeDurationMicros; - int maxWakeDurationMicros; - long minWakeIntervalMicros; - long maxWakeIntervalMicros; + int minWakeDurationUs; + int maxWakeDurationUs; + long minWakeIntervalUs; + long maxWakeIntervalUs; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl index 06c7ae2433..1e1c39a914 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl @@ -35,8 +35,8 @@ package android.hardware.wifi; @VintfStability parcelable TwtRequest { int mloLinkId; - int minWakeDurationMicros; - int maxWakeDurationMicros; - long minWakeIntervalMicros; - long maxWakeIntervalMicros; + int minWakeDurationUs; + int maxWakeDurationUs; + long minWakeIntervalUs; + long maxWakeIntervalUs; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl index 4e5ca44f17..0b88d8e75d 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl @@ -36,8 +36,8 @@ package android.hardware.wifi; parcelable TwtSession { int sessionId; int mloLinkId; - int wakeDurationMicros; - long wakeIntervalMicros; + int wakeDurationUs; + long wakeIntervalUs; android.hardware.wifi.TwtSession.TwtNegotiationType negotiationType; boolean isTriggerEnabled; boolean isAnnounced; diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSessionStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSessionStats.aidl index 528444a84b..f62b614146 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSessionStats.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSessionStats.aidl @@ -38,6 +38,6 @@ parcelable TwtSessionStats { int avgRxPktCount; int avgTxPktSize; int avgRxPktSize; - int avgEospDurationMicros; + int avgEospDurationUs; int eospCount; } diff --git a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl index c4b7d24b6f..89b70c9e00 100644 --- a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl +++ b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl @@ -64,12 +64,12 @@ parcelable RttCapabilities { * Bit mask indicating what preamble is supported by IEEE 802.11az initiator. * Combination of |RttPreamble| values. */ - RttPreamble azPreambleSupport; + int azPreambleSupport; /** * Bit mask indicating what BW is supported by IEEE 802.11az initiator. * Combination of |RttBw| values. */ - RttBw azBwSupport; + int azBwSupport; /** * Whether the initiator supports IEEE 802.11az Non-Trigger-based (non-TB) measurement. */ diff --git a/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl index 4012c3ed73..5d68a5727f 100644 --- a/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl @@ -40,17 +40,17 @@ parcelable TwtCapabilities { /** * Minimum TWT wake duration in microseconds. */ - int minWakeDurationMicros; + int minWakeDurationUs; /** * Maximum TWT wake duration in microseconds. */ - int maxWakeDurationMicros; + int maxWakeDurationUs; /** * Minimum TWT wake interval in microseconds. */ - long minWakeIntervalMicros; + long minWakeIntervalUs; /** * Maximum TWT wake interval in microseconds. */ - long maxWakeIntervalMicros; + long maxWakeIntervalUs; } diff --git a/wifi/aidl/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/android/hardware/wifi/TwtRequest.aidl index b063da3911..cdb9a7dea0 100644 --- a/wifi/aidl/android/hardware/wifi/TwtRequest.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtRequest.aidl @@ -28,17 +28,17 @@ parcelable TwtRequest { /** * Minimum TWT wake duration in microseconds. */ - int minWakeDurationMicros; + int minWakeDurationUs; /** * Maximum TWT wake duration in microseconds. */ - int maxWakeDurationMicros; + int maxWakeDurationUs; /** * Minimum TWT wake interval in microseconds. */ - long minWakeIntervalMicros; + long minWakeIntervalUs; /** * Maximum TWT wake interval in microseconds. */ - long maxWakeIntervalMicros; + long maxWakeIntervalUs; } diff --git a/wifi/aidl/android/hardware/wifi/TwtSession.aidl b/wifi/aidl/android/hardware/wifi/TwtSession.aidl index 6b780f8343..2d7e819df7 100644 --- a/wifi/aidl/android/hardware/wifi/TwtSession.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtSession.aidl @@ -41,12 +41,12 @@ parcelable TwtSession { /** * TWT service period in microseconds. */ - int wakeDurationMicros; + int wakeDurationUs; /** * Time interval in microseconds between two successive TWT service periods. */ - long wakeIntervalMicros; + long wakeIntervalUs; /** * TWT negotiation type. diff --git a/wifi/aidl/android/hardware/wifi/TwtSessionStats.aidl b/wifi/aidl/android/hardware/wifi/TwtSessionStats.aidl index e2e2d12b7e..ba70426da1 100644 --- a/wifi/aidl/android/hardware/wifi/TwtSessionStats.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtSessionStats.aidl @@ -44,7 +44,7 @@ parcelable TwtSessionStats { /** * Average End of Service period in microseconds. */ - int avgEospDurationMicros; + int avgEospDurationUs; /** * Count of early terminations. diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp index 7e7929d392..836ce1a9b6 100644 --- a/wifi/aidl/default/aidl_struct_util.cpp +++ b/wifi/aidl/default/aidl_struct_util.cpp @@ -2886,8 +2886,8 @@ bool convertLegacyRttCapabilitiesToAidl( aidl_capabilities->bwSupport = convertLegacyRttBwBitmapToAidl(legacy_capabilities.bw_support); aidl_capabilities->mcVersion = legacy_capabilities.mc_version; // Initialize 11az parameters to default - aidl_capabilities->azPreambleSupport = RttPreamble::INVALID; - aidl_capabilities->azBwSupport = RttBw::BW_UNSPECIFIED; + aidl_capabilities->azPreambleSupport = (int)RttPreamble::INVALID; + aidl_capabilities->azBwSupport = (int)RttBw::BW_UNSPECIFIED; aidl_capabilities->ntbInitiatorSupported = false; aidl_capabilities->ntbResponderSupported = false; return true; @@ -2912,9 +2912,9 @@ bool convertLegacyRttCapabilitiesV3ToAidl( convertLegacyRttBwBitmapToAidl(legacy_capabilities_v3.rtt_capab.bw_support); aidl_capabilities->mcVersion = legacy_capabilities_v3.rtt_capab.mc_version; aidl_capabilities->azPreambleSupport = - convertLegacyRttPreambleBitmapToAidl(legacy_capabilities_v3.az_preamble_support); + (int)convertLegacyRttPreambleBitmapToAidl(legacy_capabilities_v3.az_preamble_support); aidl_capabilities->azBwSupport = - convertLegacyRttBwBitmapToAidl(legacy_capabilities_v3.az_bw_support); + (int)convertLegacyRttBwBitmapToAidl(legacy_capabilities_v3.az_bw_support); aidl_capabilities->ntbInitiatorSupported = legacy_capabilities_v3.ntb_initiator_supported; aidl_capabilities->ntbResponderSupported = legacy_capabilities_v3.ntb_responder_supported; return true; @@ -3587,13 +3587,13 @@ bool convertTwtCapabilitiesToAidl(legacy_hal::wifi_twt_capabilities legacy_twt_c if (legacy_twt_capabs.min_wake_duration_micros > legacy_twt_capabs.max_wake_duration_micros) { return false; } - aidl_twt_capabs->minWakeDurationMicros = legacy_twt_capabs.min_wake_duration_micros; - aidl_twt_capabs->maxWakeDurationMicros = legacy_twt_capabs.max_wake_duration_micros; + aidl_twt_capabs->minWakeDurationUs = legacy_twt_capabs.min_wake_duration_micros; + aidl_twt_capabs->maxWakeDurationUs = legacy_twt_capabs.max_wake_duration_micros; if (legacy_twt_capabs.min_wake_interval_micros > legacy_twt_capabs.max_wake_interval_micros) { return false; } - aidl_twt_capabs->minWakeIntervalMicros = legacy_twt_capabs.min_wake_interval_micros; - aidl_twt_capabs->maxWakeIntervalMicros = legacy_twt_capabs.max_wake_interval_micros; + aidl_twt_capabs->minWakeIntervalUs = legacy_twt_capabs.min_wake_interval_micros; + aidl_twt_capabs->maxWakeIntervalUs = legacy_twt_capabs.max_wake_interval_micros; return true; } @@ -3603,16 +3603,16 @@ bool convertAidlTwtRequestToLegacy(const TwtRequest aidl_twt_request, return false; } legacy_twt_request->mlo_link_id = aidl_twt_request.mloLinkId; - if (aidl_twt_request.minWakeDurationMicros > aidl_twt_request.maxWakeDurationMicros) { + if (aidl_twt_request.minWakeDurationUs > aidl_twt_request.maxWakeDurationUs) { return false; } - legacy_twt_request->min_wake_duration_micros = aidl_twt_request.minWakeDurationMicros; - legacy_twt_request->max_wake_duration_micros = aidl_twt_request.maxWakeDurationMicros; - if (aidl_twt_request.minWakeIntervalMicros > aidl_twt_request.maxWakeIntervalMicros) { + legacy_twt_request->min_wake_duration_micros = aidl_twt_request.minWakeDurationUs; + legacy_twt_request->max_wake_duration_micros = aidl_twt_request.maxWakeDurationUs; + if (aidl_twt_request.minWakeIntervalUs > aidl_twt_request.maxWakeIntervalUs) { return false; } - legacy_twt_request->min_wake_interval_micros = aidl_twt_request.minWakeIntervalMicros; - legacy_twt_request->max_wake_interval_micros = aidl_twt_request.maxWakeIntervalMicros; + legacy_twt_request->min_wake_interval_micros = aidl_twt_request.minWakeIntervalUs; + legacy_twt_request->max_wake_interval_micros = aidl_twt_request.maxWakeIntervalUs; return true; } @@ -3664,8 +3664,8 @@ bool convertLegacyHalTwtSessionToAidl(legacy_hal::wifi_twt_session twt_session, aidl_twt_session->sessionId = twt_session.session_id; aidl_twt_session->mloLinkId = twt_session.mlo_link_id; - aidl_twt_session->wakeDurationMicros = twt_session.wake_duration_micros; - aidl_twt_session->wakeIntervalMicros = twt_session.wake_interval_micros; + aidl_twt_session->wakeDurationUs = twt_session.wake_duration_micros; + aidl_twt_session->wakeIntervalUs = twt_session.wake_interval_micros; switch (twt_session.negotiation_type) { case WIFI_TWT_NEGO_TYPE_INDIVIDUAL: aidl_twt_session->negotiationType = TwtSession::TwtNegotiationType::INDIVIDUAL; @@ -3696,7 +3696,7 @@ bool convertLegacyHalTwtSessionStatsToAidl(legacy_hal::wifi_twt_session_stats tw aidl_twt_stats->avgRxPktCount = twt_stats.avg_pkt_num_rx; aidl_twt_stats->avgTxPktSize = twt_stats.avg_tx_pkt_size; aidl_twt_stats->avgRxPktSize = twt_stats.avg_rx_pkt_size; - aidl_twt_stats->avgEospDurationMicros = twt_stats.avg_eosp_dur_us; + aidl_twt_stats->avgEospDurationUs = twt_stats.avg_eosp_dur_us; aidl_twt_stats->eospCount = twt_stats.eosp_count; return true; diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl index 851e85107b..4811565b44 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -35,7 +35,7 @@ package android.hardware.wifi.supplicant; @VintfStability interface ISupplicantP2pIfaceCallback { /** - * @deprecated This callback is deprecated from AIDL v2, newer HAL should call onDeviceFoundWithParams. + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onDeviceFoundWithParams. */ oneway void onDeviceFound(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo); oneway void onDeviceLost(in byte[] p2pDeviceAddress); diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl index 898c2d4dd7..9fa8f56cd5 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl @@ -54,7 +54,7 @@ interface ISupplicantStaIfaceCallback { oneway void onExtRadioWorkTimeout(in int id); oneway void onHs20DeauthImminentNotice(in byte[] bssid, in int reasonCode, in int reAuthDelayInSec, in String url); /** - * @deprecated No longer in use. + * @deprecated This callback is deprecated from AIDL v3. */ oneway void onHs20IconQueryDone(in byte[] bssid, in String fileName, in byte[] data); oneway void onHs20SubscriptionRemediation(in byte[] bssid, in android.hardware.wifi.supplicant.OsuMethod osuMethod, in String url); diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl index 0ff06536b3..46366cc8d3 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl @@ -37,7 +37,7 @@ parcelable P2pProvisionDiscoveryCompletedEventParams { byte[6] p2pDeviceAddress; boolean isRequest; android.hardware.wifi.supplicant.P2pProvDiscStatusCode status; - android.hardware.wifi.supplicant.WpsConfigMethods configMethods; + int configMethods; String generatedPin; String groupInterfaceName; @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl index 11cd867933..b9273a83ea 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -40,7 +40,7 @@ oneway interface ISupplicantP2pIfaceCallback { /** * Used to indicate that a P2P device has been found. *

- * @deprecated This callback is deprecated from AIDL v2, newer HAL should call + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call * onDeviceFoundWithParams. * * @param srcAddress MAC address of the device found. This must either diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl index 58893ebf66..172fcda26f 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl @@ -198,7 +198,7 @@ oneway interface ISupplicantStaIfaceCallback { /** * Used to indicate the result of Hotspot 2.0 Icon query. * - * @deprecated No longer in use. + * @deprecated This callback is deprecated from AIDL v3. * * @param bssid BSSID of the access point. * @param fileName Name of the file that was requested. diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl index b559216611..05152a9454 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl @@ -18,7 +18,6 @@ package android.hardware.wifi.supplicant; import android.hardware.wifi.common.OuiKeyedData; import android.hardware.wifi.supplicant.P2pProvDiscStatusCode; -import android.hardware.wifi.supplicant.WpsConfigMethods; /** * Parameters passed as a part of P2P provision discovery frame notification. @@ -34,8 +33,8 @@ parcelable P2pProvisionDiscoveryCompletedEventParams { boolean isRequest; /** Status of the provision discovery */ P2pProvDiscStatusCode status; - /** Mask of WPS configuration methods supported */ - WpsConfigMethods configMethods; + /** Mask of |WpsConfigMethods| indicating the supported methods */ + int configMethods; /** 8-digit pin generated */ String generatedPin; /** -- GitLab From 074aded4469ba9f5efd6f49cd6db0ca7a2fc3435 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Wed, 27 Dec 2023 09:43:50 +0000 Subject: [PATCH 090/418] Avoid SE VTS crash Add null check for res.args. Bug: 255656026 Test: compiles Change-Id: I3d018b2c8d192ae35d5cc7f837f730ecf3ace65d --- .../1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp | 1 + .../1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp | 1 + .../1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp | 3 +++ 3 files changed, 5 insertions(+) diff --git a/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp b/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp index 63c2ecafb3..1623960cb5 100644 --- a/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp +++ b/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp @@ -75,6 +75,7 @@ class SecureElementHidlTest : public ::testing::TestWithParam { se_->init(se_cb_); auto res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_TRUE(res.args->state_); } diff --git a/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp b/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp index 234c33ca69..d7e45463ef 100644 --- a/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp +++ b/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp @@ -72,6 +72,7 @@ class SecureElementHidlTest : public ::testing::TestWithParam { se_->init_1_1(se_cb_); auto res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_TRUE(res.args->state_); EXPECT_NE(res.args->reason_, ""); } diff --git a/secure_element/1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp b/secure_element/1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp index 66d581e223..26b2ded146 100644 --- a/secure_element/1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp +++ b/secure_element/1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp @@ -73,6 +73,7 @@ class SecureElementHidlTest : public ::testing::TestWithParam { se_->init_1_1(se_cb_); auto res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_TRUE(res.args->state_); EXPECT_NE(res.args->reason_, ""); } @@ -93,10 +94,12 @@ TEST_P(SecureElementHidlTest, Reset) { auto res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_FALSE(res.args->state_); res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_TRUE(res.args->state_); } -- GitLab From 35bf32ff0f44312a02f20a3f48535b6d0d3e01f6 Mon Sep 17 00:00:00 2001 From: Tyler Trephan Date: Wed, 27 Dec 2023 20:02:52 +0000 Subject: [PATCH 091/418] Fixed spelling mistake in LaneCenteringAssistCommand Test: None Bug: 290972334 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:077e36dee61db38ad8d0e28a62542e571e2921ae) Merged-In: Ic85ba803abe349ea9a7edd7dca5cbe7159df34ac Change-Id: Ic85ba803abe349ea9a7edd7dca5cbe7159df34ac --- .../hardware/automotive/vehicle/VehicleProperty.aidl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index d9c6de7ef9..717f5616da 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -4625,11 +4625,11 @@ enum VehicleProperty { * * Commands to activate and suspend LCA. * - * When the command ACTIVATE from LaneCenteringAssistCommmand is sent, + * When the command ACTIVATE from LaneCenteringAssistCommand is sent, * LANE_CENTERING_ASSIST_STATE must be set to LaneCenteringAssistState#ACTIVATION_REQUESTED. * When the ACTIVATE command succeeds, LANE_CENTERING_ASSIST_STATE must be set to * LaneCenteringAssistState#ACTIVATED. When the command DEACTIVATE from - * LaneCenteringAssistCommmand succeeds, LANE_CENTERING_ASSIST_STATE must be set to + * LaneCenteringAssistCommand succeeds, LANE_CENTERING_ASSIST_STATE must be set to * LaneCenteringAssistState#ENABLED. * * For the global area ID (0), the VehicleAreaConfig#supportedEnumValues must be defined unless @@ -4645,7 +4645,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE - * @data_enum LaneCenteringAssistCommmand + * @data_enum LaneCenteringAssistCommand */ LANE_CENTERING_ASSIST_COMMAND = 0x100B + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, -- GitLab From a00d246f2725b22d32b2908230de7620238827ba Mon Sep 17 00:00:00 2001 From: Ady Abraham Date: Tue, 26 Dec 2023 14:21:20 -0800 Subject: [PATCH 092/418] composer: vts: add support for batched create/destroy layers Bug: 315517904 Test: TBD Change-Id: Ic3c0415612b1387671ab8efa0ec95ed727f6bf68 --- graphics/composer/aidl/vts/ReadbackVts.cpp | 4 +- graphics/composer/aidl/vts/ReadbackVts.h | 12 +- .../composer/aidl/vts/VtsComposerClient.cpp | 45 +++- .../composer/aidl/vts/VtsComposerClient.h | 12 +- .../VtsHalGraphicsComposer3_ReadbackTest.cpp | 59 +++-- .../VtsHalGraphicsComposer3_TargetTest.cpp | 241 ++++++++++++------ 6 files changed, 248 insertions(+), 125 deletions(-) diff --git a/graphics/composer/aidl/vts/ReadbackVts.cpp b/graphics/composer/aidl/vts/ReadbackVts.cpp index 8605628098..c72ec6974f 100644 --- a/graphics/composer/aidl/vts/ReadbackVts.cpp +++ b/graphics/composer/aidl/vts/ReadbackVts.cpp @@ -293,8 +293,8 @@ LayerSettings TestColorLayer::toRenderEngineLayerSettings() { TestBufferLayer::TestBufferLayer(const std::shared_ptr& client, TestRenderEngine& renderEngine, int64_t display, uint32_t width, uint32_t height, common::PixelFormat format, - Composition composition) - : TestLayer{client, display}, mRenderEngine(renderEngine) { + ComposerClientWriter& writer, Composition composition) + : TestLayer{client, display, writer}, mRenderEngine(renderEngine) { mComposition = composition; mWidth = width; mHeight = height; diff --git a/graphics/composer/aidl/vts/ReadbackVts.h b/graphics/composer/aidl/vts/ReadbackVts.h index ee205735f1..8ac0f4bb99 100644 --- a/graphics/composer/aidl/vts/ReadbackVts.h +++ b/graphics/composer/aidl/vts/ReadbackVts.h @@ -50,9 +50,10 @@ class TestRenderEngine; class TestLayer { public: - TestLayer(const std::shared_ptr& client, int64_t display) + TestLayer(const std::shared_ptr& client, int64_t display, + ComposerClientWriter& writer) : mDisplay(display) { - const auto& [status, layer] = client->createLayer(display, kBufferSlotCount); + const auto& [status, layer] = client->createLayer(display, kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); mLayer = layer; } @@ -108,8 +109,9 @@ class TestLayer { class TestColorLayer : public TestLayer { public: - TestColorLayer(const std::shared_ptr& client, int64_t display) - : TestLayer{client, display} {} + TestColorLayer(const std::shared_ptr& client, int64_t display, + ComposerClientWriter& writer) + : TestLayer{client, display, writer} {} void write(ComposerClientWriter& writer) override; @@ -125,7 +127,7 @@ class TestBufferLayer : public TestLayer { public: TestBufferLayer(const std::shared_ptr& client, TestRenderEngine& renderEngine, int64_t display, uint32_t width, - uint32_t height, common::PixelFormat format, + uint32_t height, common::PixelFormat format, ComposerClientWriter& writer, Composition composition = Composition::DEVICE); void write(ComposerClientWriter& writer) override; diff --git a/graphics/composer/aidl/vts/VtsComposerClient.cpp b/graphics/composer/aidl/vts/VtsComposerClient.cpp index ac08cd151f..2c24bfb8f5 100644 --- a/graphics/composer/aidl/vts/VtsComposerClient.cpp +++ b/graphics/composer/aidl/vts/VtsComposerClient.cpp @@ -33,6 +33,14 @@ VtsComposerClient::VtsComposerClient(const std::string& name) { mComposer = IComposer::fromBinder(binder); ALOGE_IF(mComposer == nullptr, "Failed to acquire the composer from the binder"); } + + const auto& [status, capabilities] = getCapabilities(); + EXPECT_TRUE(status.isOk()); + if (std::any_of(capabilities.begin(), capabilities.end(), [&](const Capability& cap) { + return cap == Capability::LAYER_LIFECYCLE_BATCH_COMMAND; + })) { + mSupportsBatchedCreateLayer = true; + } } ScopedAStatus VtsComposerClient::createClient() { @@ -54,8 +62,8 @@ ScopedAStatus VtsComposerClient::createClient() { return mComposerClient->registerCallback(mComposerCallback); } -bool VtsComposerClient::tearDown() { - return verifyComposerCallbackParams() && destroyAllLayers(); +bool VtsComposerClient::tearDown(ComposerClientWriter* writer) { + return verifyComposerCallbackParams() && destroyAllLayers(writer); } std::pair VtsComposerClient::getInterfaceVersion() const { @@ -86,7 +94,16 @@ ScopedAStatus VtsComposerClient::destroyVirtualDisplay(int64_t display) { } std::pair VtsComposerClient::createLayer(int64_t display, - int32_t bufferSlotCount) { + int32_t bufferSlotCount, + ComposerClientWriter* writer) { + if (mSupportsBatchedCreateLayer) { + int64_t layer = mNextLayerHandle++; + writer->setLayerLifecycleBatchCommandType(display, layer, + LayerLifecycleBatchCommandType::CREATE); + writer->setNewBufferSlotCount(display, layer, bufferSlotCount); + return {addLayerToDisplayResources(display, layer), layer}; + } + int64_t outLayer; auto status = mComposerClient->createLayer(display, bufferSlotCount, &outLayer); @@ -96,14 +113,20 @@ std::pair VtsComposerClient::createLayer(int64_t display return {addLayerToDisplayResources(display, outLayer), outLayer}; } -ScopedAStatus VtsComposerClient::destroyLayer(int64_t display, int64_t layer) { - auto status = mComposerClient->destroyLayer(display, layer); - - if (!status.isOk()) { - return status; +ScopedAStatus VtsComposerClient::destroyLayer(int64_t display, int64_t layer, + ComposerClientWriter* writer) { + if (mSupportsBatchedCreateLayer) { + writer->setLayerLifecycleBatchCommandType(display, layer, + LayerLifecycleBatchCommandType::DESTROY); + } else { + auto status = mComposerClient->destroyLayer(display, layer); + if (!status.isOk()) { + return status; + } } + removeLayerFromDisplayResources(display, layer); - return status; + return ScopedAStatus::ok(); } std::pair VtsComposerClient::getActiveConfig(int64_t display) { @@ -632,7 +655,7 @@ bool VtsComposerClient::getDisplayConfigurationSupported() const { return interfaceVersion >= 3; } -bool VtsComposerClient::destroyAllLayers() { +bool VtsComposerClient::destroyAllLayers(ComposerClientWriter* writer) { std::unordered_map physicalDisplays; while (!mDisplayResources.empty()) { const auto& it = mDisplayResources.begin(); @@ -640,7 +663,7 @@ bool VtsComposerClient::destroyAllLayers() { while (!resource.layers.empty()) { auto layer = *resource.layers.begin(); - const auto status = destroyLayer(display, layer); + const auto status = destroyLayer(display, layer, writer); if (!status.isOk()) { ALOGE("Unable to destroy all the layers, failed at layer %" PRId64 " with error %s", layer, status.getDescription().c_str()); diff --git a/graphics/composer/aidl/vts/VtsComposerClient.h b/graphics/composer/aidl/vts/VtsComposerClient.h index 292bc407f8..fabc82a7a6 100644 --- a/graphics/composer/aidl/vts/VtsComposerClient.h +++ b/graphics/composer/aidl/vts/VtsComposerClient.h @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -59,7 +60,7 @@ class VtsComposerClient { ScopedAStatus createClient(); - bool tearDown(); + bool tearDown(ComposerClientWriter*); std::pair getInterfaceVersion() const; @@ -69,9 +70,10 @@ class VtsComposerClient { ScopedAStatus destroyVirtualDisplay(int64_t display); - std::pair createLayer(int64_t display, int32_t bufferSlotCount); + std::pair createLayer(int64_t display, int32_t bufferSlotCount, + ComposerClientWriter*); - ScopedAStatus destroyLayer(int64_t display, int64_t layer); + ScopedAStatus destroyLayer(int64_t display, int64_t layer, ComposerClientWriter*); std::pair getActiveConfig(int64_t display); @@ -211,7 +213,7 @@ class VtsComposerClient { void removeLayerFromDisplayResources(int64_t display, int64_t layer); - bool destroyAllLayers(); + bool destroyAllLayers(ComposerClientWriter*); bool verifyComposerCallbackParams(); @@ -229,6 +231,8 @@ class VtsComposerClient { std::shared_ptr mComposerClient; std::shared_ptr mComposerCallback; std::unordered_map mDisplayResources; + bool mSupportsBatchedCreateLayer = false; + std::atomic mNextLayerHandle = 1; }; class VtsDisplay { diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp index 2e3f4df015..164e6d5cab 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp @@ -86,7 +86,7 @@ class GraphicsCompositionTestBase : public ::testing::Test { void TearDown() override { ASSERT_TRUE(mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::OFF).isOk()); - ASSERT_TRUE(mComposerClient->tearDown()); + ASSERT_TRUE(mComposerClient->tearDown(mWriter.get())); mComposerClient.reset(); const auto errors = mReader.takeErrors(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -201,7 +201,8 @@ TEST_P(GraphicsCompositionTest, SingleSolidColorLayer) { return; } - auto layer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto layer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); common::Rect coloredSquare({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setColor(BLUE); layer->setDisplayFrame(coloredSquare); @@ -270,7 +271,7 @@ TEST_P(GraphicsCompositionTest, SetLayerBuffer) { auto layer = std::make_shared( mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), common::PixelFormat::RGBA_8888); + getDisplayHeight(), common::PixelFormat::RGBA_8888, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(ReadbackHelper::getDataspaceForColorMode(mode)); @@ -315,7 +316,8 @@ TEST_P(GraphicsCompositionTest, SetLayerBufferNoEffect) { return; } - auto layer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto layer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); common::Rect coloredSquare({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setColor(BLUE); layer->setDisplayFrame(coloredSquare); @@ -454,9 +456,9 @@ TEST_P(GraphicsCompositionTest, ClientComposition) { expectedColors, getDisplayWidth(), {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}, BLUE); - auto layer = std::make_shared(mComposerClient, *mTestRenderEngine, - getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), PixelFormat::RGBA_FP16); + auto layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight(), PixelFormat::RGBA_FP16, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(ReadbackHelper::getDataspaceForColorMode(mode)); @@ -550,7 +552,7 @@ TEST_P(GraphicsCompositionTest, DeviceAndClientComposition) { auto deviceLayer = std::make_shared( mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight() / 2, PixelFormat::RGBA_8888); + getDisplayHeight() / 2, PixelFormat::RGBA_8888, *mWriter); std::vector deviceColors(deviceLayer->getWidth() * deviceLayer->getHeight()); ReadbackHelper::fillColorsArea(deviceColors, static_cast(deviceLayer->getWidth()), {0, 0, static_cast(deviceLayer->getWidth()), @@ -574,7 +576,7 @@ TEST_P(GraphicsCompositionTest, DeviceAndClientComposition) { auto clientLayer = std::make_shared( mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), clientWidth, - clientHeight, PixelFormat::RGBA_FP16, Composition::DEVICE); + clientHeight, PixelFormat::RGBA_FP16, *mWriter, Composition::DEVICE); common::Rect clientFrame = {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}; clientLayer->setDisplayFrame(clientFrame); @@ -643,9 +645,9 @@ TEST_P(GraphicsCompositionTest, SetLayerDamage) { static_cast(getDisplayWidth() * getDisplayHeight())); ReadbackHelper::fillColorsArea(expectedColors, getDisplayWidth(), redRect, RED); - auto layer = std::make_shared(mComposerClient, *mTestRenderEngine, - getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), PixelFormat::RGBA_8888); + auto layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight(), PixelFormat::RGBA_8888, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(ReadbackHelper::getDataspaceForColorMode(mode)); @@ -714,7 +716,8 @@ TEST_P(GraphicsCompositionTest, SetLayerPlaneAlpha) { return; } - auto layer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto layer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); layer->setColor(RED); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); @@ -774,9 +777,9 @@ TEST_P(GraphicsCompositionTest, SetLayerSourceCrop) { expectedColors, getDisplayWidth(), {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}, BLUE); - auto layer = std::make_shared(mComposerClient, *mTestRenderEngine, - getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), PixelFormat::RGBA_8888); + auto layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight(), PixelFormat::RGBA_8888, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(ReadbackHelper::getDataspaceForColorMode(mode)); @@ -828,11 +831,13 @@ TEST_P(GraphicsCompositionTest, SetLayerZOrder) { common::Rect redRect = {0, 0, getDisplayWidth(), getDisplayHeight() / 2}; common::Rect blueRect = {0, getDisplayHeight() / 4, getDisplayWidth(), getDisplayHeight()}; - auto redLayer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto redLayer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); redLayer->setColor(RED); redLayer->setDisplayFrame(redRect); - auto blueLayer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto blueLayer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); blueLayer->setColor(BLUE); blueLayer->setDisplayFrame(blueRect); blueLayer->setZOrder(5); @@ -914,14 +919,14 @@ TEST_P(GraphicsCompositionTest, SetLayerBrightnessDims) { static constexpr float kMaxBrightnessNits = 300.f; const auto redLayer = - std::make_shared(mComposerClient, getPrimaryDisplayId()); + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); redLayer->setColor(RED); redLayer->setDisplayFrame(redRect); redLayer->setWhitePointNits(kMaxBrightnessNits); redLayer->setBrightness(1.f); const auto dimmerRedLayer = - std::make_shared(mComposerClient, getPrimaryDisplayId()); + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); dimmerRedLayer->setColor(RED); dimmerRedLayer->setDisplayFrame(dimmerRedRect); // Intentionally use a small dimming ratio as some implementations may be more likely to @@ -992,14 +997,14 @@ class GraphicsBlendModeCompositionTest mTopLayerColor); auto backgroundLayer = - std::make_shared(mComposerClient, getPrimaryDisplayId()); + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); backgroundLayer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); backgroundLayer->setZOrder(0); backgroundLayer->setColor(mBackgroundColor); - auto layer = std::make_shared(mComposerClient, *mTestRenderEngine, - getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), PixelFormat::RGBA_8888); + auto layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight(), PixelFormat::RGBA_8888, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(Dataspace::UNKNOWN); @@ -1190,7 +1195,7 @@ class GraphicsTransformCompositionTest : public GraphicsCompositionTest { GraphicsCompositionTest::SetUp(); auto backgroundLayer = - std::make_shared(mComposerClient, getPrimaryDisplayId()); + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); backgroundLayer->setColor({0.0f, 0.0f, 0.0f, 0.0f}); backgroundLayer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); backgroundLayer->setZOrder(0); @@ -1202,7 +1207,7 @@ class GraphicsTransformCompositionTest : public GraphicsCompositionTest { mLayer = std::make_shared(mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), mSideLength, mSideLength, - PixelFormat::RGBA_8888); + PixelFormat::RGBA_8888, *mWriter); mLayer->setDisplayFrame({0, 0, mSideLength, mSideLength}); mLayer->setZOrder(10); @@ -1388,7 +1393,7 @@ class GraphicsColorManagementCompositionTest void makeLayer() { mLayer = std::make_shared( mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), common::PixelFormat::RGBA_8888); + getDisplayHeight(), common::PixelFormat::RGBA_8888, *mWriter); mLayer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); mLayer->setZOrder(10); mLayer->setAlpha(1.f); diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp index 2b755c2c42..5ff420a05b 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp @@ -70,7 +70,7 @@ class GraphicsComposerAidlTest : public ::testing::TestWithParam { } void TearDown() override { - ASSERT_TRUE(mComposerClient->tearDown()); + ASSERT_TRUE(mComposerClient->tearDown(nullptr)); mComposerClient.reset(); } @@ -832,36 +832,58 @@ TEST_P(GraphicsComposerAidlTest, DestroyVirtualDisplay_BadDisplay) { } TEST_P(GraphicsComposerAidlTest, CreateLayer) { + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "Create layer will be tested in GraphicsComposerAidlBatchedCommandTest"; + return; + } + const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, nullptr); EXPECT_TRUE(status.isOk()); - EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk()); + EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer, nullptr).isOk()); } TEST_P(GraphicsComposerAidlTest, CreateLayer_BadDisplay) { - const auto& [status, _] = mComposerClient->createLayer(getInvalidDisplayId(), kBufferSlotCount); + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "Create layer will be tested in GraphicsComposerAidlBatchedCommandTest"; + return; + } + + const auto& [status, _] = + mComposerClient->createLayer(getInvalidDisplayId(), kBufferSlotCount, nullptr); EXPECT_FALSE(status.isOk()); EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY)); } TEST_P(GraphicsComposerAidlTest, DestroyLayer_BadDisplay) { + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "Destroy layer will be tested in GraphicsComposerAidlBatchedCommandTest"; + return; + } + const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, nullptr); EXPECT_TRUE(status.isOk()); - const auto& destroyStatus = mComposerClient->destroyLayer(getInvalidDisplayId(), layer); + const auto& destroyStatus = + mComposerClient->destroyLayer(getInvalidDisplayId(), layer, nullptr); EXPECT_FALSE(destroyStatus.isOk()); EXPECT_NO_FATAL_FAILURE( assertServiceSpecificError(destroyStatus, IComposerClient::EX_BAD_DISPLAY)); - ASSERT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk()); + ASSERT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer, nullptr).isOk()); } TEST_P(GraphicsComposerAidlTest, DestroyLayer_BadLayerError) { + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "Destroy layer will be tested in GraphicsComposerAidlBatchedCommandTest"; + return; + } + // We haven't created any layers yet, so any id should be invalid - const auto& status = mComposerClient->destroyLayer(getPrimaryDisplayId(), /*layer*/ 1); + const auto& status = mComposerClient->destroyLayer(getPrimaryDisplayId(), /*layer*/ 1, nullptr); EXPECT_FALSE(status.isOk()); EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_LAYER)); @@ -1171,6 +1193,12 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayConfigNoRepetitions) { } } +TEST_P(GraphicsComposerAidlTest, LayerLifecycleCapabilityNotSupportedOnOldVersions) { + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + EXPECT_GE(getInterfaceVersion(), 3); + } +} + class GraphicsComposerAidlV2Test : public GraphicsComposerAidlTest { protected: void SetUp() override { @@ -1376,6 +1404,7 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { ASSERT_TRUE(mReader.takeErrors().empty()); ASSERT_TRUE(mReader.takeChangedCompositionTypes(getPrimaryDisplayId()).empty()); + ASSERT_TRUE(mComposerClient->tearDown(&getWriter(getPrimaryDisplayId()))); ASSERT_NO_FATAL_FAILURE(GraphicsComposerAidlTest::TearDown()); } @@ -1463,10 +1492,10 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { RenderIntent::COLORIMETRIC) .isOk()); + auto& writer = getWriter(display.getDisplayId()); const auto& [status, layer] = - mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); - auto& writer = getWriter(display.getDisplayId()); { const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); ASSERT_NE(nullptr, buffer); @@ -1506,7 +1535,7 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { execute(); } - EXPECT_TRUE(mComposerClient->destroyLayer(display.getDisplayId(), layer).isOk()); + EXPECT_TRUE(mComposerClient->destroyLayer(display.getDisplayId(), layer, &writer).isOk()); } sp<::android::Fence> presentAndGetFence( @@ -1541,15 +1570,16 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { } int64_t createOnScreenLayer(Composition composition = Composition::DEVICE) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); Rect displayFrame{0, 0, getPrimaryDisplay().getDisplayWidth(), getPrimaryDisplay().getDisplayHeight()}; FRect cropRect{0, 0, (float)getPrimaryDisplay().getDisplayWidth(), (float)getPrimaryDisplay().getDisplayHeight()}; configureLayer(getPrimaryDisplay(), layer, composition, displayFrame, cropRect); - auto& writer = getWriter(getPrimaryDisplayId()); + writer.setLayerDataspace(getPrimaryDisplayId(), layer, common::Dataspace::UNKNOWN); return layer; } @@ -1758,10 +1788,10 @@ TEST_P(GraphicsComposerAidlCommandTest, SetColorTransform) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerColorTransform) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerColorTransform(getPrimaryDisplayId(), layer, kIdentity.data()); execute(); @@ -1900,7 +1930,7 @@ TEST_P(GraphicsComposerAidlCommandTest, PresentDisplayNoLayerStateChanges) { ASSERT_NE(nullptr, handle); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); Rect displayFrame{0, 0, getPrimaryDisplay().getDisplayWidth(), @@ -1937,15 +1967,15 @@ TEST_P(GraphicsComposerAidlCommandTest, PresentDisplayNoLayerStateChanges) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerCursorPosition) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); const auto handle = buffer->handle; ASSERT_NE(nullptr, handle); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBuffer(getPrimaryDisplayId(), layer, /*slot*/ 0, handle, /*acquireFence*/ -1); Rect displayFrame{0, 0, getPrimaryDisplay().getDisplayWidth(), @@ -1981,19 +2011,19 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerBuffer) { const auto handle = buffer->handle; ASSERT_NE(nullptr, handle); + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBuffer(getPrimaryDisplayId(), layer, /*slot*/ 0, handle, /*acquireFence*/ -1); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerBufferMultipleTimes) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); // Setup 3 buffers in the buffer cache, with the last buffer being active. Then, emulate the // Android platform code that clears all 3 buffer slots by setting all but the active buffer @@ -2041,14 +2071,14 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerBufferMultipleTimes) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerSurfaceDamage) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); Rect empty{0, 0, 0, 0}; Rect unit{0, 0, 1, 1}; - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerSurfaceDamage(getPrimaryDisplayId(), layer, std::vector(1, empty)); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2063,14 +2093,14 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerSurfaceDamage) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerBlockingRegion) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); Rect empty{0, 0, 0, 0}; Rect unit{0, 0, 1, 1}; - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBlockingRegion(getPrimaryDisplayId(), layer, std::vector(1, empty)); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2085,11 +2115,11 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerBlockingRegion) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerBlendMode) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBlendMode(getPrimaryDisplayId(), layer, BlendMode::NONE); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2104,11 +2134,11 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerBlendMode) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerColor) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerColor(getPrimaryDisplayId(), layer, Color{1.0f, 1.0f, 1.0f, 1.0f}); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2119,11 +2149,11 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerColor) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerCompositionType) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerCompositionType(getPrimaryDisplayId(), layer, Composition::CLIENT); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2142,8 +2172,9 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerCompositionType) { TEST_P(GraphicsComposerAidlCommandTest, DisplayDecoration) { for (VtsDisplay& display : mDisplays) { + auto& writer = getWriter(display.getDisplayId()); const auto [layerStatus, layer] = - mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); const auto [error, support] = @@ -2166,8 +2197,7 @@ TEST_P(GraphicsComposerAidlCommandTest, DisplayDecoration) { } configureLayer(display, layer, Composition::DISPLAY_DECORATION, display.getFrameRect(), - display.getCrop()); - auto& writer = getWriter(display.getDisplayId()); + display.getCrop()); writer.setLayerBuffer(display.getDisplayId(), layer, /*slot*/ 0, decorBuffer->handle, /*acquireFence*/ -1); writer.validateDisplay(display.getDisplayId(), ComposerClientWriter::kNoTimestamp, @@ -2184,31 +2214,31 @@ TEST_P(GraphicsComposerAidlCommandTest, DisplayDecoration) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerDataspace) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerDataspace(getPrimaryDisplayId(), layer, Dataspace::UNKNOWN); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerDisplayFrame) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerDisplayFrame(getPrimaryDisplayId(), layer, Rect{0, 0, 1, 1}); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerPlaneAlpha) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerPlaneAlpha(getPrimaryDisplayId(), layer, /*alpha*/ 0.0f); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2228,31 +2258,31 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerSidebandStream) { const auto handle = buffer->handle; ASSERT_NE(nullptr, handle); + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerSidebandStream(getPrimaryDisplayId(), layer, handle); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerSourceCrop) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerSourceCrop(getPrimaryDisplayId(), layer, FRect{0.0f, 0.0f, 1.0f, 1.0f}); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerTransform) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerTransform(getPrimaryDisplayId(), layer, static_cast(0)); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2291,14 +2321,14 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerTransform) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerVisibleRegion) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); Rect empty{0, 0, 0, 0}; Rect unit{0, 0, 1, 1}; - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerVisibleRegion(getPrimaryDisplayId(), layer, std::vector(1, empty)); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2313,11 +2343,12 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerVisibleRegion) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerZOrder) { + auto& writer = getWriter(getPrimaryDisplayId()); + const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerZOrder(getPrimaryDisplayId(), layer, /*z*/ 10); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2328,8 +2359,9 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerZOrder) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerPerFrameMetadata) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); /** @@ -2344,7 +2376,6 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerPerFrameMetadata) { * white (D65) 0.3127 0.3290 */ - auto& writer = getWriter(getPrimaryDisplayId()); std::vector aidlMetadata; aidlMetadata.push_back({PerFrameMetadataKey::DISPLAY_RED_PRIMARY_X, 0.680f}); aidlMetadata.push_back({PerFrameMetadataKey::DISPLAY_RED_PRIMARY_Y, 0.320f}); @@ -2364,18 +2395,19 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerPerFrameMetadata) { const auto errors = mReader.takeErrors(); if (errors.size() == 1 && errors[0].errorCode == EX_UNSUPPORTED_OPERATION) { GTEST_SUCCEED() << "SetLayerPerFrameMetadata is not supported"; - EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk()); + EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer, &writer).isOk()); return; } - EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk()); + EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer, &writer).isOk()); } TEST_P(GraphicsComposerAidlCommandTest, setLayerBrightness) { + auto& writer = getWriter(getPrimaryDisplayId()); + const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBrightness(getPrimaryDisplayId(), layer, 0.2f); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2604,12 +2636,12 @@ TEST_P(GraphicsComposerAidlCommandV2Test, SkipValidateDeprecatedTest) { } TEST_P(GraphicsComposerAidlCommandV2Test, SetLayerBufferSlotsToClear) { + auto& writer = getWriter(getPrimaryDisplayId()); // Older HAL versions use a backwards compatible way of clearing buffer slots // HAL at version 1 or lower does not have LayerCommand::bufferSlotsToClear const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); // setup 3 buffers in the buffer cache, with the last buffer being active // then emulate the Android platform code that clears all 3 buffer slots @@ -2868,7 +2900,8 @@ TEST_P(GraphicsComposerAidlCommandTest, MultiThreadedPresent) { EXPECT_TRUE(mComposerClient->setPowerMode(displayId, PowerMode::ON).isOk()); - const auto& [status, layer] = mComposerClient->createLayer(displayId, kBufferSlotCount); + const auto& [status, layer] = + mComposerClient->createLayer(displayId, kBufferSlotCount, &writer); const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); ASSERT_NE(nullptr, buffer); ASSERT_EQ(::android::OK, buffer->initCheck()); @@ -2918,7 +2951,8 @@ TEST_P(GraphicsComposerAidlCommandTest, MultiThreadedPresent) { } for (auto& [displayId, layer] : layers) { - EXPECT_TRUE(mComposerClient->destroyLayer(displayId, layer).isOk()); + auto& writer = getWriter(displayId); + EXPECT_TRUE(mComposerClient->destroyLayer(displayId, layer, &writer).isOk()); } std::lock_guard guard{readersMutex}; @@ -2928,22 +2962,22 @@ TEST_P(GraphicsComposerAidlCommandTest, MultiThreadedPresent) { } } -class GraphicsComposerAidlBatchedCommandTest : public GraphicsComposerAidlCommandTest { +class GraphicsComposerAidlCommandV3Test : public GraphicsComposerAidlCommandTest { protected: void SetUp() override { - GraphicsComposerAidlCommandTest::SetUp(); + GraphicsComposerAidlTest::SetUp(); if (getInterfaceVersion() <= 2) { GTEST_SKIP() << "Device interface version is expected to be >= 3"; } } - void TearDown() override { - const auto errors = mReader.takeErrors(); - ASSERT_TRUE(mReader.takeErrors().empty()); - ASSERT_NO_FATAL_FAILURE(GraphicsComposerAidlTest::TearDown()); - } }; -TEST_P(GraphicsComposerAidlBatchedCommandTest, CreateBatchedCommand) { +TEST_P(GraphicsComposerAidlCommandV3Test, CreateBatchedCommand) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + auto& writer = getWriter(getPrimaryDisplayId()); int64_t layer = 5; writer.setLayerLifecycleBatchCommandType(getPrimaryDisplayId(), layer, @@ -2955,7 +2989,30 @@ TEST_P(GraphicsComposerAidlBatchedCommandTest, CreateBatchedCommand) { ASSERT_TRUE(mReader.takeErrors().empty()); } -TEST_P(GraphicsComposerAidlBatchedCommandTest, DestroyBatchedCommand) { +TEST_P(GraphicsComposerAidlCommandV3Test, CreateBatchedCommand_BadDisplay) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + + auto& writer = getWriter(getPrimaryDisplayId()); + int64_t layer = 5; + writer.setLayerLifecycleBatchCommandType(getInvalidDisplayId(), layer, + LayerLifecycleBatchCommandType::CREATE); + writer.setNewBufferSlotCount(getPrimaryDisplayId(), layer, 1); + writer.validateDisplay(getPrimaryDisplayId(), ComposerClientWriter::kNoTimestamp, + VtsComposerClient::kNoFrameIntervalNs); + execute(); + const auto errors = mReader.takeErrors(); + ASSERT_TRUE(errors.size() == 1 && errors[0].errorCode == IComposerClient::EX_BAD_DISPLAY); +} + +TEST_P(GraphicsComposerAidlCommandV3Test, DestroyBatchedCommand) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + auto& writer = getWriter(getPrimaryDisplayId()); int64_t layer = 5; writer.setLayerLifecycleBatchCommandType(getPrimaryDisplayId(), layer, @@ -2972,11 +3029,43 @@ TEST_P(GraphicsComposerAidlBatchedCommandTest, DestroyBatchedCommand) { LayerLifecycleBatchCommandType::CREATE); writer.setNewBufferSlotCount(getPrimaryDisplayId(), layer, 1); + execute(); + const auto errors = mReader.takeErrors(); + ASSERT_TRUE(errors.size() == 1 && errors[0].errorCode == IComposerClient::EX_BAD_DISPLAY); +} + +TEST_P(GraphicsComposerAidlCommandV3Test, DestroyBatchedCommand_BadDisplay) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + + auto& writer = getWriter(getPrimaryDisplayId()); + int64_t layer = 5; + writer.setLayerLifecycleBatchCommandType(getPrimaryDisplayId(), layer, + LayerLifecycleBatchCommandType::CREATE); + writer.setNewBufferSlotCount(getPrimaryDisplayId(), layer, 1); + writer.validateDisplay(getPrimaryDisplayId(), ComposerClientWriter::kNoTimestamp, + VtsComposerClient::kNoFrameIntervalNs); + execute(); + ASSERT_TRUE(mReader.takeErrors().empty()); + writer.setLayerLifecycleBatchCommandType(getInvalidDisplayId(), layer, + LayerLifecycleBatchCommandType::DESTROY); + layer++; + writer.setLayerLifecycleBatchCommandType(getInvalidDisplayId(), layer, + LayerLifecycleBatchCommandType::CREATE); + writer.setNewBufferSlotCount(getPrimaryDisplayId(), layer, 1); + execute(); ASSERT_TRUE(mReader.takeErrors().empty()); } -TEST_P(GraphicsComposerAidlBatchedCommandTest, NoCreateDestroyBatchedCommandIncorrectLayer) { +TEST_P(GraphicsComposerAidlCommandV3Test, NoCreateDestroyBatchedCommandIncorrectLayer) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + auto& writer = getWriter(getPrimaryDisplayId()); int64_t layer = 5; writer.setLayerLifecycleBatchCommandType(getPrimaryDisplayId(), layer, @@ -2986,11 +3075,6 @@ TEST_P(GraphicsComposerAidlBatchedCommandTest, NoCreateDestroyBatchedCommandInco ASSERT_TRUE(errors.size() == 1 && errors[0].errorCode == IComposerClient::EX_BAD_LAYER); } -GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlBatchedCommandTest); -INSTANTIATE_TEST_SUITE_P( - PerInstance, GraphicsComposerAidlBatchedCommandTest, - testing::ValuesIn(::android::getAidlHalInstanceNames(IComposer::descriptor)), - ::android::PrintInstanceNameToString); GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlCommandTest); INSTANTIATE_TEST_SUITE_P( PerInstance, GraphicsComposerAidlCommandTest, @@ -3016,6 +3100,11 @@ INSTANTIATE_TEST_SUITE_P( PerInstance, GraphicsComposerAidlCommandV2Test, testing::ValuesIn(::android::getAidlHalInstanceNames(IComposer::descriptor)), ::android::PrintInstanceNameToString); +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlCommandV3Test); +INSTANTIATE_TEST_SUITE_P( + PerInstance, GraphicsComposerAidlCommandV3Test, + testing::ValuesIn(::android::getAidlHalInstanceNames(IComposer::descriptor)), + ::android::PrintInstanceNameToString); } // namespace aidl::android::hardware::graphics::composer3::vts int main(int argc, char** argv) { -- GitLab From 483e69f4eb0a14993d8f4b4bc3daf5c6e2ad56df Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Wed, 27 Dec 2023 22:54:20 +0000 Subject: [PATCH 093/418] BufferPoolClient: avoid dereference null accessor Bug: 308739058 Test: N/A Change-Id: I568e9d82976a1f7d7278748f347a17eb6f93fc79 --- media/bufferpool/aidl/default/BufferPoolClient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media/bufferpool/aidl/default/BufferPoolClient.cpp b/media/bufferpool/aidl/default/BufferPoolClient.cpp index e9777d8c41..0e249d5c63 100644 --- a/media/bufferpool/aidl/default/BufferPoolClient.cpp +++ b/media/bufferpool/aidl/default/BufferPoolClient.cpp @@ -297,7 +297,7 @@ BufferPoolClient::Impl::Impl(const std::shared_ptr &accessor, mLastEvictCacheMs(::android::elapsedRealtime()) { IAccessor::ConnectionInfo conInfo; bool valid = false; - if(accessor->connect(observer, &conInfo).isOk()) { + if (accessor && accessor->connect(observer, &conInfo).isOk()) { auto channel = std::make_unique(conInfo.toFmqDesc); auto observer = std::make_unique(conInfo.fromFmqDesc); -- GitLab From e3ee7500f35fc607a79e53aa73d40501f0196a43 Mon Sep 17 00:00:00 2001 From: Mahesh KKV Date: Wed, 27 Dec 2023 14:43:20 -0800 Subject: [PATCH 094/418] Update TWT related comments Bug: 317805772 Test: m Change-Id: I29800e8ecbbce245d2038eb098890b8b2c1ecbf1 --- wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl | 8 ++++++++ wifi/aidl/android/hardware/wifi/TwtRequest.aidl | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl index 4012c3ed73..5db5e817a0 100644 --- a/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl @@ -18,6 +18,14 @@ package android.hardware.wifi; /** * Target Wake Time (TWT) Capabilities supported. + * + * TWT allows Wi-Fi stations to manage activity in a network by scheduling to operate at different + * times. This minimizes the contention and reduces the required amount of time that a station + * utilizing a power management mode needs to be awake. + * + * IEEE 802.11ax standard defines two modes of TWT operation: + * - Individual TWT (default mode of operation if TWT requester is supported) + * - Broadcast TWT */ @VintfStability parcelable TwtCapabilities { diff --git a/wifi/aidl/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/android/hardware/wifi/TwtRequest.aidl index b063da3911..3338dee6e7 100644 --- a/wifi/aidl/android/hardware/wifi/TwtRequest.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtRequest.aidl @@ -31,6 +31,9 @@ parcelable TwtRequest { int minWakeDurationMicros; /** * Maximum TWT wake duration in microseconds. + * + * As per IEEE 802.11ax spec, section 9.4.2.199 TWT element, the maximum wake duration is + * 65280 microseconds. */ int maxWakeDurationMicros; /** @@ -39,6 +42,9 @@ parcelable TwtRequest { long minWakeIntervalMicros; /** * Maximum TWT wake interval in microseconds. + * + * As per IEEE 802.11ax spec, section 9.4.2.199 TWT element, the maximum wake interval is + * 65535 * 2^31 microseconds. */ long maxWakeIntervalMicros; } -- GitLab From 27719f12e8bf4548fe2db0423e623019b795c805 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Thu, 21 Dec 2023 16:10:52 -0800 Subject: [PATCH 095/418] Revert "Add remote submix direct paths" This reverts commit ce9767a966c9c921e7507985d32ae60e8c6007e8. Please see the comment on aosp/2832731. This configuration leads to anomalous framework behavior. Bug: 311830316 Test: atest audiorouting_tests Change-Id: I5be3ac18819e297aa199c5a0f5d2e85758448b4b --- audio/aidl/default/Configuration.cpp | 46 +++---------------- .../default/r_submix/ModuleRemoteSubmix.cpp | 8 ---- 2 files changed, 6 insertions(+), 48 deletions(-) diff --git a/audio/aidl/default/Configuration.cpp b/audio/aidl/default/Configuration.cpp index baaa55f9b9..2a8e58f843 100644 --- a/audio/aidl/default/Configuration.cpp +++ b/audio/aidl/default/Configuration.cpp @@ -32,7 +32,6 @@ using aidl::android::media::audio::common::AudioDeviceType; using aidl::android::media::audio::common::AudioFormatDescription; using aidl::android::media::audio::common::AudioFormatType; using aidl::android::media::audio::common::AudioGainConfig; -using aidl::android::media::audio::common::AudioInputFlags; using aidl::android::media::audio::common::AudioIoFlags; using aidl::android::media::audio::common::AudioOutputFlags; using aidl::android::media::audio::common::AudioPort; @@ -322,25 +321,20 @@ std::unique_ptr getPrimaryConfiguration() { // // Mix ports: // * "r_submix output", maximum 10 opened streams, maximum 10 active streams -// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000, 192000 +// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000 // * "r_submix input", maximum 10 opened streams, maximum 10 active streams -// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000, 192000 -// * "r_submix output direct", DIRECT|IEC958_NONAUDIO, 1 max open, 1 max active -// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000, 192000 -// * "r_submix input direct", DIRECT, 1 max open, 1 max active -// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000, 192000 - +// - profile PCM 16-bit; STEREO; 8000, 11025, 16000, 32000, 44100, 48000 // // Routes: -// "r_submix output", "r_submix output direct" -> "Remote Submix Out" -// "Remote Submix In" -> "r_submix input", "r_submix input direct" +// "r_submix output" -> "Remote Submix Out" +// "Remote Submix In" -> "r_submix input" // std::unique_ptr getRSubmixConfiguration() { static const Configuration configuration = []() { Configuration c; const std::vector remoteSubmixPcmAudioProfiles{ createProfile(PcmType::INT_16_BIT, {AudioChannelLayout::LAYOUT_STEREO}, - {8000, 11025, 16000, 32000, 44100, 48000, 192000})}; + {8000, 11025, 16000, 32000, 44100, 48000})}; // Device ports @@ -365,41 +359,13 @@ std::unique_ptr getRSubmixConfiguration() { rsubmixOutMix.profiles = remoteSubmixPcmAudioProfiles; c.ports.push_back(rsubmixOutMix); - // Adding a DIRECT flag to rsubmixInMix breaks the mixer paths, so we need separate - // non direct and direct paths. It is added because for IEC61937 encapsulated over PCM, we - // need the DIRECT and IEC958_NONAUDIO flags as AudioFlinger adds them. - AudioPort rsubmixOutDirectMix = - createPort(c.nextPortId++, "r_submix output direct", - makeBitPositionFlagMask({ - AudioOutputFlags::DIRECT, - AudioOutputFlags::IEC958_NONAUDIO}), - false /* isInput */, - createPortMixExt(1 /* maxOpenStreamCount */, - 1 /* maxActiveStreamCount */)); - rsubmixOutDirectMix.profiles = remoteSubmixPcmAudioProfiles; - c.ports.push_back(rsubmixOutDirectMix); - AudioPort rsubmixInMix = createPort(c.nextPortId++, "r_submix input", 0, true, createPortMixExt(10, 10)); rsubmixInMix.profiles = remoteSubmixPcmAudioProfiles; c.ports.push_back(rsubmixInMix); - // Adding a DIRECT flag to rsubmixInMix breaks the capture paths, so we need separate - // non direct and direct paths. It is added because for IEC61937 encapsulated over PCM, we - // need the DIRECT flag for the capability so AudioFlinger can find a DIRECT input match. - AudioPort rsubmixInDirectMix = - createPort(c.nextPortId++, "r_submix input direct", - makeBitPositionFlagMask({AudioInputFlags::DIRECT}), - true /* isInput */, - createPortMixExt(1 /* maxOpenStreamCount */, - 1 /* maxActiveStreamCount */)); - rsubmixInDirectMix.profiles = remoteSubmixPcmAudioProfiles; - c.ports.push_back(rsubmixInDirectMix); - - c.routes.push_back(createRoute( - {rsubmixOutMix, rsubmixOutDirectMix}, rsubmixOutDevice)); + c.routes.push_back(createRoute({rsubmixOutMix}, rsubmixOutDevice)); c.routes.push_back(createRoute({rsubmixInDevice}, rsubmixInMix)); - c.routes.push_back(createRoute({rsubmixInDevice}, rsubmixInDirectMix)); return c; }(); diff --git a/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp b/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp index 47ade4981f..7bc783c5b1 100644 --- a/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp +++ b/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp @@ -90,10 +90,6 @@ ndk::ScopedAStatus ModuleRemoteSubmix::setAudioPortConfig(const AudioPortConfig& ndk::ScopedAStatus ModuleRemoteSubmix::createInputStream( StreamContext&& context, const SinkMetadata& sinkMetadata, const std::vector& microphones, std::shared_ptr* result) { - if (context.getFormat().type != AudioFormatType::PCM) { - LOG(DEBUG) << __func__ << ": not supported for format " << context.getFormat().toString(); - return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); - } return createStreamInstance(result, std::move(context), sinkMetadata, microphones); } @@ -101,10 +97,6 @@ ndk::ScopedAStatus ModuleRemoteSubmix::createInputStream( ndk::ScopedAStatus ModuleRemoteSubmix::createOutputStream( StreamContext&& context, const SourceMetadata& sourceMetadata, const std::optional& offloadInfo, std::shared_ptr* result) { - if (context.getFormat().type != AudioFormatType::PCM) { - LOG(DEBUG) << __func__ << ": not supported for format " << context.getFormat().toString(); - return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); - } return createStreamInstance(result, std::move(context), sourceMetadata, offloadInfo); } -- GitLab From b80de7bcd7c5138d483e60c1fe5b3073a989c3af Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 27 Dec 2023 14:13:31 -0800 Subject: [PATCH 096/418] audio: Add test configs for effects VTS tests The main purpose of the config is to shut down the framework audioserver while the VTS test is running. This is achieved by setting 'vts.native_server.on' to '1'. Without this, restarts of the effects HAL process which are a normal part of tests affect the audioserver and may lead to failures of framework tests that run interleaved with these VTS tests. Bug: 264712385 Test: atest --test-mapping hardware/interfaces/audio/aidl/vts Change-Id: I2515cb62e46ef8e93cbddb2c0219f4523d2ecda5 --- audio/aidl/vts/Android.bp | 2 +- ...CoreTargetTest.xml => VtsHalAudioTargetTestTemplate.xml} | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename audio/aidl/vts/{VtsHalAudioCoreTargetTest.xml => VtsHalAudioTargetTestTemplate.xml} (86%) diff --git a/audio/aidl/vts/Android.bp b/audio/aidl/vts/Android.bp index 9b0e233261..85319ec1b0 100644 --- a/audio/aidl/vts/Android.bp +++ b/audio/aidl/vts/Android.bp @@ -36,6 +36,7 @@ cc_defaults { "-Werror", "-Wthread-safety", ], + test_config_template: "VtsHalAudioTargetTestTemplate.xml", test_suites: [ "general-tests", "vts", @@ -71,7 +72,6 @@ cc_test { "VtsHalAudioCoreConfigTargetTest.cpp", "VtsHalAudioCoreModuleTargetTest.cpp", ], - test_config: "VtsHalAudioCoreTargetTest.xml", } cc_test { diff --git a/audio/aidl/vts/VtsHalAudioCoreTargetTest.xml b/audio/aidl/vts/VtsHalAudioTargetTestTemplate.xml similarity index 86% rename from audio/aidl/vts/VtsHalAudioCoreTargetTest.xml rename to audio/aidl/vts/VtsHalAudioTargetTestTemplate.xml index 9d3adc1d0f..c92e8520af 100644 --- a/audio/aidl/vts/VtsHalAudioCoreTargetTest.xml +++ b/audio/aidl/vts/VtsHalAudioTargetTestTemplate.xml @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + -- GitLab From b8a16f8b929f9a1f5ec9110acc1ec88e6004f845 Mon Sep 17 00:00:00 2001 From: Priyanka Advani Date: Thu, 28 Dec 2023 00:07:56 +0000 Subject: [PATCH 097/418] Revert "Set min_sdk_version:34" Revert submission 25624362-persistable-bundle-hack Reason for revert: Likely culprit for b/317912559 Reverted changes: /q/submissionid:25624362-persistable-bundle-hack Change-Id: I785a66a9542f9798ec89d2b85059db68c9ce8130 --- wifi/aidl/Android.bp | 3 --- wifi/aidl/default/Android.bp | 1 - wifi/common/aidl/Android.bp | 3 --- 3 files changed, 7 deletions(-) diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp index 1a7c6d8335..ac95f85c2b 100644 --- a/wifi/aidl/Android.bp +++ b/wifi/aidl/Android.bp @@ -48,9 +48,6 @@ aidl_interface { cpp: { enabled: false, }, - ndk: { - min_sdk_version: "34", - }, }, versions_with_info: [ { diff --git a/wifi/aidl/default/Android.bp b/wifi/aidl/default/Android.bp index 2e3af1924a..31a3531046 100644 --- a/wifi/aidl/default/Android.bp +++ b/wifi/aidl/default/Android.bp @@ -67,7 +67,6 @@ cc_library_static { name: "android.hardware.wifi-service-lib", defaults: ["android.hardware.wifi-service-cppflags-defaults"], proprietary: true, - min_sdk_version: "34", compile_multilib: "first", cppflags: [ "-Wall", diff --git a/wifi/common/aidl/Android.bp b/wifi/common/aidl/Android.bp index 6ee2f42903..1913451fd7 100644 --- a/wifi/common/aidl/Android.bp +++ b/wifi/common/aidl/Android.bp @@ -43,8 +43,5 @@ aidl_interface { cpp: { enabled: false, }, - ndk: { - min_sdk_version: "34", - }, }, } -- GitLab From 85108745a48fe09fbf955acdfb12e171e6f397ae Mon Sep 17 00:00:00 2001 From: yomna Date: Thu, 28 Dec 2023 18:50:19 +0000 Subject: [PATCH 098/418] Clarify ambiguities in securityAlgorithmsUpdated. Make it clear that the modem should send an update whenever the ciphering or integrity algorithm changes, even if a given algorithm was used for a particular ConnectionEvent sometime in the past. Bug: 317205446 Test: m Change-Id: I4864614936fa972da4ce12cbe74ad5b69941ff87 --- .../network/IRadioNetworkIndication.aidl | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl b/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl index dde4128f09..875a1b2e1a 100644 --- a/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl +++ b/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl @@ -233,14 +233,22 @@ oneway interface IRadioNetworkIndication { * Indicates that a new ciphering or integrity algorithm was used for a particular voice, * signaling, or data connection attempt for a given PLMN and/or access network. Due to * power concerns, once a connection type has been reported on, follow-up reports about that - * connection type are only generated if there is any change to the previously reported + * connection type are only generated if there is any change to the most-recently reported * encryption or integrity, or if the value of SecurityAlgorithmUpdate#isUnprotectedEmergency - * changes. Thus the AP is only to be notified when there is new information. List is reset upon - * rebooting thus info about initial connections is always passed to the AP after a reboot. - * List is also reset if the SIM is changed or if there has been a change in the access network. + * changes. Thus the AP is only to be notified when there is new information. A change only in + * cell ID should not trigger an update, as the design is intended to be agnostic to dual + * connectivity ("secondary serving cells"). * - * Note: a change only in cell ID should not trigger an update, as the design is intended to - * be agnostic to dual connectivity ("secondary serving cells"). + * Sample scenario to further clarify "most-recently reported": + * + * 1. Modem reports user is connected to a null-ciphered 3G network. + * 2. User then moves and connects to a well-ciphered 5G network, and modem reports this. + * 3. User returns to original location and reconnects to the null-ciphered 3G network. Modem + * should report this as it's different than the most-recently reported data from step (2). + * + * List is reset upon rebooting thus info about initial connections is always passed to the AP + * after a reboot. List is also reset if the SIM is changed or if there has been a change in + * the access network. * * @param type Type of radio indication * @param securityAlgorithmUpdate SecurityAlgorithmUpdate encapsulates details of security -- GitLab From 4f5ede6434f9085881964abb18dbfc4d8e7d93f5 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 21 Dec 2023 17:25:57 -0800 Subject: [PATCH 099/418] Add ScheduleInfo validity check. Define the max task data size. Requires remote access HAL to return invalid arg if ScheduleInfo is not valid. Updated the reference impl to add the checks. Test: atest RemoteAccessServiceUnitTest Bug: 317405128 Change-Id: Ia17dda2683c3bcc861542cb2fbd812ce8bd368aa --- .../automotive/remoteaccess/ScheduleInfo.aidl | 1 + .../remoteaccess/IRemoteAccess.aidl | 3 + .../automotive/remoteaccess/ScheduleInfo.aidl | 3 + .../hal/default/src/RemoteAccessService.cpp | 21 +++++- .../test/RemoteAccessServiceUnitTest.cpp | 66 ++++++++++++++++++- 5 files changed, 92 insertions(+), 2 deletions(-) diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl index a5d81cf9fc..ec8733a1bc 100644 --- a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl @@ -41,4 +41,5 @@ parcelable ScheduleInfo { int count; long startTimeInEpochSeconds; long periodicInSeconds; + const int MAX_TASK_DATA_SIZE_IN_BYTES = 10240; } diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl index 705cdbdd08..f0468c42b4 100644 --- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl @@ -167,6 +167,9 @@ interface IRemoteAccess { * {@code scheduleId} for this client exists. * *

Must return {@code EX_ILLEGAL_ARGUMENT} if the task type is not supported. + * + *

Must return {@code EX_ILLEGLA_ARGUMENT} if the scheduleInfo is not valid (e.g. count is + * a negative number). */ void scheduleTask(in ScheduleInfo scheduleInfo); diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl index 40fba6f2a3..4f2537c773 100644 --- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl @@ -21,6 +21,7 @@ import android.hardware.automotive.remoteaccess.TaskType; @VintfStability @JavaDerive(equals=true, toString=true) parcelable ScheduleInfo { + const int MAX_TASK_DATA_SIZE_IN_BYTES = 10240; /** * The ID used to identify the client this schedule is for. This must be one of the * preconfigured remote access serverless client ID defined in car service resource @@ -41,6 +42,8 @@ parcelable ScheduleInfo { * executed. It is not interpreted/parsed by the Android system. * *

This is only used for {@code TaskType.CUSTOM}. + * + *

The data size must be less than {@link MAX_TASK_DATA_SIZE_IN_BYTES}. */ byte[] taskData; /** diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp index 2a7f2091e4..1b42a1f091 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp @@ -331,6 +331,24 @@ ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo ClientContext context; ScheduleTaskRequest request = {}; ScheduleTaskResponse response = {}; + + if (scheduleInfo.count < 0) { + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "count must be >= 0"); + } + if (scheduleInfo.startTimeInEpochSeconds < 0) { + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "startTimeInEpochSeconds must be >= 0"); + } + if (scheduleInfo.periodicInSeconds < 0) { + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "periodicInSeconds must be >= 0"); + } + if (scheduleInfo.taskData.size() > scheduleInfo.MAX_TASK_DATA_SIZE_IN_BYTES) { + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "task data too big"); + } + request.mutable_scheduleinfo()->set_clientid(scheduleInfo.clientId); request.mutable_scheduleinfo()->set_scheduleid(scheduleInfo.scheduleId); request.mutable_scheduleinfo()->set_data(scheduleInfo.taskData.data(), @@ -348,7 +366,8 @@ ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo case ErrorCode::OK: return ScopedAStatus::ok(); case ErrorCode::INVALID_ARG: - return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); + return ScopedAStatus::fromExceptionCodeWithMessage( + EX_ILLEGAL_ARGUMENT, "received invalid_arg from grpc server"); default: // Should not happen. return ScopedAStatus::fromServiceSpecificErrorWithMessage( diff --git a/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp b/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp index a46a983a9c..7992a50f5e 100644 --- a/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp +++ b/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp @@ -473,7 +473,71 @@ TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask) { EXPECT_EQ(grpcRequest.scheduleinfo().periodicinseconds(), kTestPeriodicInSeconds); } -TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidArg) { +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidCount) { + ScheduleInfo scheduleInfo = { + .clientId = kTestClientId, + .scheduleId = kTestScheduleId, + .taskData = kTestData, + .count = -1, + .startTimeInEpochSeconds = kTestStartTimeInEpochSeconds, + .periodicInSeconds = kTestPeriodicInSeconds, + }; + + ScopedAStatus status = getService()->scheduleTask(scheduleInfo); + + ASSERT_FALSE(status.isOk()); + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT); +} + +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidStartTimeInEpochSeconds) { + ScheduleInfo scheduleInfo = { + .clientId = kTestClientId, + .scheduleId = kTestScheduleId, + .taskData = kTestData, + .count = kTestCount, + .startTimeInEpochSeconds = -1, + .periodicInSeconds = kTestPeriodicInSeconds, + }; + + ScopedAStatus status = getService()->scheduleTask(scheduleInfo); + + ASSERT_FALSE(status.isOk()); + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT); +} + +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidPeriodicInSeconds) { + ScheduleInfo scheduleInfo = { + .clientId = kTestClientId, + .scheduleId = kTestScheduleId, + .taskData = kTestData, + .count = kTestCount, + .startTimeInEpochSeconds = kTestStartTimeInEpochSeconds, + .periodicInSeconds = -1, + }; + + ScopedAStatus status = getService()->scheduleTask(scheduleInfo); + + ASSERT_FALSE(status.isOk()); + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT); +} + +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_TaskDataTooLarge) { + ScheduleInfo scheduleInfo = { + .clientId = kTestClientId, + .scheduleId = kTestScheduleId, + .taskData = std::vector(ScheduleInfo::MAX_TASK_DATA_SIZE_IN_BYTES + 1), + .count = kTestCount, + .startTimeInEpochSeconds = kTestStartTimeInEpochSeconds, + .periodicInSeconds = kTestPeriodicInSeconds, + }; + + ScopedAStatus status = getService()->scheduleTask(scheduleInfo); + + ASSERT_FALSE(status.isOk()); + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT); +} + +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidArgFromGrpcServer) { EXPECT_CALL(*getGrpcWakeupClientStub(), ScheduleTask) .WillOnce([]([[maybe_unused]] ClientContext* context, [[maybe_unused]] const ScheduleTaskRequest& request, -- GitLab From 9b6404fe80a093a086de1a0fbfb550eaad71b6bf Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 27 Dec 2023 13:55:23 -0800 Subject: [PATCH 100/418] Fix bugs in TestWakeupClientServiceImpl. Initialize atomic variable. By default, it is not initialized. Check task queue stopped status while returning from the wait to prevent infinite loop. Test: atest TestWakeupClientServerHostUnitTest Bug: 317907688 Change-Id: I0259203797caca2fe3ff716c17398d3c1feab94d --- .../impl/include/TestWakeupClientServiceImpl.h | 5 +++-- .../impl/src/TestWakeupClientServiceImpl.cpp | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h b/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h index a7f47c2c57..41cc5d0035 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h +++ b/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h @@ -78,6 +78,7 @@ class TaskQueue final { void waitForTask(); void stopWait(); bool isEmpty(); + bool isStopped(); private: friend class TaskTimeoutMessageHandler; @@ -87,7 +88,7 @@ class TaskQueue final { GUARDED_BY(mLock); // A variable to notify mTasks is not empty. std::condition_variable mTasksNotEmptyCv; - std::atomic mStopped; + std::atomic mStopped = false; android::sp mLooper; android::sp mTaskTimeoutMessageHandler; std::atomic mTaskIdCounter = 0; @@ -214,7 +215,7 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { std::atomic mRemoteTaskConnectionAlive = false; std::mutex mLock; bool mGeneratingFakeTask GUARDED_BY(mLock); - std::atomic mServerStopped; + std::atomic mServerStopped = false; std::unordered_map> mInfoByScheduleIdByClientId GUARDED_BY(mLock); diff --git a/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp b/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp index d22335377a..eed3495575 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp +++ b/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp @@ -105,6 +105,10 @@ void TaskQueue::waitForTask() { }); } +bool TaskQueue::isStopped() { + return mStopped; +} + void TaskQueue::stopWait() { mStopped = true; { @@ -241,7 +245,7 @@ Status TestWakeupClientServiceImpl::GetRemoteTasks(ServerContext* context, while (true) { mTaskQueue->waitForTask(); - if (mServerStopped) { + if (mTaskQueue->isStopped()) { // Server stopped, exit the loop. printf("Server stopped exit loop\n"); break; @@ -250,11 +254,13 @@ Status TestWakeupClientServiceImpl::GetRemoteTasks(ServerContext* context, while (true) { auto maybeTask = mTaskQueue->maybePopOne(); if (!maybeTask.has_value()) { + printf("no task left\n"); // No task left, loop again and wait for another task(s). break; } // Loop through all the task in the queue but obtain lock for each element so we don't // hold lock while writing the response. + printf("Sending one remote task\n"); const GetRemoteTasksResponse& response = maybeTask.value(); if (!writer->Write(response)) { // Broken stream, maybe the client is shutting down. -- GitLab From 2bc967a9c36979506a8796716a27f13eb1e0cc2e Mon Sep 17 00:00:00 2001 From: sadiqsada Date: Tue, 2 Jan 2024 10:50:04 -0800 Subject: [PATCH 101/418] Initialize mFp file pointer to null Bug: 288170590 Test: atest VtsHalTvTunerTargetTest Change-Id: Ia1d78e42094073c6cfc7e4e00d65a540d148f02e --- tv/tuner/aidl/vts/functional/utils/IpStreamer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tv/tuner/aidl/vts/functional/utils/IpStreamer.h b/tv/tuner/aidl/vts/functional/utils/IpStreamer.h index d073003c98..8ac2ddb8ed 100644 --- a/tv/tuner/aidl/vts/functional/utils/IpStreamer.h +++ b/tv/tuner/aidl/vts/functional/utils/IpStreamer.h @@ -37,7 +37,7 @@ class IpStreamer { private: int mSockfd = -1; - FILE* mFp; + FILE* mFp = nullptr; bool mIsIpV4 = true; // By default, set to IPV4 int mPort = 12345; // default port int mBufferSize = 188; // bytes -- GitLab From ea414bf237e7f6c510e5b8500d39c74e1b9e9915 Mon Sep 17 00:00:00 2001 From: Mahesh KKV Date: Wed, 27 Dec 2023 15:59:29 -0800 Subject: [PATCH 102/418] Add number of spatial streams for 11az results Bug: 317922145 Test: m Change-Id: I28bedde8e5ffc5c34c9f8b26ee4a3ae06974a481 --- .../android/hardware/wifi/RttResult.aidl | 2 ++ .../aidl/android/hardware/wifi/RttResult.aidl | 22 +++++++++++++++++++ wifi/aidl/default/aidl_struct_util.cpp | 6 +++++ 3 files changed, 30 insertions(+) diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl index 9c6ad267f3..10c96749c9 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl @@ -63,4 +63,6 @@ parcelable RttResult { byte r2iTxLtfRepetitionCount; long ntbMinMeasurementTime; long ntbMaxMeasurementTime; + byte numTxSpatialStreams; + byte numRxSpatialStreams; } diff --git a/wifi/aidl/android/hardware/wifi/RttResult.aidl b/wifi/aidl/android/hardware/wifi/RttResult.aidl index ab9abb550e..438bc0a0a8 100644 --- a/wifi/aidl/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/android/hardware/wifi/RttResult.aidl @@ -148,11 +148,15 @@ parcelable RttResult { /** * Multiple transmissions of HE-LTF symbols in an HE (I2R) Ranging NDP. An HE-LTF repetition * value of 1 indicates no repetitions. + * + * Note: A required field for IEEE 802.11az result. */ byte i2rTxLtfRepetitionCount; /** * Multiple transmissions of HE-LTF symbols in an HE (R2I) Ranging NDP. An HE-LTF repetition * value of 1 indicates no repetitions. + * + * Note: A required field for IEEE 802.11az result. */ byte r2iTxLtfRepetitionCount; /** @@ -168,6 +172,8 @@ parcelable RttResult { * |RttResult.timestamp|. * * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. + * + * Note: A required field for IEEE 802.11az result. */ long ntbMinMeasurementTime; /** @@ -183,6 +189,22 @@ parcelable RttResult { * non-TB ranging negotiation. * * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. + * + * Note: A required field for IEEE 802.11az result. */ long ntbMaxMeasurementTime; + /** + * Number of transmit space-time streams used. Value is in the range 1 to 8. + * + * Note: Maximum limit is ultimately defined by the number of antennas that can be supported. + * A required field for IEEE 802.11az result. + */ + byte numTxSpatialStreams; + /** + * Number of receive space-time streams used. Value is in the range 1 to 8. + * + * Note: Maximum limit is ultimately defined by the number of antennas that can be supported. + * A required field for IEEE 802.11az result. + */ + byte numRxSpatialStreams; } diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp index 836ce1a9b6..0f0c77e171 100644 --- a/wifi/aidl/default/aidl_struct_util.cpp +++ b/wifi/aidl/default/aidl_struct_util.cpp @@ -2995,6 +2995,8 @@ bool convertLegacyVectorOfRttResultToAidl( aidl_result.r2iTxLtfRepetitionCount = 0; aidl_result.ntbMinMeasurementTime = 0; aidl_result.ntbMaxMeasurementTime = 0; + aidl_result.numTxSpatialStreams = 0; + aidl_result.numRxSpatialStreams = 0; aidl_results->push_back(aidl_result); } return true; @@ -3019,6 +3021,8 @@ bool convertLegacyVectorOfRttResultV2ToAidl( aidl_result.r2iTxLtfRepetitionCount = 0; aidl_result.ntbMinMeasurementTime = 0; aidl_result.ntbMaxMeasurementTime = 0; + aidl_result.numTxSpatialStreams = 0; + aidl_result.numRxSpatialStreams = 0; aidl_results->push_back(aidl_result); } return true; @@ -3044,6 +3048,8 @@ bool convertLegacyVectorOfRttResultV3ToAidl( aidl_result.r2iTxLtfRepetitionCount = legacy_result->r2i_tx_ltf_repetition_count; aidl_result.ntbMinMeasurementTime = legacy_result->ntb_min_measurement_time; aidl_result.ntbMaxMeasurementTime = legacy_result->ntb_max_measurement_time; + aidl_result.numTxSpatialStreams = legacy_result->num_tx_sts; + aidl_result.numRxSpatialStreams = legacy_result->num_rx_sts; aidl_results->push_back(aidl_result); } return true; -- GitLab From 5e517c39ec165489098474a9357c9f769e1b1b00 Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Tue, 2 Jan 2024 21:36:30 +0000 Subject: [PATCH 103/418] media.c2 aidl: do not throw status, return instead config(),query() and querySupportedValues() can return values as a partial failure when status was thrown. So return the status instead of throwing(For the compatibility with HIDL interface). Bug: 254050314 Change-Id: Iece35ff11049e1b3fccb3b72a4d438621138e21e --- .../hardware/media/c2/IConfigurable.aidl | 15 ++++- .../hardware/media/c2/IConfigurable.aidl | 58 +++++++++++++++---- 2 files changed, 61 insertions(+), 12 deletions(-) diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IConfigurable.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IConfigurable.aidl index 32f5abdb51..04e776ee3c 100644 --- a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IConfigurable.aidl +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IConfigurable.aidl @@ -37,12 +37,23 @@ interface IConfigurable { android.hardware.media.c2.IConfigurable.ConfigResult config(in android.hardware.media.c2.Params inParams, in boolean mayBlock); int getId(); String getName(); - android.hardware.media.c2.Params query(in int[] indices, in boolean mayBlock); + android.hardware.media.c2.IConfigurable.QueryResult query(in int[] indices, in boolean mayBlock); android.hardware.media.c2.ParamDescriptor[] querySupportedParams(in int start, in int count); - android.hardware.media.c2.FieldSupportedValuesQueryResult[] querySupportedValues(in android.hardware.media.c2.FieldSupportedValuesQuery[] inFields, in boolean mayBlock); + android.hardware.media.c2.IConfigurable.QuerySupportedValuesResult querySupportedValues(in android.hardware.media.c2.FieldSupportedValuesQuery[] inFields, in boolean mayBlock); @VintfStability parcelable ConfigResult { android.hardware.media.c2.Params params; android.hardware.media.c2.SettingResult[] failures; + android.hardware.media.c2.Status status; + } + @VintfStability + parcelable QueryResult { + android.hardware.media.c2.Params params; + android.hardware.media.c2.Status status; + } + @VintfStability + parcelable QuerySupportedValuesResult { + android.hardware.media.c2.FieldSupportedValuesQueryResult[] values; + android.hardware.media.c2.Status status; } } diff --git a/media/c2/aidl/android/hardware/media/c2/IConfigurable.aidl b/media/c2/aidl/android/hardware/media/c2/IConfigurable.aidl index 7fdb8259b8..1481c151ef 100644 --- a/media/c2/aidl/android/hardware/media/c2/IConfigurable.aidl +++ b/media/c2/aidl/android/hardware/media/c2/IConfigurable.aidl @@ -21,6 +21,7 @@ import android.hardware.media.c2.FieldSupportedValuesQueryResult; import android.hardware.media.c2.ParamDescriptor; import android.hardware.media.c2.Params; import android.hardware.media.c2.SettingResult; +import android.hardware.media.c2.Status; /** * Generic configuration interface presented by all configurable Codec2 objects. @@ -34,12 +35,42 @@ interface IConfigurable { * Return parcelable for config() interface. * * This includes the successful config settings along with the failure reasons of - * the specified setting. + * the specified setting. @p status is for the compatibility with HIDL interface. + * (The value is defined in Status.aidl, and possible values are enumerated + * in config() interface definition) */ @VintfStability parcelable ConfigResult { Params params; SettingResult[] failures; + Status status; + } + + /** + * Return parcelable for query() interface. + * + * @p params is the parameter descripion for queried configuration indices. + * @p status is for the compatibility with HIDL interface. (The value is defined in + * Status.aidl, and possible values are enumerated in query() interface definition) + */ + @VintfStability + parcelable QueryResult { + Params params; + Status status; + } + + /** + * Return parcelable for querySupportedValues() interface. + * + * @p values is the value descripion for queried configuration fields. + * @p status is for the compatibility with HIDL interface. (The value is defined in + * Status.aidl, and possible values are enumerated in querySupportedValues() + * interface definition) + */ + @VintfStability + parcelable QuerySupportedValuesResult { + FieldSupportedValuesQueryResult[] values; + Status status; } /** @@ -82,7 +113,8 @@ interface IConfigurable { * @param mayBlock Whether this call may block or not. * @return result of config. Params in the result should be in same order * with @p inParams. - * @throws ServiceSpecificException with one of the following values: + * + * Returned @p status will be one of the following. * - `Status::NO_MEMORY` - Some supported parameters could not be updated * successfully because they contained unsupported values. * These are returned in @p failures. @@ -146,17 +178,22 @@ interface IConfigurable { * * @param indices List of C2Param structure indices to query. * @param mayBlock Whether this call may block or not. - * @return Flattened representation of std::vector object. - * Unsupported settings are skipped in the results. The order in @p indices - * still be preserved except skipped settings. - * @throws ServiceSpecificException with one of the following values: + * @return @p params is the flattened representation of std::vector object. + * Technically unsupported settings can be either skipped or invalidated. + * (Invalidated params will be skipped during unflattening to make these identical.) + * In the future we will want these to be invalidated to make it easier + * for the framework code. + * + * The order in @p indices still be preserved except skipped settings. + * + * Returned @p status will be one of the following. * - `Status::NO_MEMORY` - Could not allocate memory for a supported parameter. * - `Status::BLOCKING` - Querying some parameters requires blocking, but * @p mayBlock is false. * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. * - `Status::CORRUPTED` - Some unknown error occurred. */ - Params query(in int[] indices, in boolean mayBlock); + QueryResult query(in int[] indices, in boolean mayBlock); /** * Returns a list of supported parameters within a selected range of C2Param @@ -197,9 +234,10 @@ interface IConfigurable { * * @param inFields List of field queries. * @param mayBlock Whether this call may block or not. - * @return List of supported values and results for the + * @return @p values is the list of supported values and results for the * supplied queries. - * @throws ServiceSpecificException with one of the following values: + * + * Returned @p status will be one of the following. * - `Status::BLOCKING` - Querying some parameters requires blocking, but * @p mayBlock is false. * - `Status::NO_MEMORY` - Not enough memory to complete this method. @@ -208,6 +246,6 @@ interface IConfigurable { * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. * - `Status::CORRUPTED` - Some unknown error occurred. */ - FieldSupportedValuesQueryResult[] querySupportedValues( + QuerySupportedValuesResult querySupportedValues( in FieldSupportedValuesQuery[] inFields, in boolean mayBlock); } -- GitLab From 77a86d8dae22ec3b3ed8dfd224edaf9164eca03a Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Wed, 3 Jan 2024 11:22:56 +0000 Subject: [PATCH 104/418] KeyMint VTS: fix flipped error messages Also make main() shorter by `using`. Bug: 317693523 Test: VtsAidlKeyMintTargetTest Change-Id: Ife6048001a003e387927338dfcf7a4b2293576c7 --- .../vts/functional/KeyBlobUpgradeTest.cpp | 6 ++-- .../aidl/vts/functional/KeyMintTest.cpp | 30 +++++++++++-------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/security/keymint/aidl/vts/functional/KeyBlobUpgradeTest.cpp b/security/keymint/aidl/vts/functional/KeyBlobUpgradeTest.cpp index 7ccd246375..c2509b8c7c 100644 --- a/security/keymint/aidl/vts/functional/KeyBlobUpgradeTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyBlobUpgradeTest.cpp @@ -258,7 +258,8 @@ class KeyBlobUpgradeTest : public KeyMintAidlTestBase { if (upgraded_keyblob.empty()) { std::cerr << "Keyblob '" << name << "' did not require upgrade\n"; - EXPECT_TRUE(!expectUpgrade) << "Keyblob '" << name << "' unexpectedly upgraded"; + EXPECT_FALSE(expectUpgrade) + << "Keyblob '" << name << "' unexpectedly left as-is"; } else { // Ensure the old format keyblob is deleted (so any secure deletion data is // cleaned up). @@ -275,8 +276,7 @@ class KeyBlobUpgradeTest : public KeyMintAidlTestBase { save_keyblob(subdir, name, upgraded_keyblob, key_characteristics); // Cert file is left unchanged. std::cerr << "Keyblob '" << name << "' upgraded\n"; - EXPECT_TRUE(expectUpgrade) - << "Keyblob '" << name << "' unexpectedly left as-is"; + EXPECT_TRUE(expectUpgrade) << "Keyblob '" << name << "' unexpectedly upgraded"; } } } diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index d4adab53e4..a2e20dcce5 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -8796,10 +8796,11 @@ INSTANTIATE_KEYMINT_AIDL_TEST(VsrRequirementTest); } // namespace aidl::android::hardware::security::keymint::test +using aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase; + int main(int argc, char** argv) { std::cout << "Testing "; - auto halInstances = - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase::build_params(); + auto halInstances = KeyMintAidlTestBase::build_params(); std::cout << "HAL instances:\n"; for (auto& entry : halInstances) { std::cout << " " << entry << '\n'; @@ -8809,12 +8810,10 @@ int main(int argc, char** argv) { for (int i = 1; i < argc; ++i) { if (argv[i][0] == '-') { if (std::string(argv[i]) == "--arm_deleteAllKeys") { - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase:: - arm_deleteAllKeys = true; + KeyMintAidlTestBase::arm_deleteAllKeys = true; } if (std::string(argv[i]) == "--dump_attestations") { - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase:: - dump_Attestations = true; + KeyMintAidlTestBase::dump_Attestations = true; } else { std::cout << "NOT dumping attestations" << std::endl; } @@ -8829,8 +8828,7 @@ int main(int argc, char** argv) { std::cerr << "Missing argument for --keyblob_dir\n"; return 1; } - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase::keyblob_dir = - std::string(argv[i + 1]); + KeyMintAidlTestBase::keyblob_dir = std::string(argv[i + 1]); ++i; } if (std::string(argv[i]) == "--expect_upgrade") { @@ -8839,11 +8837,17 @@ int main(int argc, char** argv) { return 1; } std::string arg = argv[i + 1]; - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase:: - expect_upgrade = - arg == "yes" - ? true - : (arg == "no" ? false : std::optional(std::nullopt)); + KeyMintAidlTestBase::expect_upgrade = + arg == "yes" ? true + : (arg == "no" ? false : std::optional(std::nullopt)); + if (KeyMintAidlTestBase::expect_upgrade.has_value()) { + std::cout << "expect_upgrade = " + << (KeyMintAidlTestBase::expect_upgrade.value() ? "true" : "false") + << std::endl; + } else { + std::cerr << "Error! Option --expect_upgrade " << arg << " unrecognized" + << std::endl; + } ++i; } } -- GitLab From 1e14bd55bd8fe99384feae8dcfbf846c5f1dd108 Mon Sep 17 00:00:00 2001 From: Victor Shutemov Date: Wed, 20 Dec 2023 17:28:59 +0100 Subject: [PATCH 105/418] Fix AIDL VHAL metadata extraction script Add capability to process values from imports. Update json metadata file with new data. Testing: 1. cd hardware/interfaces/automotive/vehicle/aidl/emu_metadata 2. ./generate_emulator_metadata.py ../../aidl_property/android/hardware/automotive/vehicle out.json Bug: 317529575 Test: manual Change-Id: I315f1f75c2372796bde3bdacd39246344579c002 --- ...ardware.automotive.vehicle-types-meta.json | 4983 ++++++++++------- .../generate_emulator_metadata.py | 101 +- 2 files changed, 3133 insertions(+), 1951 deletions(-) diff --git a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json index e312a3ae9d..6d856a8d60 100644 --- a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json +++ b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json @@ -1,34 +1,22 @@ [ { - "name": "VehicleApPowerStateReqIndex", - "values": [ - { - "name": "STATE", - "value": 0 - }, - { - "name": "ADDITIONAL", - "value": 1 - } - ] - }, - { - "name": "EvChargeState", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleOilLevel", "values": [ { - "name": "UNKNOWN", + "name": "CRITICALLY_LOW", "value": 0 }, { - "name": "CHARGING", + "name": "LOW", "value": 1 }, { - "name": "FULLY_CHARGED", + "name": "NORMAL", "value": 2 }, { - "name": "NOT_CHARGING", + "name": "HIGH", "value": 3 }, { @@ -38,220 +26,123 @@ ] }, { - "name": "TrailerState", + "package": "android.hardware.automotive.vehicle", + "name": "LocationCharacterization", "values": [ { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "NOT_PRESENT", + "name": "PRIOR_LOCATIONS", "value": 1 }, { - "name": "PRESENT", + "name": "GYROSCOPE_FUSION", "value": 2 }, { - "name": "ERROR", - "value": 3 - } - ] - }, - { - "name": "ProcessTerminationReason", - "values": [ + "name": "ACCELEROMETER_FUSION", + "value": 4 + }, { - "name": "NOT_RESPONDING", - "value": 1 + "name": "COMPASS_FUSION", + "value": 8 }, { - "name": "IO_OVERUSE", - "value": 2 + "name": "WHEEL_SPEED_FUSION", + "value": 16 }, { - "name": "MEMORY_OVERUSE", - "value": 3 - } - ] - }, - { - "name": "VehicleApPowerStateConfigFlag", - "values": [ + "name": "STEERING_ANGLE_FUSION", + "value": 32 + }, { - "name": "ENABLE_DEEP_SLEEP_FLAG", - "value": 1 + "name": "CAR_SPEED_FUSION", + "value": 64 }, { - "name": "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG", - "value": 2 + "name": "DEAD_RECKONED", + "value": 128 }, { - "name": "ENABLE_HIBERNATION_FLAG", - "value": 3 + "name": "RAW_GNSS_ONLY", + "value": 256 } ] }, { - "name": "Obd2FuelType", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleDisplay", "values": [ { - "name": "NOT_AVAILABLE", + "name": "MAIN", "value": 0 }, { - "name": "GASOLINE", + "name": "INSTRUMENT_CLUSTER", "value": 1 }, { - "name": "METHANOL", + "name": "HUD", "value": 2 }, { - "name": "ETHANOL", + "name": "INPUT", "value": 3 }, { - "name": "DIESEL", + "name": "AUXILIARY", "value": 4 - }, - { - "name": "LPG", - "value": 5 - }, - { - "name": "CNG", - "value": 6 - }, - { - "name": "PROPANE", - "value": 7 - }, - { - "name": "ELECTRIC", - "value": 8 - }, - { - "name": "BIFUEL_RUNNING_GASOLINE", - "value": 9 - }, - { - "name": "BIFUEL_RUNNING_METHANOL", - "value": 10 - }, - { - "name": "BIFUEL_RUNNING_ETHANOL", - "value": 11 - }, - { - "name": "BIFUEL_RUNNING_LPG", - "value": 12 - }, - { - "name": "BIFUEL_RUNNING_CNG", - "value": 13 - }, - { - "name": "BIFUEL_RUNNING_PROPANE", - "value": 14 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC", - "value": 15 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 16 - }, - { - "name": "HYBRID_GASOLINE", - "value": 17 - }, - { - "name": "HYBRID_ETHANOL", - "value": 18 - }, - { - "name": "HYBRID_DIESEL", - "value": 19 - }, - { - "name": "HYBRID_ELECTRIC", - "value": 20 - }, - { - "name": "HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 21 - }, - { - "name": "HYBRID_REGENERATIVE", - "value": 22 - }, - { - "name": "BIFUEL_RUNNING_DIESEL", - "value": 23 } ] }, { - "name": "VmsSubscriptionsStateIntegerValuesIndex", + "package": "android.hardware.automotive.vehicle", + "name": "CruiseControlState", "values": [ { - "name": "MESSAGE_TYPE", + "name": "OTHER", "value": 0 }, { - "name": "SEQUENCE_NUMBER", + "name": "ENABLED", "value": 1 }, { - "name": "NUMBER_OF_LAYERS", + "name": "ACTIVATED", "value": 2 }, { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", + "name": "USER_OVERRIDE", "value": 3 }, { - "name": "SUBSCRIPTIONS_START", + "name": "SUSPENDED", "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 } ] }, { - "name": "VehicleArea", + "package": "android.hardware.automotive.vehicle", + "name": "HandsOnDetectionWarning", "values": [ { - "name": "GLOBAL", - "value": 16777216 - }, - { - "name": "WINDOW", - "value": 50331648 - }, - { - "name": "MIRROR", - "value": 67108864 - }, - { - "name": "SEAT", - "value": 83886080 - }, - { - "name": "DOOR", - "value": 100663296 + "name": "OTHER", + "value": 0 }, { - "name": "WHEEL", - "value": 117440512 + "name": "NO_WARNING", + "value": 1 }, { - "name": "MASK", - "value": 251658240 + "name": "WARNING", + "value": 2 } ] }, { + "package": "android.hardware.automotive.vehicle", "name": "VehicleAreaWindow", "values": [ { @@ -297,27 +188,99 @@ ] }, { - "name": "ElectronicTollCollectionCardStatus", + "package": "android.hardware.automotive.vehicle", + "name": "VmsAvailabilityStateIntegerValuesIndex", "values": [ { - "name": "UNKNOWN", + "name": "MESSAGE_TYPE", "value": 0 }, { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", + "name": "SEQUENCE_NUMBER", "value": 1 }, { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", + "name": "NUMBER_OF_ASSOCIATED_LAYERS", "value": 2 }, { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", + "name": "LAYERS_START", "value": 3 } ] }, { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleLightSwitch", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + }, + { + "name": "AUTOMATIC", + "value": 256 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "Obd2IgnitionMonitorKind", + "values": [ + { + "name": "SPARK", + "value": 0 + }, + { + "name": "COMPRESSION", + "value": 1 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleHwMotionButtonStateFlag", + "values": [ + { + "name": "BUTTON_PRIMARY", + "value": 1 + }, + { + "name": "BUTTON_SECONDARY", + "value": 2 + }, + { + "name": "BUTTON_TERTIARY", + "value": 4 + }, + { + "name": "BUTTON_BACK", + "value": 8 + }, + { + "name": "BUTTON_FORWARD", + "value": 16 + }, + { + "name": "BUTTON_STYLUS_PRIMARY", + "value": 32 + }, + { + "name": "BUTTON_STYLUS_SECONDARY", + "value": 64 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", "name": "VehiclePropertyType", "values": [ { @@ -367,99 +330,185 @@ ] }, { - "name": "StatusCode", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleAreaDoor", "values": [ { - "name": "OK", - "value": 0 + "name": "ROW_1_LEFT", + "value": 1 }, { - "name": "TRY_AGAIN", - "value": 1 + "name": "ROW_1_RIGHT", + "value": 4 }, { - "name": "INVALID_ARG", - "value": 2 + "name": "ROW_2_LEFT", + "value": 16 }, { - "name": "NOT_AVAILABLE", - "value": 3 + "name": "ROW_2_RIGHT", + "value": 64 }, { - "name": "ACCESS_DENIED", - "value": 4 + "name": "ROW_3_LEFT", + "value": 256 }, { - "name": "INTERNAL_ERROR", - "value": 5 + "name": "ROW_3_RIGHT", + "value": 1024 + }, + { + "name": "HOOD", + "value": 268435456 + }, + { + "name": "REAR", + "value": 536870912 } ] }, { - "name": "CreateUserStatus", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleApPowerBootupReason", "values": [ { - "name": "SUCCESS", + "name": "USER_POWER_ON", + "value": 0 + }, + { + "name": "SYSTEM_USER_DETECTION", "value": 1 }, { - "name": "FAILURE", + "name": "SYSTEM_REMOTE_ACCESS", "value": 2 } ] }, { - "name": "ElectronicTollCollectionCardType", + "package": "android.hardware.automotive.vehicle", + "name": "EmergencyLaneKeepAssistState", "values": [ { - "name": "UNKNOWN", + "name": "OTHER", "value": 0 }, { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", + "name": "ENABLED", "value": 1 }, { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", + "name": "WARNING_LEFT", "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 4 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 5 + }, + { + "name": "USER_OVERRIDE", + "value": 6 } ] }, { - "name": "VehicleAreaMirror", + "package": "android.hardware.automotive.vehicle", + "name": "EvConnectorType", "values": [ { - "name": "DRIVER_LEFT", + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "IEC_TYPE_1_AC", "value": 1 }, { - "name": "DRIVER_RIGHT", + "name": "IEC_TYPE_2_AC", "value": 2 }, { - "name": "DRIVER_CENTER", + "name": "IEC_TYPE_3_AC", + "value": 3 + }, + { + "name": "IEC_TYPE_4_DC", "value": 4 + }, + { + "name": "IEC_TYPE_1_CCS_DC", + "value": 5 + }, + { + "name": "IEC_TYPE_2_CCS_DC", + "value": 6 + }, + { + "name": "TESLA_ROADSTER", + "value": 7 + }, + { + "name": "TESLA_HPWC", + "value": 8 + }, + { + "name": "TESLA_SUPERCHARGER", + "value": 9 + }, + { + "name": "GBT_AC", + "value": 10 + }, + { + "name": "GBT_DC", + "value": 11 + }, + { + "name": "OTHER", + "value": 101 } ] }, { - "name": "InitialUserInfoResponseAction", + "package": "android.hardware.automotive.vehicle", + "name": "UserIdentificationAssociationType", "values": [ { - "name": "DEFAULT", + "name": "INVALID", "value": 0 }, { - "name": "SWITCH", + "name": "KEY_FOB", "value": 1 }, { - "name": "CREATE", - "value": 2 + "name": "CUSTOM_1", + "value": 101 + }, + { + "name": "CUSTOM_2", + "value": 102 + }, + { + "name": "CUSTOM_3", + "value": 103 + }, + { + "name": "CUSTOM_4", + "value": 104 } ] }, { + "package": "android.hardware.automotive.vehicle", "name": "VehicleHvacFanDirection", "values": [ { @@ -489,244 +538,379 @@ ] }, { - "name": "Obd2SecondaryAirStatus", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleAreaWheel", "values": [ { - "name": "UPSTREAM", + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "LEFT_FRONT", "value": 1 }, { - "name": "DOWNSTREAM_OF_CATALYCIC_CONVERTER", + "name": "RIGHT_FRONT", "value": 2 }, { - "name": "FROM_OUTSIDE_OR_OFF", + "name": "LEFT_REAR", "value": 4 }, { - "name": "PUMP_ON_FOR_DIAGNOSTICS", + "name": "RIGHT_REAR", "value": 8 } ] }, { - "name": "VmsStartSessionMessageIntegerValuesIndex", + "package": "android.hardware.automotive.vehicle", + "name": "InitialUserInfoRequestType", "values": [ { - "name": "MESSAGE_TYPE", + "name": "UNKNOWN", "value": 0 }, { - "name": "SERVICE_ID", + "name": "FIRST_BOOT", "value": 1 }, { - "name": "CLIENT_ID", + "name": "FIRST_BOOT_AFTER_OTA", "value": 2 + }, + { + "name": "COLD_BOOT", + "value": 3 + }, + { + "name": "RESUME", + "value": 4 } ] }, { - "name": "VehicleOilLevel", + "package": "android.hardware.automotive.vehicle", + "name": "HandsOnDetectionDriverState", "values": [ { - "name": "CRITICALLY_LOW", + "name": "OTHER", "value": 0 }, { - "name": "LOW", + "name": "HANDS_ON", "value": 1 }, { - "name": "NORMAL", + "name": "HANDS_OFF", "value": 2 - }, - { - "name": "HIGH", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 } ] }, { - "name": "VehicleUnit", + "package": "android.hardware.automotive.vehicle", + "name": "CruiseControlCommand", "values": [ { - "name": "SHOULD_NOT_USE", - "value": 0 - }, - { - "name": "METER_PER_SEC", + "name": "ACTIVATE", "value": 1 }, { - "name": "RPM", + "name": "SUSPEND", "value": 2 }, { - "name": "HERTZ", + "name": "INCREASE_TARGET_SPEED", "value": 3 }, { - "name": "PERCENTILE", - "value": 16 - }, - { - "name": "MILLIMETER", - "value": 32 + "name": "DECREASE_TARGET_SPEED", + "value": 4 }, { - "name": "METER", - "value": 33 + "name": "INCREASE_TARGET_TIME_GAP", + "value": 5 }, { - "name": "KILOMETER", - "value": 35 - }, + "name": "DECREASE_TARGET_TIME_GAP", + "value": 6 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "WindshieldWipersSwitch", + "values": [ { - "name": "MILE", - "value": 36 + "name": "OTHER", + "value": 0 }, { - "name": "CELSIUS", - "value": 48 + "name": "OFF", + "value": 1 }, { - "name": "FAHRENHEIT", - "value": 49 + "name": "MIST", + "value": 2 }, { - "name": "KELVIN", - "value": 50 + "name": "INTERMITTENT_LEVEL_1", + "value": 3 }, { - "name": "MILLILITER", - "value": 64 + "name": "INTERMITTENT_LEVEL_2", + "value": 4 }, { - "name": "LITER", - "value": 65 + "name": "INTERMITTENT_LEVEL_3", + "value": 5 }, { - "name": "GALLON", - "value": 66 + "name": "INTERMITTENT_LEVEL_4", + "value": 6 }, { - "name": "US_GALLON", - "value": 66 + "name": "INTERMITTENT_LEVEL_5", + "value": 7 }, { - "name": "IMPERIAL_GALLON", - "value": 67 + "name": "CONTINUOUS_LEVEL_1", + "value": 8 }, { - "name": "NANO_SECS", - "value": 80 + "name": "CONTINUOUS_LEVEL_2", + "value": 9 }, { - "name": "SECS", - "value": 83 + "name": "CONTINUOUS_LEVEL_3", + "value": 10 }, { - "name": "YEAR", - "value": 89 + "name": "CONTINUOUS_LEVEL_4", + "value": 11 }, { - "name": "WATT_HOUR", - "value": 96 + "name": "CONTINUOUS_LEVEL_5", + "value": 12 }, { - "name": "MILLIAMPERE", - "value": 97 + "name": "AUTO", + "value": 13 }, { - "name": "MILLIVOLT", - "value": 98 - }, + "name": "SERVICE", + "value": 14 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleHwMotionToolType", + "values": [ { - "name": "MILLIWATTS", - "value": 99 + "name": "TOOL_TYPE_UNKNOWN", + "value": 0 }, { - "name": "AMPERE_HOURS", - "value": 100 + "name": "TOOL_TYPE_FINGER", + "value": 1 }, { - "name": "KILOWATT_HOUR", - "value": 101 + "name": "TOOL_TYPE_STYLUS", + "value": 2 }, { - "name": "AMPERE", - "value": 102 + "name": "TOOL_TYPE_MOUSE", + "value": 3 }, { - "name": "KILOPASCAL", - "value": 112 + "name": "TOOL_TYPE_ERASER", + "value": 4 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "SwitchUserStatus", + "values": [ + { + "name": "SUCCESS", + "value": 1 }, { - "name": "PSI", - "value": 113 + "name": "FAILURE", + "value": 2 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "EvsServiceType", + "values": [ + { + "name": "REARVIEW", + "value": 0 }, { - "name": "BAR", - "value": 114 + "name": "SURROUNDVIEW", + "value": 1 }, { - "name": "DEGREES", - "value": 128 + "name": "FRONTVIEW", + "value": 2 }, { - "name": "MILES_PER_HOUR", - "value": 144 + "name": "LEFTVIEW", + "value": 3 }, { - "name": "KILOMETERS_PER_HOUR", - "value": 145 + "name": "RIGHTVIEW", + "value": 4 + }, + { + "name": "DRIVERVIEW", + "value": 5 + }, + { + "name": "FRONTPASSENGERSVIEW", + "value": 6 + }, + { + "name": "REARPASSENGERSVIEW", + "value": 7 + }, + { + "name": "USER_DEFINED", + "value": 1000 } ] }, { - "name": "VehicleAreaWheel", + "package": "android.hardware.automotive.vehicle", + "name": "UserIdentificationAssociationValue", "values": [ { "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEFT_FRONT", "value": 1 }, { - "name": "RIGHT_FRONT", + "name": "ASSOCIATED_CURRENT_USER", "value": 2 }, { - "name": "LEFT_REAR", + "name": "ASSOCIATED_ANOTHER_USER", + "value": 3 + }, + { + "name": "NOT_ASSOCIATED_ANY_USER", "value": 4 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "ErrorState", + "values": [ + { + "name": "OTHER_ERROR_STATE", + "value": -1 }, { - "name": "RIGHT_REAR", - "value": 8 + "name": "NOT_AVAILABLE_DISABLED", + "value": -2 + }, + { + "name": "NOT_AVAILABLE_SPEED_LOW", + "value": -3 + }, + { + "name": "NOT_AVAILABLE_SPEED_HIGH", + "value": -4 + }, + { + "name": "NOT_AVAILABLE_POOR_VISIBILITY", + "value": -5 + }, + { + "name": "NOT_AVAILABLE_SAFETY", + "value": -6 } ] }, { - "name": "EvsServiceState", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleIgnitionState", "values": [ { - "name": "OFF", + "name": "UNDEFINED", "value": 0 }, + { + "name": "LOCK", + "value": 1 + }, + { + "name": "OFF", + "value": 2 + }, + { + "name": "ACC", + "value": 3 + }, { "name": "ON", + "value": 4 + }, + { + "name": "START", + "value": 5 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleAreaSeat", + "values": [ + { + "name": "ROW_1_LEFT", "value": 1 + }, + { + "name": "ROW_1_CENTER", + "value": 2 + }, + { + "name": "ROW_1_RIGHT", + "value": 4 + }, + { + "name": "ROW_2_LEFT", + "value": 16 + }, + { + "name": "ROW_2_CENTER", + "value": 32 + }, + { + "name": "ROW_2_RIGHT", + "value": 64 + }, + { + "name": "ROW_3_LEFT", + "value": 256 + }, + { + "name": "ROW_3_CENTER", + "value": 512 + }, + { + "name": "ROW_3_RIGHT", + "value": 1024 } ] }, { + "package": "android.hardware.automotive.vehicle", "name": "EvsServiceRequestIndex", "values": [ { @@ -740,1153 +924,1026 @@ ] }, { - "name": "VehicleSeatOccupancyState", + "package": "android.hardware.automotive.vehicle", + "name": "LaneDepartureWarningState", "values": [ { - "name": "UNKNOWN", + "name": "OTHER", "value": 0 }, { - "name": "VACANT", + "name": "NO_WARNING", "value": 1 }, { - "name": "OCCUPIED", + "name": "WARNING_LEFT", "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 } ] }, { - "name": "VehicleProperty", + "package": "android.hardware.automotive.vehicle", + "name": "Obd2SparkIgnitionMonitors", + "values": [] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "CreateUserStatus", "values": [ { - "name": "Undefined property.", - "value": 0 + "name": "SUCCESS", + "value": 1 }, { - "name": "VIN of vehicle", - "value": 286261504, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" + "name": "FAILURE", + "value": 2 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehiclePropertyGroup", + "values": [ + { + "name": "SYSTEM", + "value": 268435456 }, { - "name": "Manufacturer of vehicle", - "value": 286261505, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" + "name": "VENDOR", + "value": 536870912 }, { - "name": "Model of vehicle", - "value": 286261506, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" + "name": "MASK", + "value": 4026531840 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleVendorPermission", + "values": [ + { + "name": "PERMISSION_DEFAULT", + "value": 0 }, { - "name": "Model year of vehicle.", - "value": 289407235, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:YEAR" + "name": "PERMISSION_SET_VENDOR_CATEGORY_WINDOW", + "value": 1 }, { - "name": "Fuel capacity of the vehicle in milliliters", - "value": 291504388, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" + "name": "PERMISSION_GET_VENDOR_CATEGORY_WINDOW", + "value": 2 }, { - "name": "List of fuels the vehicle may use", - "value": 289472773, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "FuelType" + "name": "PERMISSION_SET_VENDOR_CATEGORY_DOOR", + "value": 3 }, { - "name": "INFO_EV_BATTERY_CAPACITY", - "value": 291504390, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" + "name": "PERMISSION_GET_VENDOR_CATEGORY_DOOR", + "value": 4 }, { - "name": "List of connectors this EV may use", - "value": 289472775, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "EvConnectorType", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_SET_VENDOR_CATEGORY_SEAT", + "value": 5 }, { - "name": "Fuel door location", - "value": 289407240, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "PortLocationType", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_GET_VENDOR_CATEGORY_SEAT", + "value": 6 }, { - "name": "EV port location", - "value": 289407241, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" + "name": "PERMISSION_SET_VENDOR_CATEGORY_MIRROR", + "value": 7 }, { - "name": "INFO_DRIVER_SEAT", - "value": 356516106, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "VehicleAreaSeat", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_GET_VENDOR_CATEGORY_MIRROR", + "value": 8 }, { - "name": "Exterior dimensions of vehicle.", - "value": 289472779, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLIMETER" + "name": "PERMISSION_SET_VENDOR_CATEGORY_INFO", + "value": 9 }, { - "name": "Multiple EV port locations", - "value": 289472780, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" + "name": "PERMISSION_GET_VENDOR_CATEGORY_INFO", + "value": 10 }, { - "name": "Current odometer value of the vehicle", - "value": 291504644, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOMETER" + "name": "PERMISSION_SET_VENDOR_CATEGORY_ENGINE", + "value": 11 }, { - "name": "Speed of the vehicle", - "value": 291504647, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" + "name": "PERMISSION_GET_VENDOR_CATEGORY_ENGINE", + "value": 12 }, { - "name": "Speed of the vehicle for displays", - "value": 291504648, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" + "name": "PERMISSION_SET_VENDOR_CATEGORY_HVAC", + "value": 13 }, { - "name": "Front bicycle model steering angle for vehicle", - "value": 291504649, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" + "name": "PERMISSION_GET_VENDOR_CATEGORY_HVAC", + "value": 14 }, { - "name": "Rear bicycle model steering angle for vehicle", - "value": 291504656, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" + "name": "PERMISSION_SET_VENDOR_CATEGORY_LIGHT", + "value": 15 }, { - "name": "Temperature of engine coolant", - "value": 291504897, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" + "name": "PERMISSION_GET_VENDOR_CATEGORY_LIGHT", + "value": 16 }, { - "name": "Engine oil level", - "value": 289407747, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleOilLevel" + "name": "PERMISSION_SET_VENDOR_CATEGORY_1", + "value": 65536 }, { - "name": "Temperature of engine oil", - "value": 291504900, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" + "name": "PERMISSION_GET_VENDOR_CATEGORY_1", + "value": 69632 }, { - "name": "Engine rpm", - "value": 291504901, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:RPM" + "name": "PERMISSION_SET_VENDOR_CATEGORY_2", + "value": 131072 }, { - "name": "Reports wheel ticks", - "value": 290521862, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_GET_VENDOR_CATEGORY_2", + "value": 135168 }, { - "name": "FUEL_LEVEL", - "value": 291504903, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" + "name": "PERMISSION_SET_VENDOR_CATEGORY_3", + "value": 196608 }, { - "name": "Fuel door open", - "value": 287310600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "PERMISSION_GET_VENDOR_CATEGORY_3", + "value": 200704 }, { - "name": "EV_BATTERY_LEVEL", - "value": 291504905, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" + "name": "PERMISSION_SET_VENDOR_CATEGORY_4", + "value": 262144 }, { - "name": "EV charge port open", - "value": 287310602, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "PERMISSION_GET_VENDOR_CATEGORY_4", + "value": 266240 }, { - "name": "EV charge port connected", - "value": 287310603, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_SET_VENDOR_CATEGORY_5", + "value": 327680 }, { - "name": "EV instantaneous charge rate in milliwatts", - "value": 291504908, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MW" + "name": "PERMISSION_GET_VENDOR_CATEGORY_5", + "value": 331776 }, { - "name": "Range remaining", - "value": 291504904, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:METER" + "name": "PERMISSION_SET_VENDOR_CATEGORY_6", + "value": 393216 }, { - "name": "Tire pressure", - "value": 392168201, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" + "name": "PERMISSION_GET_VENDOR_CATEGORY_6", + "value": 397312 }, { - "name": "Critically low tire pressure", - "value": 392168202, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" + "name": "PERMISSION_SET_VENDOR_CATEGORY_7", + "value": 458752 }, { - "name": "Currently selected gear", - "value": 289408000, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" + "name": "PERMISSION_GET_VENDOR_CATEGORY_7", + "value": 462848 }, { - "name": "CURRENT_GEAR", - "value": 289408001, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" + "name": "PERMISSION_SET_VENDOR_CATEGORY_8", + "value": 524288 }, { - "name": "Parking brake state.", - "value": 287310850, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_GET_VENDOR_CATEGORY_8", + "value": 528384 }, { - "name": "PARKING_BRAKE_AUTO_APPLY", - "value": 287310851, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_SET_VENDOR_CATEGORY_9", + "value": 589824 }, { - "name": "Warning for fuel low level.", - "value": 287310853, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_GET_VENDOR_CATEGORY_9", + "value": 593920 }, { - "name": "Night mode", - "value": 287310855, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "PERMISSION_SET_VENDOR_CATEGORY_10", + "value": 655360 }, { - "name": "State of the vehicles turn signals", - "value": 289408008, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleTurnSignal" + "name": "PERMISSION_GET_VENDOR_CATEGORY_10", + "value": 659456 }, { - "name": "Represents ignition state", - "value": 289408009, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleIgnitionState" - }, + "name": "PERMISSION_NOT_ACCESSIBLE", + "value": 4026531840 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VmsOfferingMessageIntegerValuesIndex", + "values": [ { - "name": "ABS is active", - "value": 287310858, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "MESSAGE_TYPE", + "value": 0 }, { - "name": "Traction Control is active", - "value": 287310859, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "PUBLISHER_ID", + "value": 1 }, { - "name": "HVAC_FAN_SPEED", - "value": 356517120 + "name": "NUMBER_OF_OFFERS", + "value": 2 }, { - "name": "Fan direction setting", - "value": 356517121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleHvacFanDirection" - }, + "name": "OFFERING_START", + "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VmsBaseMessageIntegerValuesIndex", + "values": [ { - "name": "HVAC current temperature.", - "value": 358614274, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, + "name": "MESSAGE_TYPE", + "value": 0 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "Obd2CompressionIgnitionMonitors", + "values": [] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "LaneKeepAssistState", + "values": [ { - "name": "HVAC_TEMPERATURE_SET", - "value": 358614275, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:CELSIUS" + "name": "OTHER", + "value": 0 }, { - "name": "HVAC_DEFROSTER", - "value": 320865540, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ENABLED", + "value": 1 }, { - "name": "HVAC_AC_ON", - "value": 354419973, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "config_flags": "Supported" + "name": "ACTIVATED_STEER_LEFT", + "value": 2 }, { - "name": "HVAC_MAX_AC_ON", - "value": 354419974, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTIVATED_STEER_RIGHT", + "value": 3 }, { - "name": "HVAC_MAX_DEFROST_ON", - "value": 354419975, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "USER_OVERRIDE", + "value": 4 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleHwMotionInputAction", + "values": [ { - "name": "HVAC_RECIRC_ON", - "value": 354419976, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_DOWN", + "value": 0 }, { - "name": "Enable temperature coupling between areas.", - "value": 354419977, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_UP", + "value": 1 }, { - "name": "HVAC_AUTO_ON", - "value": 354419978, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_MOVE", + "value": 2 }, { - "name": "HVAC_SEAT_TEMPERATURE", - "value": 356517131, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_CANCEL", + "value": 3 }, { - "name": "Side Mirror Heat", - "value": 339739916, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_OUTSIDE", + "value": 4 }, { - "name": "HVAC_STEERING_WHEEL_HEAT", - "value": 289408269, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_POINTER_DOWN", + "value": 5 }, { - "name": "Temperature units for display", - "value": 289408270, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" + "name": "ACTION_POINTER_UP", + "value": 6 }, { - "name": "Actual fan speed", - "value": 356517135, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "ACTION_HOVER_MOVE", + "value": 7 }, { - "name": "HVAC_POWER_ON", - "value": 354419984, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_SCROLL", + "value": 8 }, { - "name": "Fan Positions Available", - "value": 356582673, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleHvacFanDirection" + "name": "ACTION_HOVER_ENTER", + "value": 9 }, { - "name": "HVAC_AUTO_RECIRC_ON", - "value": 354419986, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_HOVER_EXIT", + "value": 10 }, { - "name": "Seat ventilation", - "value": 356517139, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTION_BUTTON_PRESS", + "value": 11 }, { - "name": "HVAC_ELECTRIC_DEFROSTER_ON", - "value": 320865556, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "ACTION_BUTTON_RELEASE", + "value": 12 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleApPowerStateConfigFlag", + "values": [ { - "name": "Suggested values for setting HVAC temperature.", - "value": 291570965, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ENABLE_DEEP_SLEEP_FLAG", + "value": 1 }, { - "name": "Distance units for display", - "value": 289408512, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" + "name": "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG", + "value": 2 }, { - "name": "Fuel volume units for display", - "value": 289408513, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, + "name": "ENABLE_HIBERNATION_FLAG", + "value": 4 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "Obd2SecondaryAirStatus", + "values": [ { - "name": "Tire pressure units for display", - "value": 289408514, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" + "name": "UPSTREAM", + "value": 1 }, { - "name": "EV battery units for display", - "value": 289408515, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" + "name": "DOWNSTREAM_OF_CATALYCIC_CONVERTER", + "value": 2 }, { - "name": "Fuel consumption units for display", - "value": 287311364, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "FROM_OUTSIDE_OR_OFF", + "value": 4 }, { - "name": "Speed units for display", - "value": 289408517, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "PUMP_ON_FOR_DIAGNOSTICS", + "value": 8 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VmsPublisherInformationIntegerValuesIndex", + "values": [ { - "name": "ANDROID_EPOCH_TIME", - "value": 290457094, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE_ONLY", - "unit": "VehicleUnit:MILLI_SECS" + "name": "MESSAGE_TYPE", + "value": 0 }, { - "name": "External encryption binding seed.", - "value": 292554247, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "PUBLISHER_ID", + "value": 1 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleApPowerStateReq", + "values": [ { - "name": "Outside temperature", - "value": 291505923, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" + "name": "ON", + "value": 0 }, { - "name": "Property to control power state of application processor", - "value": 289475072, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "SHUTDOWN_PREPARE", + "value": 1 }, { - "name": "Property to report power state of application processor", - "value": 289475073, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "CANCEL_SHUTDOWN", + "value": 2 }, { - "name": "AP_POWER_BOOTUP_REASON", - "value": 289409538, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, + "name": "FINISHED", + "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "WindshieldWipersState", + "values": [ { - "name": "DISPLAY_BRIGHTNESS", - "value": 289409539, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "OTHER", + "value": 0 }, { - "name": "HW_KEY_INPUT", - "value": 289475088, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" + "name": "OFF", + "value": 1 }, { - "name": "HW_ROTARY_INPUT", - "value": 289475104, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "RotaryInputType", - "access": "VehiclePropertyAccess:READ" + "name": "ON", + "value": 2 }, { - "name": "Defines a custom OEM partner input event.", - "value": 289475120, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "CustomInputType", - "access": "VehiclePropertyAccess:READ" + "name": "SERVICE", + "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "LaneCenteringAssistState", + "values": [ + { + "name": "OTHER", + "value": 0 }, { - "name": "DOOR_POS", - "value": 373295872, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ENABLED", + "value": 1 }, { - "name": "Door move", - "value": 373295873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTIVATION_REQUESTED", + "value": 2 }, { - "name": "Door lock", - "value": 371198722, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ACTIVATED", + "value": 3 }, { - "name": "Mirror Z Position", - "value": 339741504, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "USER_OVERRIDE", + "value": 4 }, { - "name": "Mirror Z Move", - "value": 339741505, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "UserIdentificationAssociationSetValue", + "values": [ { - "name": "Mirror Y Position", - "value": 339741506, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "INVALID", + "value": 0 }, { - "name": "Mirror Y Move", - "value": 339741507, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ASSOCIATE_CURRENT_USER", + "value": 1 }, { - "name": "Mirror Lock", - "value": 287312708, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "DISASSOCIATE_CURRENT_USER", + "value": 2 }, { - "name": "Mirror Fold", - "value": 287312709, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "DISASSOCIATE_ALL_USERS", + "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "Obd2CommonIgnitionMonitors", + "values": [] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleHwMotionInputSource", + "values": [ { - "name": "Seat memory select", - "value": 356518784, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" + "name": "SOURCE_UNKNOWN", + "value": 0 }, { - "name": "Seat memory set", - "value": 356518785, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" + "name": "SOURCE_KEYBOARD", + "value": 1 }, { - "name": "Seatbelt buckled", - "value": 354421634, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_DPAD", + "value": 2 }, { - "name": "Seatbelt height position", - "value": 356518787, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_GAMEPAD", + "value": 3 }, { - "name": "Seatbelt height move", - "value": 356518788, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_TOUCHSCREEN", + "value": 4 }, { - "name": "SEAT_FORE_AFT_POS", - "value": 356518789, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_MOUSE", + "value": 5 }, { - "name": "SEAT_FORE_AFT_MOVE", - "value": 356518790, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_STYLUS", + "value": 6 }, { - "name": "Seat backrest angle 1 position", - "value": 356518791, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_BLUETOOTH_STYLUS", + "value": 7 }, { - "name": "Seat backrest angle 1 move", - "value": 356518792, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_TRACKBALL", + "value": 8 }, { - "name": "Seat backrest angle 2 position", - "value": 356518793, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_MOUSE_RELATIVE", + "value": 9 }, { - "name": "Seat backrest angle 2 move", - "value": 356518794, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_TOUCHPAD", + "value": 10 }, { - "name": "Seat height position", - "value": 356518795, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_TOUCH_NAVIGATION", + "value": 11 }, { - "name": "Seat height move", - "value": 356518796, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_ROTARY_ENCODER", + "value": 12 }, { - "name": "Seat depth position", - "value": 356518797, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_JOYSTICK", + "value": 13 }, { - "name": "Seat depth move", - "value": 356518798, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SOURCE_HDMI", + "value": 14 }, { - "name": "Seat tilt position", - "value": 356518799, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "SOURCE_SENSOR", + "value": 15 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "ForwardCollisionWarningState", + "values": [ { - "name": "Seat tilt move", - "value": 356518800, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "OTHER", + "value": 0 }, { - "name": "SEAT_LUMBAR_FORE_AFT_POS", - "value": 356518801, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "NO_WARNING", + "value": 1 }, { - "name": "SEAT_LUMBAR_FORE_AFT_MOVE", - "value": 356518802, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "WARNING", + "value": 2 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleArea", + "values": [ { - "name": "Lumbar side support position", - "value": 356518803, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "GLOBAL", + "value": 16777216 }, { - "name": "Lumbar side support move", - "value": 356518804, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "WINDOW", + "value": 50331648 }, { - "name": "Headrest height position", - "value": 289409941, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "MIRROR", + "value": 67108864 }, { - "name": "Headrest height move", - "value": 356518806, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "SEAT", + "value": 83886080 }, { - "name": "Headrest angle position", - "value": 356518807, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "DOOR", + "value": 100663296 }, { - "name": "Headrest angle move", - "value": 356518808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "WHEEL", + "value": 117440512 }, { - "name": "SEAT_HEADREST_FORE_AFT_POS", - "value": 356518809, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, + "name": "MASK", + "value": 251658240 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "PortLocationType", + "values": [ { - "name": "SEAT_HEADREST_FORE_AFT_MOVE", - "value": 356518810, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "UNKNOWN", + "value": 0 }, { - "name": "Seat Occupancy", - "value": 356518832, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleSeatOccupancyState" + "name": "FRONT_LEFT", + "value": 1 }, { - "name": "Window Position", - "value": 322964416, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "FRONT_RIGHT", + "value": 2 }, { - "name": "Window Move", - "value": 322964417, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "REAR_RIGHT", + "value": 3 }, { - "name": "Window Lock", - "value": 320867268, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "REAR_LEFT", + "value": 4 }, { - "name": "VEHICLE_MAP_SERVICE", - "value": 299895808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "FRONT", + "value": 5 }, { - "name": "OBD2 Live Sensor Data", - "value": 299896064, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "REAR", + "value": 6 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "InitialUserInfoResponseAction", + "values": [ + { + "name": "DEFAULT", + "value": 0 }, { - "name": "OBD2 Freeze Frame Sensor Data", - "value": 299896065, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "SWITCH", + "value": 1 }, { - "name": "OBD2 Freeze Frame Information", - "value": 299896066, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, + "name": "CREATE", + "value": 2 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VmsSubscriptionsStateIntegerValuesIndex", + "values": [ { - "name": "OBD2 Freeze Frame Clear", - "value": 299896067, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" + "name": "MESSAGE_TYPE", + "value": 0 }, { - "name": "Headlights State", - "value": 289410560, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" + "name": "SEQUENCE_NUMBER", + "value": 1 }, { - "name": "High beam lights state", - "value": 289410561, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" + "name": "NUMBER_OF_LAYERS", + "value": 2 }, { - "name": "Fog light state", - "value": 289410562, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" + "name": "NUMBER_OF_ASSOCIATED_LAYERS", + "value": 3 }, { - "name": "Hazard light status", - "value": 289410563, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, + "name": "SUBSCRIPTIONS_START", + "value": 4 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "CruiseControlType", + "values": [ { - "name": "Headlight switch", - "value": 289410576, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" + "name": "OTHER", + "value": 0 }, { - "name": "High beam light switch", - "value": 289410577, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" + "name": "STANDARD", + "value": 1 }, { - "name": "Fog light switch", - "value": 289410578, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" + "name": "ADAPTIVE", + "value": 2 }, { - "name": "Hazard light switch", - "value": 289410579, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" + "name": "PREDICTIVE", + "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "DiagnosticFloatSensorIndex", + "values": [ + { + "name": "CALCULATED_ENGINE_LOAD", + "value": 0 }, { - "name": "Cabin lights", - "value": 289410817, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" + "name": "ENGINE_COOLANT_TEMPERATURE", + "value": 1 }, { - "name": "Cabin lights switch", - "value": 289410818, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" + "name": "SHORT_TERM_FUEL_TRIM_BANK1", + "value": 2 }, { - "name": "Reading lights", - "value": 356519683, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" + "name": "LONG_TERM_FUEL_TRIM_BANK1", + "value": 3 }, { - "name": "Reading lights switch", - "value": 356519684, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" + "name": "SHORT_TERM_FUEL_TRIM_BANK2", + "value": 4 }, { - "name": "Support customize permissions for vendor properties", - "value": 287313669, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" + "name": "LONG_TERM_FUEL_TRIM_BANK2", + "value": 5 }, { - "name": "Allow disabling optional featurs from vhal.", - "value": 286265094, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" + "name": "FUEL_PRESSURE", + "value": 6 }, { - "name": "Defines the initial Android user to be used during initialization.", - "value": 299896583, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", + "value": 7 }, { - "name": "Defines a request to switch the foreground Android user.", - "value": 299896584, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "ENGINE_RPM", + "value": 8 }, { - "name": "Called by the Android System after an Android user was created.", - "value": 299896585, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "VEHICLE_SPEED", + "value": 9 }, { - "name": "Called by the Android System after an Android user was removed.", - "value": 299896586, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:WRITE" + "name": "TIMING_ADVANCE", + "value": 10 }, { - "name": "USER_IDENTIFICATION_ASSOCIATION", - "value": 299896587, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "MAF_AIR_FLOW_RATE", + "value": 11 }, { - "name": "EVS_SERVICE_REQUEST", - "value": 289476368, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "THROTTLE_POSITION", + "value": 12 }, { - "name": "Defines a request to apply power policy.", - "value": 286265121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "OXYGEN_SENSOR1_VOLTAGE", + "value": 13 }, { - "name": "POWER_POLICY_GROUP_REQ", - "value": 286265122, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM", + "value": 14 }, { - "name": "Notifies the current power policy to VHAL layer.", - "value": 286265123, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 15 }, { - "name": "WATCHDOG_ALIVE", - "value": 290459441, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" + "name": "OXYGEN_SENSOR2_VOLTAGE", + "value": 16 }, { - "name": "Defines a process terminated by car watchdog and the reason of termination.", - "value": 299896626, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" + "name": "OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM", + "value": 17 }, { - "name": "Defines an event that VHAL signals to car watchdog as a heartbeat.", - "value": 290459443, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 18 }, { - "name": "Starts the ClusterUI in cluster display.", - "value": 289410868, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "OXYGEN_SENSOR3_VOLTAGE", + "value": 19 }, { - "name": "Changes the state of the cluster display.", - "value": 289476405, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" + "name": "OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM", + "value": 20 }, { - "name": "Reports the current display state and ClusterUI state.", - "value": 299896630, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" + "name": "OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 21 }, { - "name": "Requests to change the cluster display state to show some ClusterUI.", - "value": 289410871, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" + "name": "OXYGEN_SENSOR4_VOLTAGE", + "value": 22 }, { - "name": "Informs the current navigation state.", - "value": 292556600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" + "name": "OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM", + "value": 23 }, { - "name": "Electronic Toll Collection card type.", - "value": 289410873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardType" + "name": "OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 24 }, { - "name": "Electronic Toll Collection card status.", - "value": 289410874, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardStatus" + "name": "OXYGEN_SENSOR5_VOLTAGE", + "value": 25 }, { - "name": "Front fog lights state", - "value": 289410875, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" + "name": "OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM", + "value": 26 }, { - "name": "Front fog lights switch", - "value": 289410876, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" + "name": "OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 27 }, { - "name": "Rear fog lights state", - "value": 289410877, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" + "name": "OXYGEN_SENSOR6_VOLTAGE", + "value": 28 }, { - "name": "Rear fog lights switch", - "value": 289410878, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" + "name": "OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM", + "value": 29 }, { - "name": "Indicates the maximum current draw threshold for charging set by the user", - "value": 291508031, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:AMPERE" + "name": "OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 30 }, { - "name": "Indicates the maximum charge percent threshold set by the user", - "value": 291508032, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "OXYGEN_SENSOR7_VOLTAGE", + "value": 31 }, { - "name": "Charging state of the car", - "value": 289410881, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvChargeState" + "name": "OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM", + "value": 32 }, { - "name": "Start or stop charging the EV battery", - "value": 287313730, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" + "name": "OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 33 }, { - "name": "Estimated charge time remaining in seconds", - "value": 289410883, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:SECS" + "name": "OXYGEN_SENSOR8_VOLTAGE", + "value": 34 }, { - "name": "EV_REGENERATIVE_BRAKING_STATE", - "value": 289410884, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvRegenerativeBrakingState" + "name": "OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM", + "value": 35 }, { - "name": "Indicates if there is a trailer present or not.", - "value": 289410885, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "TrailerState" + "name": "OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 36 }, { - "name": "VEHICLE_CURB_WEIGHT", - "value": 289410886, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOGRAM" - } - ] - }, - { - "name": "EvsServiceType", - "values": [ + "name": "FUEL_RAIL_PRESSURE", + "value": 37 + }, { - "name": "REARVIEW", - "value": 0 + "name": "FUEL_RAIL_GAUGE_PRESSURE", + "value": 38 }, { - "name": "SURROUNDVIEW", - "value": 1 + "name": "COMMANDED_EXHAUST_GAS_RECIRCULATION", + "value": 39 + }, + { + "name": "EXHAUST_GAS_RECIRCULATION_ERROR", + "value": 40 + }, + { + "name": "COMMANDED_EVAPORATIVE_PURGE", + "value": 41 + }, + { + "name": "FUEL_TANK_LEVEL_INPUT", + "value": 42 + }, + { + "name": "EVAPORATION_SYSTEM_VAPOR_PRESSURE", + "value": 43 + }, + { + "name": "CATALYST_TEMPERATURE_BANK1_SENSOR1", + "value": 44 + }, + { + "name": "CATALYST_TEMPERATURE_BANK2_SENSOR1", + "value": 45 + }, + { + "name": "CATALYST_TEMPERATURE_BANK1_SENSOR2", + "value": 46 + }, + { + "name": "CATALYST_TEMPERATURE_BANK2_SENSOR2", + "value": 47 + }, + { + "name": "ABSOLUTE_LOAD_VALUE", + "value": 48 + }, + { + "name": "FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO", + "value": 49 + }, + { + "name": "RELATIVE_THROTTLE_POSITION", + "value": 50 + }, + { + "name": "ABSOLUTE_THROTTLE_POSITION_B", + "value": 51 + }, + { + "name": "ABSOLUTE_THROTTLE_POSITION_C", + "value": 52 + }, + { + "name": "ACCELERATOR_PEDAL_POSITION_D", + "value": 53 + }, + { + "name": "ACCELERATOR_PEDAL_POSITION_E", + "value": 54 + }, + { + "name": "ACCELERATOR_PEDAL_POSITION_F", + "value": 55 + }, + { + "name": "COMMANDED_THROTTLE_ACTUATOR", + "value": 56 + }, + { + "name": "ETHANOL_FUEL_PERCENTAGE", + "value": 57 + }, + { + "name": "ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE", + "value": 58 + }, + { + "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", + "value": 59 + }, + { + "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", + "value": 60 + }, + { + "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", + "value": 61 + }, + { + "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", + "value": 62 + }, + { + "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", + "value": 63 + }, + { + "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", + "value": 64 + }, + { + "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", + "value": 65 + }, + { + "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", + "value": 66 + }, + { + "name": "RELATIVE_ACCELERATOR_PEDAL_POSITION", + "value": 67 + }, + { + "name": "HYBRID_BATTERY_PACK_REMAINING_LIFE", + "value": 68 + }, + { + "name": "FUEL_INJECTION_TIMING", + "value": 69 + }, + { + "name": "ENGINE_FUEL_RATE", + "value": 70 } ] }, { - "name": "VehiclePropertyChangeMode", + "package": "android.hardware.automotive.vehicle", + "name": "GsrComplianceRequirementType", "values": [ { - "name": "STATIC", + "name": "GSR_COMPLIANCE_NOT_REQUIRED", "value": 0 }, { - "name": "ON_CHANGE", + "name": "GSR_COMPLIANCE_REQUIRED_V1", "value": 1 - }, - { - "name": "CONTINUOUS", - "value": 2 } ] }, { - "name": "Obd2CompressionIgnitionMonitors", - "values": [] - }, - { + "package": "android.hardware.automotive.vehicle", "name": "VehicleLightState", "values": [ { @@ -1904,1556 +1961,2642 @@ ] }, { - "name": "SwitchUserMessageType", + "package": "android.hardware.automotive.vehicle", + "name": "VmsMessageWithLayerIntegerValuesIndex", "values": [ { - "name": "UNKNOWN", + "name": "MESSAGE_TYPE", "value": 0 }, { - "name": "LEGACY_ANDROID_SWITCH", + "name": "LAYER_TYPE", "value": 1 }, { - "name": "ANDROID_SWITCH", + "name": "LAYER_SUBTYPE", "value": 2 }, { - "name": "VEHICLE_RESPONSE", + "name": "LAYER_VERSION", "value": 3 - }, - { - "name": "VEHICLE_REQUEST", - "value": 4 - }, - { - "name": "ANDROID_POST_SWITCH", - "value": 5 } ] }, { - "name": "PortLocationType", + "package": "android.hardware.automotive.vehicle", + "name": "EvRegenerativeBrakingState", "values": [ { "name": "UNKNOWN", "value": 0 }, { - "name": "FRONT_LEFT", + "name": "DISABLED", "value": 1 }, { - "name": "FRONT_RIGHT", + "name": "PARTIALLY_ENABLED", "value": 2 }, { - "name": "REAR_RIGHT", + "name": "FULLY_ENABLED", "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleApPowerStateReqIndex", + "values": [ + { + "name": "STATE", + "value": 0 }, { - "name": "REAR_LEFT", + "name": "ADDITIONAL", + "value": 1 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "RotaryInputType", + "values": [ + { + "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", + "value": 0 + }, + { + "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", + "value": 1 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VmsMessageType", + "values": [ + { + "name": "SUBSCRIBE", + "value": 1 + }, + { + "name": "SUBSCRIBE_TO_PUBLISHER", + "value": 2 + }, + { + "name": "UNSUBSCRIBE", + "value": 3 + }, + { + "name": "UNSUBSCRIBE_TO_PUBLISHER", "value": 4 }, { - "name": "FRONT", + "name": "OFFERING", "value": 5 }, { - "name": "REAR", + "name": "AVAILABILITY_REQUEST", "value": 6 + }, + { + "name": "SUBSCRIPTIONS_REQUEST", + "value": 7 + }, + { + "name": "AVAILABILITY_RESPONSE", + "value": 8 + }, + { + "name": "AVAILABILITY_CHANGE", + "value": 9 + }, + { + "name": "SUBSCRIPTIONS_RESPONSE", + "value": 10 + }, + { + "name": "SUBSCRIPTIONS_CHANGE", + "value": 11 + }, + { + "name": "DATA", + "value": 12 + }, + { + "name": "PUBLISHER_ID_REQUEST", + "value": 13 + }, + { + "name": "PUBLISHER_ID_RESPONSE", + "value": 14 + }, + { + "name": "PUBLISHER_INFORMATION_REQUEST", + "value": 15 + }, + { + "name": "PUBLISHER_INFORMATION_RESPONSE", + "value": 16 + }, + { + "name": "START_SESSION", + "value": 17 } ] }, { - "name": "VehiclePropertyStatus", + "package": "android.hardware.automotive.vehicle", + "name": "FuelType", "values": [ { - "name": "AVAILABLE", + "name": "FUEL_TYPE_UNKNOWN", "value": 0 }, { - "name": "UNAVAILABLE", + "name": "FUEL_TYPE_UNLEADED", "value": 1 }, { - "name": "ERROR", + "name": "FUEL_TYPE_LEADED", "value": 2 + }, + { + "name": "FUEL_TYPE_DIESEL_1", + "value": 3 + }, + { + "name": "FUEL_TYPE_DIESEL_2", + "value": 4 + }, + { + "name": "FUEL_TYPE_BIODIESEL", + "value": 5 + }, + { + "name": "FUEL_TYPE_E85", + "value": 6 + }, + { + "name": "FUEL_TYPE_LPG", + "value": 7 + }, + { + "name": "FUEL_TYPE_CNG", + "value": 8 + }, + { + "name": "FUEL_TYPE_LNG", + "value": 9 + }, + { + "name": "FUEL_TYPE_ELECTRIC", + "value": 10 + }, + { + "name": "FUEL_TYPE_HYDROGEN", + "value": 11 + }, + { + "name": "FUEL_TYPE_OTHER", + "value": 12 } ] }, { - "name": "VehicleDisplay", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleSeatOccupancyState", "values": [ { - "name": "MAIN", + "name": "UNKNOWN", "value": 0 }, { - "name": "INSTRUMENT_CLUSTER", + "name": "VACANT", "value": 1 + }, + { + "name": "OCCUPIED", + "value": 2 } ] }, { - "name": "SwitchUserStatus", + "package": "android.hardware.automotive.vehicle", + "name": "EvStoppingMode", "values": [ { - "name": "SUCCESS", + "name": "OTHER", + "value": 0 + }, + { + "name": "CREEP", "value": 1 }, { - "name": "FAILURE", + "name": "ROLL", "value": 2 + }, + { + "name": "HOLD", + "value": 3 } ] }, { - "name": "InitialUserInfoRequestType", + "package": "android.hardware.automotive.vehicle", + "name": "AutomaticEmergencyBrakingState", "values": [ { - "name": "UNKNOWN", + "name": "OTHER", "value": 0 }, { - "name": "FIRST_BOOT", + "name": "ENABLED", "value": 1 }, { - "name": "FIRST_BOOT_AFTER_OTA", + "name": "ACTIVATED", "value": 2 }, { - "name": "COLD_BOOT", + "name": "USER_OVERRIDE", + "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleApPowerStateReport", + "values": [ + { + "name": "WAIT_FOR_VHAL", + "value": 1 + }, + { + "name": "DEEP_SLEEP_ENTRY", + "value": 2 + }, + { + "name": "DEEP_SLEEP_EXIT", "value": 3 }, { - "name": "RESUME", + "name": "SHUTDOWN_POSTPONE", "value": 4 + }, + { + "name": "SHUTDOWN_START", + "value": 5 + }, + { + "name": "ON", + "value": 6 + }, + { + "name": "SHUTDOWN_PREPARE", + "value": 7 + }, + { + "name": "SHUTDOWN_CANCELLED", + "value": 8 + }, + { + "name": "HIBERNATION_ENTRY", + "value": 9 + }, + { + "name": "HIBERNATION_EXIT", + "value": 10 } ] }, { - "name": "UserIdentificationAssociationSetValue", + "package": "android.hardware.automotive.vehicle", + "name": "SwitchUserMessageType", "values": [ { - "name": "INVALID", + "name": "UNKNOWN", "value": 0 }, { - "name": "ASSOCIATE_CURRENT_USER", + "name": "LEGACY_ANDROID_SWITCH", "value": 1 }, { - "name": "DISASSOCIATE_CURRENT_USER", + "name": "ANDROID_SWITCH", "value": 2 }, { - "name": "DISASSOCIATE_ALL_USERS", + "name": "VEHICLE_RESPONSE", "value": 3 + }, + { + "name": "VEHICLE_REQUEST", + "value": 4 + }, + { + "name": "ANDROID_POST_SWITCH", + "value": 5 } ] }, { - "name": "VehicleAreaDoor", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleAreaMirror", "values": [ { - "name": "ROW_1_LEFT", + "name": "DRIVER_LEFT", "value": 1 }, { - "name": "ROW_1_RIGHT", + "name": "DRIVER_RIGHT", + "value": 2 + }, + { + "name": "DRIVER_CENTER", "value": 4 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "TrailerState", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "NOT_PRESENT", + "value": 1 + }, + { + "name": "PRESENT", + "value": 2 + }, + { + "name": "ERROR", + "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "EvsServiceState", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleHwKeyInputAction", + "values": [ + { + "name": "ACTION_DOWN", + "value": 0 + }, + { + "name": "ACTION_UP", + "value": 1 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "BlindSpotWarningState", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleGear", + "values": [ + { + "name": "GEAR_UNKNOWN", + "value": 0 + }, + { + "name": "GEAR_NEUTRAL", + "value": 1 + }, + { + "name": "GEAR_REVERSE", + "value": 2 + }, + { + "name": "GEAR_PARK", + "value": 4 + }, + { + "name": "GEAR_DRIVE", + "value": 8 + }, + { + "name": "GEAR_1", + "value": 16 + }, + { + "name": "GEAR_2", + "value": 32 + }, + { + "name": "GEAR_3", + "value": 64 + }, + { + "name": "GEAR_4", + "value": 128 + }, + { + "name": "GEAR_5", + "value": 256 + }, + { + "name": "GEAR_6", + "value": 512 + }, + { + "name": "GEAR_7", + "value": 1024 + }, + { + "name": "GEAR_8", + "value": 2048 + }, + { + "name": "GEAR_9", + "value": 4096 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VmsStartSessionMessageIntegerValuesIndex", + "values": [ + { + "name": "MESSAGE_TYPE", + "value": 0 + }, + { + "name": "SERVICE_ID", + "value": 1 + }, + { + "name": "CLIENT_ID", + "value": 2 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "Obd2FuelSystemStatus", + "values": [ + { + "name": "OPEN_INSUFFICIENT_ENGINE_TEMPERATURE", + "value": 1 + }, + { + "name": "CLOSED_LOOP", + "value": 2 + }, + { + "name": "OPEN_ENGINE_LOAD_OR_DECELERATION", + "value": 4 + }, + { + "name": "OPEN_SYSTEM_FAILURE", + "value": 8 + }, + { + "name": "CLOSED_LOOP_BUT_FEEDBACK_FAULT", + "value": 16 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "ElectronicTollCollectionCardStatus", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", + "value": 1 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", + "value": 2 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", + "value": 3 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleApPowerStateShutdownParam", + "values": [ + { + "name": "SHUTDOWN_IMMEDIATELY", + "value": 1 + }, + { + "name": "CAN_SLEEP", + "value": 2 + }, + { + "name": "SHUTDOWN_ONLY", + "value": 3 + }, + { + "name": "SLEEP_IMMEDIATELY", + "value": 4 + }, + { + "name": "HIBERNATE_IMMEDIATELY", + "value": 5 + }, + { + "name": "CAN_HIBERNATE", + "value": 6 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "CustomInputType", + "values": [ + { + "name": "CUSTOM_EVENT_F1", + "value": 1001 + }, + { + "name": "CUSTOM_EVENT_F2", + "value": 1002 + }, + { + "name": "CUSTOM_EVENT_F3", + "value": 1003 + }, + { + "name": "CUSTOM_EVENT_F4", + "value": 1004 + }, + { + "name": "CUSTOM_EVENT_F5", + "value": 1005 + }, + { + "name": "CUSTOM_EVENT_F6", + "value": 1006 + }, + { + "name": "CUSTOM_EVENT_F7", + "value": 1007 + }, + { + "name": "CUSTOM_EVENT_F8", + "value": 1008 + }, + { + "name": "CUSTOM_EVENT_F9", + "value": 1009 + }, + { + "name": "CUSTOM_EVENT_F10", + "value": 1010 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleTurnSignal", + "values": [ + { + "name": "NONE", + "value": 0 + }, + { + "name": "RIGHT", + "value": 1 + }, + { + "name": "LEFT", + "value": 2 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "ElectronicTollCollectionCardType", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", + "value": 1 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", + "value": 2 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "VehicleProperty", + "values": [ + { + "name": "Undefined property.", + "value": 0 + }, + { + "name": "VIN of vehicle", + "value": 286261504, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Manufacturer of vehicle", + "value": 286261505, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Model of vehicle", + "value": 286261506, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Model year of vehicle.", + "value": 289407235, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:YEAR" + }, + { + "name": "Fuel capacity of the vehicle in milliliters", + "value": 291504388, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:MILLILITER" + }, + { + "name": "List of fuels the vehicle may use.", + "value": 289472773, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "data_enum": "FuelType" + }, + { + "name": "Nominal battery capacity for EV or hybrid vehicle", + "value": 291504390, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:WH" + }, + { + "name": "List of connectors this EV may use", + "value": 289472775, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "data_enum": "EvConnectorType", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Fuel door location", + "value": 289407240, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "data_enum": "PortLocationType", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "EV port location", + "value": 289407241, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "data_enum": "PortLocationType" + }, + { + "name": "INFO_DRIVER_SEAT", + "value": 356516106, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "data_enum": "VehicleAreaSeat", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Exterior dimensions of vehicle.", + "value": 289472779, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:MILLIMETER" + }, + { + "name": "Multiple EV port locations", + "value": 289472780, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "data_enum": "PortLocationType" + }, + { + "name": "Current odometer value of the vehicle", + "value": 291504644, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:KILOMETER" + }, + { + "name": "Speed of the vehicle", + "value": 291504647, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:METER_PER_SEC" + }, + { + "name": "Speed of the vehicle for displays", + "value": 291504648, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:METER_PER_SEC" + }, + { + "name": "Front bicycle model steering angle for vehicle", + "value": 291504649, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:DEGREES" + }, + { + "name": "Rear bicycle model steering angle for vehicle", + "value": 291504656, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:DEGREES" + }, + { + "name": "Temperature of engine coolant", + "value": 291504897, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:CELSIUS" + }, + { + "name": "Engine oil level", + "value": 289407747, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleOilLevel" + }, + { + "name": "Temperature of engine oil", + "value": 291504900, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:CELSIUS" + }, + { + "name": "Engine rpm", + "value": 291504901, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:RPM" + }, + { + "name": "Reports wheel ticks", + "value": 290521862, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "FUEL_LEVEL", + "value": 291504903, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:MILLILITER" + }, + { + "name": "Fuel door open", + "value": 287310600, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Battery level for EV or hybrid vehicle", + "value": 291504905, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:WH" + }, + { + "name": "Current battery capacity for EV or hybrid vehicle", + "value": 291504909, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:WH" + }, + { + "name": "EV charge port open", + "value": 287310602, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "EV charge port connected", + "value": 287310603, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "EV instantaneous charge rate in milliwatts", + "value": 291504908, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:MW" + }, + { + "name": "Range remaining", + "value": 291504904, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ_WRITE", + "unit": "VehicleUnit:METER" + }, + { + "name": "Tire pressure", + "value": 392168201, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:KILOPASCAL" + }, + { + "name": "Critically low tire pressure", + "value": 392168202, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:KILOPASCAL" + }, + { + "name": "Represents feature for engine idle automatic stop.", + "value": 287310624, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Currently selected gear", + "value": 289408000, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleGear" + }, + { + "name": "CURRENT_GEAR", + "value": 289408001, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleGear" + }, + { + "name": "Parking brake state.", + "value": 287310850, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "PARKING_BRAKE_AUTO_APPLY", + "value": 287310851, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Regenerative braking level of a electronic vehicle", + "value": 289408012, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Warning for fuel low level.", + "value": 287310853, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Night mode", + "value": 287310855, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "State of the vehicles turn signals", + "value": 289408008, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleTurnSignal" + }, + { + "name": "Represents ignition state", + "value": 289408009, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleIgnitionState" + }, + { + "name": "ABS is active", + "value": 287310858, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Traction Control is active", + "value": 287310859, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "Represents property for the current stopping mode of the vehicle.", + "value": 289408013, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "EvStoppingMode" + }, + { + "name": "HVAC Properties", + "value": 356517120, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Fan direction setting", + "value": 356517121, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "HVAC current temperature.", + "value": 358614274, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:CELSIUS" + }, + { + "name": "HVAC_TEMPERATURE_SET", + "value": 358614275, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "unit": "VehicleUnit:CELSIUS" + }, + { + "name": "HVAC_DEFROSTER", + "value": 320865540, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "HVAC_AC_ON", + "value": 354419973, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "config_flags": "Supported" + }, + { + "name": "HVAC_MAX_AC_ON", + "value": 354419974, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "HVAC_MAX_DEFROST_ON", + "value": 354419975, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "HVAC_RECIRC_ON", + "value": 354419976, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Enable temperature coupling between areas.", + "value": 354419977, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "HVAC_AUTO_ON", + "value": 354419978, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "HVAC_SEAT_TEMPERATURE", + "value": 356517131, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Side Mirror Heat", + "value": 339739916, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "HVAC_STEERING_WHEEL_HEAT", + "value": 289408269, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Temperature units for display", + "value": 289408270, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleUnit" + }, + { + "name": "Actual fan speed", + "value": 356517135, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" + }, + { + "name": "HVAC_POWER_ON", + "value": 354419984, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Fan Positions Available", + "value": 356582673, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "HVAC_AUTO_RECIRC_ON", + "value": 354419986, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Seat ventilation", + "value": 356517139, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "HVAC_ELECTRIC_DEFROSTER_ON", + "value": 320865556, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Suggested values for setting HVAC temperature.", + "value": 291570965, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" + }, + { + "name": "Distance units for display", + "value": 289408512, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleUnit" }, { - "name": "ROW_2_LEFT", - "value": 16 + "name": "Fuel volume units for display", + "value": 289408513, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleUnit" }, { - "name": "ROW_2_RIGHT", - "value": 64 + "name": "Tire pressure units for display", + "value": 289408514, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleUnit" }, { - "name": "ROW_3_LEFT", - "value": 256 + "name": "EV battery units for display", + "value": 289408515, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleUnit" }, { - "name": "ROW_3_RIGHT", - "value": 1024 + "name": "Fuel consumption units for display", + "value": 287311364, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "HOOD", - "value": 268435456 + "name": "Speed units for display", + "value": 289408517, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "REAR", - "value": 536870912 - } - ] - }, - { - "name": "VehicleLightSwitch", - "values": [ - { - "name": "OFF", - "value": 0 + "name": "ANDROID_EPOCH_TIME", + "value": 290457094, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE", + "unit": "VehicleUnit:MILLI_SECS" }, { - "name": "ON", - "value": 1 + "name": "External encryption binding seed.", + "value": 292554247, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "DAYTIME_RUNNING", - "value": 2 + "name": "Outside temperature", + "value": 291505923, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:CELSIUS" }, { - "name": "AUTOMATIC", - "value": 256 - } - ] - }, - { - "name": "VehicleGear", - "values": [ - { - "name": "GEAR_UNKNOWN", - "value": 0 + "name": "Property to control power state of application processor", + "value": 289475072, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "GEAR_NEUTRAL", - "value": 1 + "name": "Property to report power state of application processor", + "value": 289475073, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "GEAR_REVERSE", - "value": 2 + "name": "AP_POWER_BOOTUP_REASON", + "value": 289409538, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ" }, { - "name": "GEAR_PARK", - "value": 4 + "name": "Property to represent brightness of the display.", + "value": 289409539, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "GEAR_DRIVE", - "value": 8 + "name": "Property to represent brightness of the displays which are controlled separately.", + "value": 289475076, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "GEAR_1", - "value": 16 + "name": "HW_KEY_INPUT", + "value": 289475088, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "config_flags": "" }, { - "name": "GEAR_2", - "value": 32 + "name": "HW_KEY_INPUT_V2", + "value": 367004177, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "config_flags": "" }, { - "name": "GEAR_3", - "value": 64 + "name": "HW_MOTION_INPUT", + "value": 367004178, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "config_flags": "" }, { - "name": "GEAR_4", - "value": 128 + "name": "HW_ROTARY_INPUT", + "value": 289475104, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "data_enum": "RotaryInputType", + "access": "VehiclePropertyAccess:READ" }, { - "name": "GEAR_5", - "value": 256 + "name": "Defines a custom OEM partner input event.", + "value": 289475120, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "data_enum": "CustomInputType", + "access": "VehiclePropertyAccess:READ" }, { - "name": "GEAR_6", - "value": 512 + "name": "DOOR_POS", + "value": 373295872, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "GEAR_7", - "value": 1024 + "name": "Door move", + "value": 373295873, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "GEAR_8", - "value": 2048 + "name": "Door lock", + "value": 371198722, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "GEAR_9", - "value": 4096 - } - ] - }, - { - "name": "Obd2IgnitionMonitorKind", - "values": [ - { - "name": "SPARK", - "value": 0 + "name": "Door child lock feature enabled", + "value": 371198723, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "COMPRESSION", - "value": 1 - } - ] - }, - { - "name": "CustomInputType", - "values": [ - { - "name": "CUSTOM_EVENT_F1", - "value": 1001 + "name": "Mirror Z Position", + "value": 339741504, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CUSTOM_EVENT_F2", - "value": 1002 + "name": "Mirror Z Move", + "value": 339741505, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CUSTOM_EVENT_F3", - "value": 1003 + "name": "Mirror Y Position", + "value": 339741506, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CUSTOM_EVENT_F4", - "value": 1004 + "name": "Mirror Y Move", + "value": 339741507, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CUSTOM_EVENT_F5", - "value": 1005 + "name": "Mirror Lock", + "value": 287312708, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CUSTOM_EVENT_F6", - "value": 1006 + "name": "Mirror Fold", + "value": 287312709, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CUSTOM_EVENT_F7", - "value": 1007 + "name": "Represents property for Mirror Auto Fold feature.", + "value": 337644358, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CUSTOM_EVENT_F8", - "value": 1008 + "name": "Represents property for Mirror Auto Tilt feature.", + "value": 337644359, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CUSTOM_EVENT_F9", - "value": 1009 + "name": "Seat memory select", + "value": 356518784, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE" }, { - "name": "CUSTOM_EVENT_F10", - "value": 1010 - } - ] - }, - { - "name": "VehicleApPowerStateReport", - "values": [ - { - "name": "WAIT_FOR_VHAL", - "value": 1 + "name": "Seat memory set", + "value": 356518785, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE" }, { - "name": "DEEP_SLEEP_ENTRY", - "value": 2 + "name": "Seatbelt buckled", + "value": 354421634, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "DEEP_SLEEP_EXIT", - "value": 3 + "name": "Seatbelt height position", + "value": 356518787, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "SHUTDOWN_POSTPONE", - "value": 4 + "name": "Seatbelt height move", + "value": 356518788, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "SHUTDOWN_START", - "value": 5 + "name": "SEAT_FORE_AFT_POS", + "value": 356518789, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ON", - "value": 6 + "name": "SEAT_FORE_AFT_MOVE", + "value": 356518790, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "SHUTDOWN_PREPARE", - "value": 7 + "name": "Seat backrest angle 1 position", + "value": 356518791, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "SHUTDOWN_CANCELLED", - "value": 8 + "name": "Seat backrest angle 1 move", + "value": 356518792, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "HIBERNATION_ENTRY", - "value": 9 + "name": "Seat backrest angle 2 position", + "value": 356518793, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "HIBERNATION_EXIT", - "value": 10 - } - ] - }, - { - "name": "VmsMessageWithLayerIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 + "name": "Seat backrest angle 2 move", + "value": 356518794, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "LAYER_TYPE", - "value": 1 + "name": "Seat height position", + "value": 356518795, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "LAYER_SUBTYPE", - "value": 2 + "name": "Seat height move", + "value": 356518796, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "LAYER_VERSION", - "value": 3 - } - ] - }, - { - "name": "EvRegenerativeBrakingState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 + "name": "Seat depth position", + "value": 356518797, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "DISABLED", - "value": 1 + "name": "Seat depth move", + "value": 356518798, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "PARTIALLY_ENABLED", - "value": 2 + "name": "Seat tilt position", + "value": 356518799, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "FULLY_ENABLED", - "value": 3 - } - ] - }, - { - "name": "VehiclePropertyGroup", - "values": [ - { - "name": "SYSTEM", - "value": 268435456 + "name": "Seat tilt move", + "value": 356518800, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "VENDOR", - "value": 536870912 + "name": "SEAT_LUMBAR_FORE_AFT_POS", + "value": 356518801, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "MASK", - "value": 4026531840 - } - ] - }, - { - "name": "VehicleIgnitionState", - "values": [ - { - "name": "UNDEFINED", - "value": 0 + "name": "SEAT_LUMBAR_FORE_AFT_MOVE", + "value": 356518802, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "LOCK", - "value": 1 + "name": "Lumbar side support position", + "value": 356518803, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "OFF", - "value": 2 + "name": "Lumbar side support move", + "value": 356518804, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ACC", - "value": 3 + "name": "SEAT_HEADREST_HEIGHT_POS", + "value": 289409941, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ON", - "value": 4 + "name": "Headrest height position", + "value": 356518820, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "START", - "value": 5 - } - ] - }, - { - "name": "VehicleHwKeyInputAction", - "values": [ - { - "name": "ACTION_DOWN", - "value": 0 + "name": "Headrest height move", + "value": 356518806, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ACTION_UP", - "value": 1 - } - ] - }, - { - "name": "DiagnosticIntegerSensorIndex", - "values": [ - { - "name": "FUEL_SYSTEM_STATUS", - "value": 0 + "name": "Headrest angle position", + "value": 356518807, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 1 + "name": "Headrest angle move", + "value": 356518808, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "IGNITION_MONITORS_SUPPORTED", - "value": 2 + "name": "SEAT_HEADREST_FORE_AFT_POS", + "value": 356518809, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "IGNITION_SPECIFIC_MONITORS", - "value": 3 + "name": "SEAT_HEADREST_FORE_AFT_MOVE", + "value": 356518810, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "INTAKE_AIR_TEMPERATURE", - "value": 4 + "name": "Represents property for the seat footwell lights state.", + "value": 356518811, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "COMMANDED_SECONDARY_AIR_STATUS", - "value": 5 + "name": "Represents property for the seat footwell lights switch.", + "value": 356518812, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "NUM_OXYGEN_SENSORS_PRESENT", - "value": 6 + "name": "Represents property for Seat easy access feature.", + "value": 354421661, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "RUNTIME_SINCE_ENGINE_START", - "value": 7 + "name": "SEAT_AIRBAG_ENABLED", + "value": 354421662, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 8 + "name": "SEAT_CUSHION_SIDE_SUPPORT_POS", + "value": 356518815, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "WARMUPS_SINCE_CODES_CLEARED", - "value": 9 + "name": "Represents property for movement direction and speed of seat cushion side support.", + "value": 356518816, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "DISTANCE_TRAVELED_SINCE_CODES_CLEARED", - "value": 10 + "name": "SEAT_LUMBAR_VERTICAL_POS", + "value": 356518817, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ABSOLUTE_BAROMETRIC_PRESSURE", - "value": 11 + "name": "Represents property for vertical movement direction and speed of seat lumbar support.", + "value": 356518818, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "CONTROL_MODULE_VOLTAGE", - "value": 12 + "name": "SEAT_WALK_IN_POS", + "value": 356518819, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "AMBIENT_AIR_TEMPERATURE", - "value": 13 + "name": "Seat Occupancy", + "value": 356518832, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleSeatOccupancyState" }, { - "name": "TIME_WITH_MALFUNCTION_LIGHT_ON", - "value": 14 + "name": "Window Position", + "value": 322964416, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "TIME_SINCE_TROUBLE_CODES_CLEARED", - "value": 15 + "name": "Window Move", + "value": 322964417, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "MAX_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 16 + "name": "Window Lock", + "value": 320867268, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "MAX_OXYGEN_SENSOR_VOLTAGE", - "value": 17 + "name": "WINDSHIELD_WIPERS_PERIOD", + "value": 322964421, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:MILLI_SECS" }, { - "name": "MAX_OXYGEN_SENSOR_CURRENT", - "value": 18 + "name": "Windshield wipers state.", + "value": 322964422, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "WindshieldWipersState" }, { - "name": "MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 19 + "name": "Windshield wipers switch.", + "value": 322964423, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "WindshieldWipersSwitch" }, { - "name": "MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR", - "value": 20 + "name": "Steering wheel depth position", + "value": 289410016, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "FUEL_TYPE", - "value": 21 + "name": "Steering wheel depth movement", + "value": 289410017, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "FUEL_RAIL_ABSOLUTE_PRESSURE", - "value": 22 + "name": "Steering wheel height position", + "value": 289410018, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ENGINE_OIL_TEMPERATURE", - "value": 23 + "name": "Steering wheel height movement", + "value": 289410019, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "DRIVER_DEMAND_PERCENT_TORQUE", - "value": 24 + "name": "Steering wheel theft lock feature enabled", + "value": 287312868, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ENGINE_ACTUAL_PERCENT_TORQUE", - "value": 25 + "name": "Steering wheel locked", + "value": 287312869, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ENGINE_REFERENCE_PERCENT_TORQUE", - "value": 26 + "name": "Steering wheel easy access feature enabled", + "value": 287312870, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ENGINE_PERCENT_TORQUE_DATA_IDLE", - "value": 27 + "name": "Property that represents the current position of the glove box door.", + "value": 356518896, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT1", - "value": 28 + "name": "Lock or unlock the glove box.", + "value": 354421745, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT2", - "value": 29 + "name": "VEHICLE_MAP_SERVICE", + "value": 299895808, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT3", - "value": 30 + "name": "Characterization of inputs used for computing location.", + "value": 289410064, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ" }, { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT4", - "value": 31 - } - ] - }, - { - "name": "UserIdentificationAssociationValue", - "values": [ - { - "name": "UNKNOWN", - "value": 1 + "name": "OBD2 Live Sensor Data", + "value": 299896064, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "ASSOCIATED_CURRENT_USER", - "value": 2 + "name": "OBD2 Freeze Frame Sensor Data", + "value": 299896065, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "ASSOCIATED_ANOTHER_USER", - "value": 3 + "name": "OBD2 Freeze Frame Information", + "value": 299896066, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "NOT_ASSOCIATED_ANY_USER", - "value": 4 - } - ] - }, - { - "name": "VmsBaseMessageIntegerValuesIndex", - "values": [ + "name": "OBD2 Freeze Frame Clear", + "value": 299896067, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE" + }, { - "name": "MESSAGE_TYPE", - "value": 0 - } - ] - }, - { - "name": "DiagnosticFloatSensorIndex", - "values": [ + "name": "Headlights State", + "value": 289410560, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" + }, { - "name": "CALCULATED_ENGINE_LOAD", - "value": 0 + "name": "High beam lights state", + "value": 289410561, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "ENGINE_COOLANT_TEMPERATURE", - "value": 1 + "name": "Fog light state", + "value": 289410562, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "SHORT_TERM_FUEL_TRIM_BANK1", - "value": 2 + "name": "Hazard light status", + "value": 289410563, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "LONG_TERM_FUEL_TRIM_BANK1", - "value": 3 + "name": "Headlight switch", + "value": 289410576, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "SHORT_TERM_FUEL_TRIM_BANK2", - "value": 4 + "name": "High beam light switch", + "value": 289410577, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "LONG_TERM_FUEL_TRIM_BANK2", - "value": 5 + "name": "Fog light switch", + "value": 289410578, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "FUEL_PRESSURE", - "value": 6 + "name": "Hazard light switch", + "value": 289410579, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 7 + "name": "Cabin lights", + "value": 289410817, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "ENGINE_RPM", - "value": 8 + "name": "Cabin lights switch", + "value": 289410818, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "VEHICLE_SPEED", - "value": 9 + "name": "Reading lights", + "value": 356519683, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "TIMING_ADVANCE", - "value": 10 + "name": "Reading lights switch", + "value": 356519684, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "MAF_AIR_FLOW_RATE", - "value": 11 + "name": "Steering wheel lights state", + "value": 289410828, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "THROTTLE_POSITION", - "value": 12 + "name": "Steering wheel lights switch", + "value": 289410829, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "OXYGEN_SENSOR1_VOLTAGE", - "value": 13 + "name": "Support customize permissions for vendor properties", + "value": 287313669, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ" }, { - "name": "OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM", - "value": 14 + "name": "Allow disabling optional featurs from vhal.", + "value": 286265094, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ" }, { - "name": "OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 15 + "name": "Defines the initial Android user to be used during initialization.", + "value": 299896583, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "OXYGEN_SENSOR2_VOLTAGE", - "value": 16 + "name": "Defines a request to switch the foreground Android user.", + "value": 299896584, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM", - "value": 17 + "name": "Called by the Android System after an Android user was created.", + "value": 299896585, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 18 + "name": "Called by the Android System after an Android user was removed.", + "value": 299896586, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:WRITE" }, { - "name": "OXYGEN_SENSOR3_VOLTAGE", - "value": 19 + "name": "USER_IDENTIFICATION_ASSOCIATION", + "value": 299896587, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM", - "value": 20 + "name": "EVS_SERVICE_REQUEST", + "value": 289476368, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 21 + "name": "Defines a request to apply power policy.", + "value": 286265121, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "OXYGEN_SENSOR4_VOLTAGE", - "value": 22 + "name": "POWER_POLICY_GROUP_REQ", + "value": 286265122, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM", - "value": 23 + "name": "Notifies the current power policy to VHAL layer.", + "value": 286265123, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 24 + "name": "WATCHDOG_ALIVE", + "value": 290459441, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE" }, { - "name": "OXYGEN_SENSOR5_VOLTAGE", - "value": 25 + "name": "Defines a process terminated by car watchdog and the reason of termination.", + "value": 299896626, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE" }, { - "name": "OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM", - "value": 26 + "name": "Defines an event that VHAL signals to car watchdog as a heartbeat.", + "value": 290459443, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 27 + "name": "Starts the ClusterUI in cluster display.", + "value": 289410868, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "OXYGEN_SENSOR6_VOLTAGE", - "value": 28 + "name": "Changes the state of the cluster display.", + "value": 289476405, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ" }, { - "name": "OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM", - "value": 29 + "name": "Reports the current display state and ClusterUI state.", + "value": 299896630, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE" }, { - "name": "OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 30 + "name": "Requests to change the cluster display state to show some ClusterUI.", + "value": 289410871, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE" }, { - "name": "OXYGEN_SENSOR7_VOLTAGE", - "value": 31 + "name": "Informs the current navigation state.", + "value": 292556600, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE" }, { - "name": "OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM", - "value": 32 + "name": "Electronic Toll Collection card type.", + "value": 289410873, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ElectronicTollCollectionCardType" }, { - "name": "OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 33 + "name": "Electronic Toll Collection card status.", + "value": 289410874, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ElectronicTollCollectionCardStatus" }, { - "name": "OXYGEN_SENSOR8_VOLTAGE", - "value": 34 + "name": "Front fog lights state", + "value": 289410875, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM", - "value": 35 + "name": "Front fog lights switch", + "value": 289410876, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 36 + "name": "Rear fog lights state", + "value": 289410877, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "VehicleLightState" }, { - "name": "FUEL_RAIL_PRESSURE", - "value": 37 + "name": "Rear fog lights switch", + "value": 289410878, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "VehicleLightSwitch" }, { - "name": "FUEL_RAIL_GAUGE_PRESSURE", - "value": 38 + "name": "Indicates the maximum current draw threshold for charging set by the user", + "value": 291508031, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "unit": "VehicleUnit:AMPERE" }, { - "name": "COMMANDED_EXHAUST_GAS_RECIRCULATION", - "value": 39 + "name": "Indicates the maximum charge percent threshold set by the user", + "value": 291508032, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "EXHAUST_GAS_RECIRCULATION_ERROR", - "value": 40 + "name": "Charging state of the car", + "value": 289410881, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "EvChargeState" }, { - "name": "COMMANDED_EVAPORATIVE_PURGE", - "value": 41 + "name": "Start or stop charging the EV battery", + "value": 287313730, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "FUEL_TANK_LEVEL_INPUT", - "value": 42 + "name": "Estimated charge time remaining in seconds", + "value": 289410883, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:SECS" }, { - "name": "EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 43 + "name": "EV_REGENERATIVE_BRAKING_STATE", + "value": 289410884, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "EvRegenerativeBrakingState" }, { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR1", - "value": 44 + "name": "Indicates if there is a trailer present or not.", + "value": 289410885, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "TrailerState" }, { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR1", - "value": 45 + "name": "VEHICLE_CURB_WEIGHT", + "value": 289410886, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:KILOGRAM" }, { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR2", - "value": 46 + "name": "GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", + "value": 289410887, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ", + "data_enum": "GsrComplianceRequirementType" }, { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR2", - "value": 47 + "name": "SUPPORTED_PROPERTY_IDS", + "value": 289476424, + "change_mode": "VehiclePropertyChangeMode:STATIC", + "access": "VehiclePropertyAccess:READ" }, { - "name": "ABSOLUTE_LOAD_VALUE", - "value": 48 + "name": "Request the head unit to be shutdown.", + "value": 289410889, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE", + "data_enum": "VehicleApPowerStateShutdownParam" }, { - "name": "FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO", - "value": 49 + "name": "Whether the vehicle is currently in use.", + "value": 287313738, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "RELATIVE_THROTTLE_POSITION", - "value": 50 + "name": "Start of ADAS Properties", + "value": 287313920, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ABSOLUTE_THROTTLE_POSITION_B", - "value": 51 + "name": "AUTOMATIC_EMERGENCY_BRAKING_STATE", + "value": 289411073, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "ABSOLUTE_THROTTLE_POSITION_C", - "value": 52 + "name": "FORWARD_COLLISION_WARNING_ENABLED", + "value": 287313922, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ACCELERATOR_PEDAL_POSITION_D", - "value": 53 + "name": "FORWARD_COLLISION_WARNING_STATE", + "value": 289411075, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "ACCELERATOR_PEDAL_POSITION_E", - "value": 54 + "name": "BLIND_SPOT_WARNING_ENABLED", + "value": 287313924, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ACCELERATOR_PEDAL_POSITION_F", - "value": 55 + "name": "BLIND_SPOT_WARNING_STATE", + "value": 339742725, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "COMMANDED_THROTTLE_ACTUATOR", - "value": 56 + "name": "LANE_DEPARTURE_WARNING_ENABLED", + "value": 287313926, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "ETHANOL_FUEL_PERCENTAGE", - "value": 57 + "name": "LANE_DEPARTURE_WARNING_STATE", + "value": 289411079, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 58 + "name": "LANE_KEEP_ASSIST_ENABLED", + "value": 287313928, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 59 + "name": "LANE_KEEP_ASSIST_STATE", + "value": 289411081, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 60 + "name": "LANE_CENTERING_ASSIST_ENABLED", + "value": 287313930, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 61 + "name": "LANE_CENTERING_ASSIST_COMMAND", + "value": 289411083, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE", + "data_enum": "LaneCenteringAssistCommand" }, { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 62 + "name": "LANE_CENTERING_ASSIST_STATE", + "value": 289411084, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 63 + "name": "EMERGENCY_LANE_KEEP_ASSIST_ENABLED", + "value": 287313933 }, { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 64 + "name": "EMERGENCY_LANE_KEEP_ASSIST_STATE", + "value": 289411086, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 65 + "name": "CRUISE_CONTROL_ENABLED", + "value": 287313935, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 66 + "name": "CRUISE_CONTROL_TYPE", + "value": 289411088, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "data_enum": "ErrorState" }, { - "name": "RELATIVE_ACCELERATOR_PEDAL_POSITION", - "value": 67 + "name": "CRUISE_CONTROL_STATE", + "value": 289411089, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "HYBRID_BATTERY_PACK_REMAINING_LIFE", - "value": 68 + "name": "CRUISE_CONTROL_COMMAND", + "value": 289411090, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:WRITE", + "data_enum": "CruiseControlCommand" }, { - "name": "FUEL_INJECTION_TIMING", - "value": 69 + "name": "CRUISE_CONTROL_TARGET_SPEED", + "value": 291508243, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:METER_PER_SEC" }, { - "name": "ENGINE_FUEL_RATE", - "value": 70 - } - ] - }, - { - "name": "VmsMessageWithLayerAndPublisherIdIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 + "name": "ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP", + "value": 289411092, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE", + "unit": "VehicleUnit:MILLI_SECS" }, { - "name": "LAYER_TYPE", - "value": 1 + "name": "ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE", + "value": 289411093, + "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", + "access": "VehiclePropertyAccess:READ", + "unit": "VehicleUnit:MILLIMETER" }, { - "name": "LAYER_SUBTYPE", - "value": 2 + "name": "HANDS_ON_DETECTION_ENABLED", + "value": 287313942, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ_WRITE" }, { - "name": "LAYER_VERSION", - "value": 3 + "name": "HANDS_ON_DETECTION_DRIVER_STATE", + "value": 289411095, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" }, { - "name": "PUBLISHER_ID", - "value": 4 + "name": "HANDS_ON_DETECTION_WARNING", + "value": 289411096, + "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", + "access": "VehiclePropertyAccess:READ", + "data_enum": "ErrorState" } ] }, { - "name": "FuelType", + "package": "android.hardware.automotive.vehicle", + "name": "DiagnosticIntegerSensorIndex", "values": [ { - "name": "FUEL_TYPE_UNKNOWN", + "name": "FUEL_SYSTEM_STATUS", "value": 0 }, { - "name": "FUEL_TYPE_UNLEADED", + "name": "MALFUNCTION_INDICATOR_LIGHT_ON", "value": 1 }, { - "name": "FUEL_TYPE_LEADED", + "name": "IGNITION_MONITORS_SUPPORTED", "value": 2 }, { - "name": "FUEL_TYPE_DIESEL_1", + "name": "IGNITION_SPECIFIC_MONITORS", "value": 3 }, { - "name": "FUEL_TYPE_DIESEL_2", + "name": "INTAKE_AIR_TEMPERATURE", "value": 4 }, { - "name": "FUEL_TYPE_BIODIESEL", + "name": "COMMANDED_SECONDARY_AIR_STATUS", "value": 5 }, { - "name": "FUEL_TYPE_E85", + "name": "NUM_OXYGEN_SENSORS_PRESENT", "value": 6 }, { - "name": "FUEL_TYPE_LPG", + "name": "RUNTIME_SINCE_ENGINE_START", "value": 7 }, { - "name": "FUEL_TYPE_CNG", + "name": "DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON", "value": 8 }, { - "name": "FUEL_TYPE_LNG", + "name": "WARMUPS_SINCE_CODES_CLEARED", "value": 9 }, { - "name": "FUEL_TYPE_ELECTRIC", + "name": "DISTANCE_TRAVELED_SINCE_CODES_CLEARED", "value": 10 }, { - "name": "FUEL_TYPE_HYDROGEN", + "name": "ABSOLUTE_BAROMETRIC_PRESSURE", "value": 11 }, { - "name": "FUEL_TYPE_OTHER", + "name": "CONTROL_MODULE_VOLTAGE", "value": 12 - } - ] - }, - { - "name": "VehicleApPowerStateReq", - "values": [ - { - "name": "ON", - "value": 0 }, { - "name": "SHUTDOWN_PREPARE", - "value": 1 + "name": "AMBIENT_AIR_TEMPERATURE", + "value": 13 }, { - "name": "CANCEL_SHUTDOWN", - "value": 2 + "name": "TIME_WITH_MALFUNCTION_LIGHT_ON", + "value": 14 }, { - "name": "FINISHED", - "value": 3 - } - ] - }, - { - "name": "VmsMessageType", - "values": [ - { - "name": "SUBSCRIBE", - "value": 1 + "name": "TIME_SINCE_TROUBLE_CODES_CLEARED", + "value": 15 }, { - "name": "SUBSCRIBE_TO_PUBLISHER", - "value": 2 + "name": "MAX_FUEL_AIR_EQUIVALENCE_RATIO", + "value": 16 }, { - "name": "UNSUBSCRIBE", - "value": 3 + "name": "MAX_OXYGEN_SENSOR_VOLTAGE", + "value": 17 }, { - "name": "UNSUBSCRIBE_TO_PUBLISHER", - "value": 4 + "name": "MAX_OXYGEN_SENSOR_CURRENT", + "value": 18 }, { - "name": "OFFERING", - "value": 5 + "name": "MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", + "value": 19 }, { - "name": "AVAILABILITY_REQUEST", - "value": 6 + "name": "MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR", + "value": 20 }, { - "name": "SUBSCRIPTIONS_REQUEST", - "value": 7 + "name": "FUEL_TYPE", + "value": 21 }, { - "name": "AVAILABILITY_RESPONSE", - "value": 8 + "name": "FUEL_RAIL_ABSOLUTE_PRESSURE", + "value": 22 }, { - "name": "AVAILABILITY_CHANGE", - "value": 9 + "name": "ENGINE_OIL_TEMPERATURE", + "value": 23 }, { - "name": "SUBSCRIPTIONS_RESPONSE", - "value": 10 + "name": "DRIVER_DEMAND_PERCENT_TORQUE", + "value": 24 }, { - "name": "SUBSCRIPTIONS_CHANGE", - "value": 11 + "name": "ENGINE_ACTUAL_PERCENT_TORQUE", + "value": 25 }, { - "name": "DATA", - "value": 12 + "name": "ENGINE_REFERENCE_PERCENT_TORQUE", + "value": 26 }, { - "name": "PUBLISHER_ID_REQUEST", - "value": 13 + "name": "ENGINE_PERCENT_TORQUE_DATA_IDLE", + "value": 27 }, { - "name": "PUBLISHER_ID_RESPONSE", - "value": 14 + "name": "ENGINE_PERCENT_TORQUE_DATA_POINT1", + "value": 28 }, { - "name": "PUBLISHER_INFORMATION_REQUEST", - "value": 15 + "name": "ENGINE_PERCENT_TORQUE_DATA_POINT2", + "value": 29 }, { - "name": "PUBLISHER_INFORMATION_RESPONSE", - "value": 16 + "name": "ENGINE_PERCENT_TORQUE_DATA_POINT3", + "value": 30 }, { - "name": "START_SESSION", - "value": 17 + "name": "ENGINE_PERCENT_TORQUE_DATA_POINT4", + "value": 31 } ] }, { - "name": "Obd2CommonIgnitionMonitors", - "values": [] - }, - { - "name": "UserIdentificationAssociationType", + "package": "android.hardware.automotive.vehicle", + "name": "VehicleUnit", "values": [ { - "name": "INVALID", + "name": "SHOULD_NOT_USE", "value": 0 }, { - "name": "KEY_FOB", + "name": "METER_PER_SEC", "value": 1 }, { - "name": "CUSTOM_1", - "value": 101 + "name": "RPM", + "value": 2 }, { - "name": "CUSTOM_2", - "value": 102 + "name": "HERTZ", + "value": 3 }, { - "name": "CUSTOM_3", - "value": 103 + "name": "PERCENTILE", + "value": 16 }, { - "name": "CUSTOM_4", - "value": 104 - } - ] - }, - { - "name": "EvConnectorType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 + "name": "MILLIMETER", + "value": 32 }, { - "name": "IEC_TYPE_1_AC", - "value": 1 + "name": "METER", + "value": 33 }, { - "name": "IEC_TYPE_2_AC", - "value": 2 + "name": "KILOMETER", + "value": 35 }, { - "name": "IEC_TYPE_3_AC", - "value": 3 + "name": "MILE", + "value": 36 }, { - "name": "IEC_TYPE_4_DC", - "value": 4 + "name": "CELSIUS", + "value": 48 }, { - "name": "IEC_TYPE_1_CCS_DC", - "value": 5 + "name": "FAHRENHEIT", + "value": 49 }, { - "name": "IEC_TYPE_2_CCS_DC", - "value": 6 + "name": "KELVIN", + "value": 50 }, { - "name": "TESLA_ROADSTER", - "value": 7 + "name": "MILLILITER", + "value": 64 }, { - "name": "TESLA_HPWC", - "value": 8 + "name": "LITER", + "value": 65 }, { - "name": "TESLA_SUPERCHARGER", - "value": 9 + "name": "GALLON", + "value": 66 }, { - "name": "GBT_AC", - "value": 10 + "name": "US_GALLON", + "value": 66 }, { - "name": "GBT_DC", - "value": 11 + "name": "IMPERIAL_GALLON", + "value": 67 }, { - "name": "OTHER", - "value": 101 - } - ] - }, - { - "name": "VehicleApPowerStateShutdownParam", - "values": [ - { - "name": "SHUTDOWN_IMMEDIATELY", - "value": 1 + "name": "NANO_SECS", + "value": 80 }, { - "name": "CAN_SLEEP", - "value": 2 + "name": "MILLI_SECS", + "value": 81 }, { - "name": "SHUTDOWN_ONLY", - "value": 3 + "name": "SECS", + "value": 83 }, { - "name": "SLEEP_IMMEDIATELY", - "value": 4 + "name": "YEAR", + "value": 89 }, { - "name": "HIBERNATE_IMMEDIATELY", - "value": 5 + "name": "WATT_HOUR", + "value": 96 }, { - "name": "CAN_HIBERNATE", - "value": 6 - } - ] - }, - { - "name": "VmsOfferingMessageIntegerValuesIndex", - "values": [ + "name": "MILLIAMPERE", + "value": 97 + }, { - "name": "MESSAGE_TYPE", - "value": 0 + "name": "MILLIVOLT", + "value": 98 }, { - "name": "PUBLISHER_ID", - "value": 1 + "name": "MILLIWATTS", + "value": 99 }, { - "name": "NUMBER_OF_OFFERS", - "value": 2 + "name": "AMPERE_HOURS", + "value": 100 }, { - "name": "OFFERING_START", - "value": 3 - } - ] - }, - { - "name": "VehicleAreaSeat", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 + "name": "KILOWATT_HOUR", + "value": 101 }, { - "name": "ROW_1_CENTER", - "value": 2 + "name": "AMPERE", + "value": 102 }, { - "name": "ROW_1_RIGHT", - "value": 4 + "name": "KILOPASCAL", + "value": 112 }, { - "name": "ROW_2_LEFT", - "value": 16 + "name": "PSI", + "value": 113 }, { - "name": "ROW_2_CENTER", - "value": 32 + "name": "BAR", + "value": 114 }, { - "name": "ROW_2_RIGHT", - "value": 64 + "name": "DEGREES", + "value": 128 }, { - "name": "ROW_3_LEFT", - "value": 256 + "name": "MILES_PER_HOUR", + "value": 144 }, { - "name": "ROW_3_CENTER", - "value": 512 + "name": "KILOMETERS_PER_HOUR", + "value": 145 + } + ] + }, + { + "package": "android.hardware.automotive.vehicle", + "name": "LaneCenteringAssistCommand", + "values": [ + { + "name": "ACTIVATE", + "value": 1 }, { - "name": "ROW_3_RIGHT", - "value": 1024 + "name": "DEACTIVATE", + "value": 2 } ] }, { - "name": "VehicleVendorPermission", + "package": "android.hardware.automotive.vehicle", + "name": "Obd2FuelType", "values": [ { - "name": "PERMISSION_DEFAULT", + "name": "NOT_AVAILABLE", "value": 0 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_WINDOW", + "name": "GASOLINE", "value": 1 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_WINDOW", + "name": "METHANOL", "value": 2 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_DOOR", + "name": "ETHANOL", "value": 3 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_DOOR", + "name": "DIESEL", "value": 4 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_SEAT", + "name": "LPG", "value": 5 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_SEAT", + "name": "CNG", "value": 6 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_MIRROR", + "name": "PROPANE", "value": 7 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_MIRROR", + "name": "ELECTRIC", "value": 8 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_INFO", + "name": "BIFUEL_RUNNING_GASOLINE", "value": 9 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_INFO", + "name": "BIFUEL_RUNNING_METHANOL", "value": 10 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_ENGINE", + "name": "BIFUEL_RUNNING_ETHANOL", "value": 11 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_ENGINE", + "name": "BIFUEL_RUNNING_LPG", "value": 12 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_HVAC", + "name": "BIFUEL_RUNNING_CNG", "value": 13 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_HVAC", + "name": "BIFUEL_RUNNING_PROPANE", "value": 14 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_LIGHT", + "name": "BIFUEL_RUNNING_ELECTRIC", "value": 15 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_LIGHT", + "name": "BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION", "value": 16 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_1", - "value": 65536 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_1", - "value": 69632 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_2", - "value": 131072 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_2", - "value": 135168 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_3", - "value": 196608 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_3", - "value": 200704 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_4", - "value": 262144 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_4", - "value": 266240 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_5", - "value": 327680 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_5", - "value": 331776 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_6", - "value": 393216 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_6", - "value": 397312 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_7", - "value": 458752 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_7", - "value": 462848 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_8", - "value": 524288 + "name": "HYBRID_GASOLINE", + "value": 17 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_8", - "value": 528384 + "name": "HYBRID_ETHANOL", + "value": 18 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_9", - "value": 589824 + "name": "HYBRID_DIESEL", + "value": 19 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_9", - "value": 593920 + "name": "HYBRID_ELECTRIC", + "value": 20 }, { - "name": "PERMISSION_SET_VENDOR_CATEGORY_10", - "value": 655360 + "name": "HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION", + "value": 21 }, { - "name": "PERMISSION_GET_VENDOR_CATEGORY_10", - "value": 659456 + "name": "HYBRID_REGENERATIVE", + "value": 22 }, { - "name": "PERMISSION_NOT_ACCESSIBLE", - "value": 4026531840 + "name": "BIFUEL_RUNNING_DIESEL", + "value": 23 } ] }, { - "name": "VehiclePropertyAccess", + "package": "android.hardware.automotive.vehicle", + "name": "ProcessTerminationReason", "values": [ { - "name": "NONE", - "value": 0 - }, - { - "name": "READ", + "name": "NOT_RESPONDING", "value": 1 }, { - "name": "WRITE", + "name": "IO_OVERUSE", "value": 2 }, { - "name": "READ_WRITE", + "name": "MEMORY_OVERUSE", "value": 3 } ] }, { - "name": "VmsAvailabilityStateIntegerValuesIndex", + "package": "android.hardware.automotive.vehicle", + "name": "VmsMessageWithLayerAndPublisherIdIntegerValuesIndex", "values": [ { "name": "MESSAGE_TYPE", "value": 0 }, { - "name": "SEQUENCE_NUMBER", + "name": "LAYER_TYPE", "value": 1 }, { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", + "name": "LAYER_SUBTYPE", "value": 2 }, { - "name": "LAYERS_START", + "name": "LAYER_VERSION", "value": 3 - } - ] - }, - { - "name": "Obd2SparkIgnitionMonitors", - "values": [] - }, - { - "name": "VehicleTurnSignal", - "values": [ - { - "name": "NONE", - "value": 0 - }, - { - "name": "RIGHT", - "value": 1 - }, - { - "name": "LEFT", - "value": 2 - } - ] - }, - { - "name": "VmsPublisherInformationIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 }, { "name": "PUBLISHER_ID", - "value": 1 + "value": 4 } ] }, { - "name": "RotaryInputType", + "package": "android.hardware.automotive.vehicle", + "name": "EvChargeState", "values": [ { - "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", + "name": "UNKNOWN", "value": 0 }, { - "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", - "value": 1 - } - ] - }, - { - "name": "Obd2FuelSystemStatus", - "values": [ - { - "name": "OPEN_INSUFFICIENT_ENGINE_TEMPERATURE", + "name": "CHARGING", "value": 1 }, { - "name": "CLOSED_LOOP", + "name": "FULLY_CHARGED", "value": 2 }, { - "name": "OPEN_ENGINE_LOAD_OR_DECELERATION", - "value": 4 - }, - { - "name": "OPEN_SYSTEM_FAILURE", - "value": 8 + "name": "NOT_CHARGING", + "value": 3 }, { - "name": "CLOSED_LOOP_BUT_FEEDBACK_FAULT", - "value": 16 + "name": "ERROR", + "value": 4 } ] } diff --git a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py b/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py index b2eb172ef8..5706571fb3 100755 --- a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py +++ b/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py @@ -19,23 +19,56 @@ import sys from pathlib import Path +RE_PACKAGE = re.compile(r"\npackage\s([\.a-z0-9]*);") +RE_IMPORT = re.compile(r"\nimport\s([\.a-zA-Z0-9]*);") RE_ENUM = re.compile(r"\s*enum\s+(\w*) {\n(.*)}", re.MULTILINE | re.DOTALL) -RE_COMMENT = re.compile(r"(?:(?:\/\*\*)((?:.|\n)*?)(?:\*\/))?(?:\n|^)\s*(\w*)(?:\s+=\s*)?((?:[a-zA-Z0-9]|\s|\+|)*),", re.DOTALL) +RE_COMMENT = re.compile(r"(?:(?:\/\*\*)((?:.|\n)*?)(?:\*\/))?(?:\n|^)\s*(\w*)(?:\s+=\s*)?((?:[\.\-a-zA-Z0-9]|\s|\+|)*),", + re.DOTALL) RE_BLOCK_COMMENT_TITLE = re.compile("^(?:\s|\*)*((?:\w|\s|\.)*)\n(?:\s|\*)*(?:\n|$)") -RE_BLOCK_COMMENT_ANNOTATION = re.compile("^(?:\s|\*)*@(\w*)\s+((?:\w|:)*)", re.MULTILINE) -RE_HEX_NUMBER = re.compile("([0-9A-Fa-fxX]+)") +RE_BLOCK_COMMENT_ANNOTATION = re.compile("^(?:\s|\*)*@(\w*)\s+((?:[\w:\.])*)", re.MULTILINE) +RE_HEX_NUMBER = re.compile("([\.\-0-9A-Za-z]+)") class JEnum: - def __init__(self, name): + def __init__(self, package, name): + self.package = package self.name = name self.values = [] +class Enum: + def __init__(self, package, name, text, imports): + self.text = text + self.parsed = False + self.imports = imports + self.jenum = JEnum(package, name) -class Converter: - # Only addition is supported for now, but that covers all existing properties except - # OBD diagnostics, which use bitwise shifts - def calculateValue(self, expression, default_value): + def parse(self, enums): + if self.parsed: + return + for dep in self.imports: + enums[dep].parse(enums) + print("Parsing " + self.jenum.name) + matches = RE_COMMENT.findall(self.text) + defaultValue = 0 + for match in matches: + value = dict() + value['name'] = match[1] + value['value'] = self.calculateValue(match[2], defaultValue, enums) + defaultValue = value['value'] + 1 + if self.jenum.name == "VehicleProperty": + block_comment = match[0] + self.parseBlockComment(value, block_comment) + self.jenum.values.append(value) + self.parsed = True + self.text = None + + def get_value(self, value_name): + for value in self.jenum.values: + if value['name'] == value_name: + return value['value'] + raise Exception("Cannot decode value: " + self.jenum.package + " : " + value_name) + + def calculateValue(self, expression, default_value, enums): numbers = RE_HEX_NUMBER.findall(expression) if len(numbers) == 0: return default_value @@ -44,7 +77,13 @@ class Converter: if numbers[0].lower().startswith("0x"): base = 16 for number in numbers: - result += int(number, base) + if '.' in number: + package, val_name = number.split('.') + for dep in self.imports: + if package in dep: + result += enums[dep].get_value(val_name) + else: + result += int(number, base) return result def parseBlockComment(self, value, blockComment): @@ -54,30 +93,22 @@ class Converter: break annots_res = RE_BLOCK_COMMENT_ANNOTATION.findall(blockComment) for annot in annots_res: - value[annot[0]] = annot[1] - - def parseEnumContents(self, enum: JEnum, enumValue): - matches = RE_COMMENT.findall(enumValue) - defaultValue = 0 - for match in matches: - value = dict() - value['name'] = match[1] - value['value'] = self.calculateValue(match[2], defaultValue) - defaultValue = value['value'] + 1 - if enum.name == "VehicleProperty": - block_comment = match[0] - self.parseBlockComment(value, block_comment) - enum.values.append(value) + value[annot[0]] = annot[1].replace(".", ":") +class Converter: + # Only addition is supported for now, but that covers all existing properties except + # OBD diagnostics, which use bitwise shifts def convert(self, input): text = Path(input).read_text() matches = RE_ENUM.findall(text) - jenums = [] + package = RE_PACKAGE.findall(text)[0] + imports = RE_IMPORT.findall(text) + enums = [] for match in matches: - enum = JEnum(match[0]) - self.parseEnumContents(enum, match[1]) - jenums.append(enum) - return jenums + enum = Enum(package, match[0], match[1], imports) + enums.append(enum) + return enums + def main(): if (len(sys.argv) != 3): @@ -85,10 +116,18 @@ def main(): sys.exit(1) aidl_path = sys.argv[1] out_path = sys.argv[2] - result = [] + enums_dict = dict() for file in os.listdir(aidl_path): - result.extend(Converter().convert(os.path.join(aidl_path, file))) - json_result = json.dumps(result, default=vars, indent=2) + enums = Converter().convert(os.path.join(aidl_path, file)) + for enum in enums: + enums_dict[enum.jenum.package + "." + enum.jenum.name] = enum + + result = [] + for enum_name, enum in enums_dict.items(): + enum.parse(enums_dict) + result.append(enum.jenum.__dict__) + + json_result = json.dumps(result, default=None, indent=2) with open(out_path, 'w') as f: f.write(json_result) -- GitLab From 6b7784edfe99bcf1f9d0ae0d36eccf3d54a3b0fb Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Wed, 3 Jan 2024 18:27:45 +0000 Subject: [PATCH 106/418] Audio Effect VTS: run Dowmmix data path test only after HAL version 2 Bug: 315074570 Test: VtsHalDownmixTargetTest Change-Id: Iaa17519521f136901ec217f7d5b5fd0d03889533 --- audio/aidl/vts/VtsHalDownmixTargetTest.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp index 2272e921a9..b82bde114b 100644 --- a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp +++ b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp @@ -32,6 +32,9 @@ using aidl::android::hardware::audio::effect::Parameter; using android::audio_utils::channels::ChannelMix; using android::hardware::audio::common::testing::detail::TestExecutionTracer; +// minimal HAL interface version to run downmix data path test +constexpr int32_t kMinDataTestHalVersion = 2; + // Testing for enum values static const std::vector kTypeValues = {ndk::enum_range().begin(), ndk::enum_range().end()}; @@ -228,6 +231,10 @@ class DownmixFoldDataTest : public ::testing::TestWithParamgetInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) { + GTEST_SKIP() << "Skipping the data test for version: " << version << "\n"; + } if (!isLayoutValid(mInputChannelLayout)) { GTEST_SKIP() << "Layout not supported \n"; } @@ -375,6 +382,10 @@ class DownmixStripDataTest : public ::testing::TestWithParamgetInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) { + GTEST_SKIP() << "Skipping the data test for version: " << version << "\n"; + } if (!isLayoutValid(mInputChannelLayout)) { GTEST_SKIP() << "Layout not supported \n"; } @@ -418,7 +429,7 @@ INSTANTIATE_TEST_SUITE_P( [](const testing::TestParamInfo& info) { auto descriptor = std::get(info.param).second; std::string type = std::to_string(static_cast(std::get(info.param))); - std::string name = getPrefix(descriptor) + "_type" + type; + std::string name = getPrefix(descriptor) + "_type_" + type; std::replace_if( name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); return name; @@ -434,7 +445,7 @@ INSTANTIATE_TEST_SUITE_P( [](const testing::TestParamInfo& info) { auto descriptor = std::get(info.param).second; std::string layout = std::to_string(std::get(info.param)); - std::string name = getPrefix(descriptor) + "_fold" + "_layout" + layout; + std::string name = getPrefix(descriptor) + "_fold_layout_" + layout; std::replace_if( name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); return name; @@ -451,7 +462,7 @@ INSTANTIATE_TEST_SUITE_P( auto descriptor = std::get(info.param).second; std::string layout = std::to_string(static_cast(std::get(info.param))); - std::string name = getPrefix(descriptor) + "_strip" + "_layout" + layout; + std::string name = getPrefix(descriptor) + "_strip_layout_" + layout; std::replace_if( name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); return name; -- GitLab From 878afae8f8fd00ec36fd9a7abfbfc4a61338fcce Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 3 Jan 2024 11:22:42 -0800 Subject: [PATCH 107/418] audio: Fix the type used for timekeeping On 32-bit builds, the 'long' type is 32 bit. Thus, it can not be used to store the value returned from 'uptimeNanos'. Bug: 318055805 Test: atest CtsMediaAudioTestCases Change-Id: I4abf72415b7241728d3ddb1d11043dfd59a8d08a --- audio/aidl/default/include/core-impl/StreamPrimary.h | 2 +- audio/aidl/default/include/core-impl/StreamRemoteSubmix.h | 2 +- audio/aidl/default/r_submix/StreamRemoteSubmix.cpp | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/audio/aidl/default/include/core-impl/StreamPrimary.h b/audio/aidl/default/include/core-impl/StreamPrimary.h index 145c3c44cf..8d5c57da4b 100644 --- a/audio/aidl/default/include/core-impl/StreamPrimary.h +++ b/audio/aidl/default/include/core-impl/StreamPrimary.h @@ -36,7 +36,7 @@ class StreamPrimary : public StreamAlsa { std::vector getDeviceProfiles() override; const bool mIsAsynchronous; - long mStartTimeNs = 0; + int64_t mStartTimeNs = 0; long mFramesSinceStart = 0; bool mSkipNextTransfer = false; }; diff --git a/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h b/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h index cc06881c7b..477c30e8f1 100644 --- a/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h +++ b/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h @@ -64,7 +64,7 @@ class StreamRemoteSubmix : public StreamCommonImpl { // 5ms between two read attempts when pipe is empty static constexpr int kReadAttemptSleepUs = 5000; - long mStartTimeNs = 0; + int64_t mStartTimeNs = 0; long mFramesSinceStart = 0; int mReadErrorCount = 0; }; diff --git a/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp b/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp index df706ac026..3ee354b282 100644 --- a/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp +++ b/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp @@ -138,7 +138,7 @@ void StreamRemoteSubmix::shutdown() { : outWrite(buffer, frameCount, actualFrameCount)); const long bufferDurationUs = (*actualFrameCount) * MICROS_PER_SECOND / mContext.getSampleRate(); - const long totalDurationUs = (::android::uptimeNanos() - mStartTimeNs) / NANOS_PER_MICROSECOND; + const auto totalDurationUs = (::android::uptimeNanos() - mStartTimeNs) / NANOS_PER_MICROSECOND; mFramesSinceStart += *actualFrameCount; const long totalOffsetUs = mFramesSinceStart * MICROS_PER_SECOND / mContext.getSampleRate() - totalDurationUs; @@ -274,8 +274,8 @@ size_t StreamRemoteSubmix::getStreamPipeSizeInFrames() { char* buff = (char*)buffer; size_t actuallyRead = 0; long remainingFrames = frameCount; - const long deadlineTimeNs = ::android::uptimeNanos() + - getDelayInUsForFrameCount(frameCount) * NANOS_PER_MICROSECOND; + const int64_t deadlineTimeNs = ::android::uptimeNanos() + + getDelayInUsForFrameCount(frameCount) * NANOS_PER_MICROSECOND; while (remainingFrames > 0) { ssize_t framesRead = source->read(buff, remainingFrames); LOG(VERBOSE) << __func__ << ": frames read " << framesRead; -- GitLab From d090afe1afb7d7c44478b6a03c451c26935b105a Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Wed, 3 Jan 2024 19:49:12 +0000 Subject: [PATCH 108/418] Update comment about headTrackingSensorId Bug: 317405349 Test: m, aidl-format Change-Id: I5f4b0e931c073d87b1a30a55c39e614d24a63030 --- audio/aidl/android/hardware/audio/effect/Spatializer.aidl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/audio/aidl/android/hardware/audio/effect/Spatializer.aidl b/audio/aidl/android/hardware/audio/effect/Spatializer.aidl index 6ebe0d58c0..71e3ffefe6 100644 --- a/audio/aidl/android/hardware/audio/effect/Spatializer.aidl +++ b/audio/aidl/android/hardware/audio/effect/Spatializer.aidl @@ -67,7 +67,8 @@ union Spatializer { Spatialization.Mode spatializationMode; /** - * Head tracking sensor ID. + * Identifies the head tracking sensor using its unique sensor ID. + * The value corresponds to android.hardware.sensors.SensorInfo.sensorHandle. */ int headTrackingSensorId; -- GitLab From c4b896e5869aebfe1776ca13d9f04e03ff8f36e4 Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Wed, 3 Jan 2024 22:48:16 +0000 Subject: [PATCH 109/418] Remove HIDL audio HAL from compat matrix 9 It's replaced by the AIDL audio HAL. Test: m Bug: 264712385 Change-Id: I680a7bb58e636c0ed86dc2a72a27322ee163685c --- .../compatibility_matrix.9.xml | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/compatibility_matrices/compatibility_matrix.9.xml b/compatibility_matrices/compatibility_matrix.9.xml index d2103041e7..a7f0845ede 100644 --- a/compatibility_matrices/compatibility_matrix.9.xml +++ b/compatibility_matrices/compatibility_matrix.9.xml @@ -1,22 +1,4 @@ - - android.hardware.audio - 6.0 - 7.0-1 - - IDevicesFactory - default - - - - android.hardware.audio.effect - 6.0 - 7.0 - - IEffectsFactory - default - - android.hardware.audio.core 1-2 -- GitLab From 80e365794b4baeb62ec47662ae2994f7b344ab93 Mon Sep 17 00:00:00 2001 From: George Chang Date: Thu, 4 Jan 2024 15:48:29 +0800 Subject: [PATCH 110/418] Tag vts module VtsHalSecureElementTargetTest with secure element sim Bug: 302200925 Test: build pass Change-Id: Idbfee70eec009fffe389aad5780a4f04c55757c7 --- secure_element/aidl/vts/AndroidTest.xml | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 secure_element/aidl/vts/AndroidTest.xml diff --git a/secure_element/aidl/vts/AndroidTest.xml b/secure_element/aidl/vts/AndroidTest.xml new file mode 100644 index 0000000000..94dfa8290a --- /dev/null +++ b/secure_element/aidl/vts/AndroidTest.xml @@ -0,0 +1,33 @@ + + + + -- GitLab From 91d8a09b900df53479f695a9499c396a1f15438c Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Sat, 16 Dec 2023 08:53:34 +0000 Subject: [PATCH 111/418] media.c2 aidl: add input surface for encoders Bug: 315556623 Test: m Change-Id: I9a7497f466e39b7fd223859cab49c26da359e401 --- media/c2/aidl/Android.bp | 3 + .../android/hardware/media/c2/IComponent.aidl | 2 + .../hardware/media/c2/IComponentStore.aidl | 1 + .../android/hardware/media/c2/IInputSink.aidl | 38 +++++++++++ .../hardware/media/c2/IInputSurface.aidl | 40 +++++++++++ .../media/c2/IInputSurfaceConnection.aidl | 39 +++++++++++ .../android/hardware/media/c2/IComponent.aidl | 31 +++++++++ .../hardware/media/c2/IComponentStore.aidl | 13 ++++ .../android/hardware/media/c2/IInputSink.aidl | 45 ++++++++++++ .../hardware/media/c2/IInputSurface.aidl | 68 +++++++++++++++++++ .../media/c2/IInputSurfaceConnection.aidl | 41 +++++++++++ 11 files changed, 321 insertions(+) create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSink.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurface.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurfaceConnection.aidl create mode 100644 media/c2/aidl/android/hardware/media/c2/IInputSink.aidl create mode 100644 media/c2/aidl/android/hardware/media/c2/IInputSurface.aidl create mode 100644 media/c2/aidl/android/hardware/media/c2/IInputSurfaceConnection.aidl diff --git a/media/c2/aidl/Android.bp b/media/c2/aidl/Android.bp index 84cb38298a..b511e45701 100644 --- a/media/c2/aidl/Android.bp +++ b/media/c2/aidl/Android.bp @@ -22,6 +22,9 @@ aidl_interface { "android.hardware.common-V2", "android.hardware.media.bufferpool2-V1", ], + include_dirs: [ + "frameworks/native/aidl/gui", + ], stability: "vintf", backend: { cpp: { diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl index 7d58340923..4439bc5e43 100644 --- a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl @@ -45,6 +45,8 @@ interface IComponent { void reset(); void start(); void stop(); + android.hardware.media.c2.IInputSurfaceConnection connectToInputSurface(in android.hardware.media.c2.IInputSurface inputSurface); + android.hardware.media.c2.IInputSink asInputSink(); parcelable BlockPool { long blockPoolId; android.hardware.media.c2.IConfigurable configurable; diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponentStore.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponentStore.aidl index d1b59157d4..d7a4706d19 100644 --- a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponentStore.aidl +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponentStore.aidl @@ -41,6 +41,7 @@ interface IComponentStore { android.hardware.media.bufferpool2.IClientManager getPoolClientManager(); android.hardware.media.c2.StructDescriptor[] getStructDescriptors(in int[] indices); android.hardware.media.c2.IComponentStore.ComponentTraits[] listComponents(); + android.hardware.media.c2.IInputSurface createInputSurface(); @VintfStability parcelable ComponentTraits { String name; diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSink.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSink.aidl new file mode 100644 index 0000000000..e6ea4d54e8 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSink.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSink { + void queue(in android.hardware.media.c2.WorkBundle workBundle); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurface.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurface.aidl new file mode 100644 index 0000000000..14455cb71f --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurface.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSurface { + android.view.Surface getSurface(); + android.hardware.media.c2.IConfigurable getConfigurable(); + android.hardware.media.c2.IInputSurfaceConnection connect(in android.hardware.media.c2.IInputSink sink); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurfaceConnection.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurfaceConnection.aidl new file mode 100644 index 0000000000..28fff65e14 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurfaceConnection.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSurfaceConnection { + void disconnect(); + void signalEndOfStream(); +} diff --git a/media/c2/aidl/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/android/hardware/media/c2/IComponent.aidl index e96cae5622..6bd30b483a 100644 --- a/media/c2/aidl/android/hardware/media/c2/IComponent.aidl +++ b/media/c2/aidl/android/hardware/media/c2/IComponent.aidl @@ -20,6 +20,9 @@ import android.hardware.common.NativeHandle; import android.hardware.media.c2.IComponentInterface; import android.hardware.media.c2.IConfigurable; import android.hardware.media.c2.IGraphicBufferAllocator; +import android.hardware.media.c2.IInputSink; +import android.hardware.media.c2.IInputSurface; +import android.hardware.media.c2.IInputSurfaceConnection; import android.hardware.media.c2.WorkBundle; import android.os.ParcelFileDescriptor; @@ -307,4 +310,32 @@ interface IComponent { * - `Status::CORRUPTED` - Some unknown error occurred. */ void stop(); + + /** + * Starts using an input surface. + * + * The component must be in running state. + * + * @param inputSurface Input surface to connect to. + * @return connection `IInputSurfaceConnection` object, which can be used to + * query and configure properties of the connection. This cannot be + * null. + * @throws ServiceSpecificException with one of the following values: + * - `Status::CANNOT_DO` - The component does not support an input surface. + * - `Status::BAD_STATE` - The component is not in running state. + * - `Status::DUPLICATE` - The component is already connected to an input surface. + * - `Status::REFUSED` - The input surface is already in use. + * - `Status::NO_MEMORY` - Not enough memory to start the component. + * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + IInputSurfaceConnection connectToInputSurface(in IInputSurface inputSurface); + + /** + * Returns an @ref IInputSink instance that has the component as the + * underlying implementation. + * + * @return sink `IInputSink` instance. + */ + IInputSink asInputSink(); } diff --git a/media/c2/aidl/android/hardware/media/c2/IComponentStore.aidl b/media/c2/aidl/android/hardware/media/c2/IComponentStore.aidl index 1435a7e4bc..019405df4b 100644 --- a/media/c2/aidl/android/hardware/media/c2/IComponentStore.aidl +++ b/media/c2/aidl/android/hardware/media/c2/IComponentStore.aidl @@ -21,6 +21,7 @@ import android.hardware.media.c2.IComponent; import android.hardware.media.c2.IComponentInterface; import android.hardware.media.c2.IComponentListener; import android.hardware.media.c2.IConfigurable; +import android.hardware.media.c2.IInputSurface; import android.hardware.media.c2.StructDescriptor; /** @@ -182,4 +183,16 @@ interface IComponentStore { * - `Status::CORRUPTED` - Some unknown error occurred. */ ComponentTraits[] listComponents(); + + /** + * Creates a persistent input surface that can be used as an input surface + * for any IComponent instance + * + * @return IInputSurface A persistent input surface. + * @throws ServiceSpecificException with one of following values: + * - `Status::NO_MEMORY` - Not enough memory to complete this method. + * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + IInputSurface createInputSurface(); } diff --git a/media/c2/aidl/android/hardware/media/c2/IInputSink.aidl b/media/c2/aidl/android/hardware/media/c2/IInputSink.aidl new file mode 100644 index 0000000000..eb8ad3d4cf --- /dev/null +++ b/media/c2/aidl/android/hardware/media/c2/IInputSink.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.media.c2; + +import android.hardware.media.c2.WorkBundle; + +/** + * An `IInputSink` is a receiver of work items. + * + * An @ref IComponent instance can present itself as an `IInputSink` via a thin + * wrapper. + * + * @sa IInputSurface, IComponent. + */ +@VintfStability +interface IInputSink { + /** + * Feeds work to the sink. + * + * @param workBundle `WorkBundle` object containing a list of `Work` objects + * to queue to the component. + * @throws ServiceSpecificException with one of the following values: + * - `Status::BAD_INDEX` - Some component id in some `Worklet` is not valid. + * - `Status::CANNOT_DO` - Tunneling has not been set up for this sink, but some + * `Work` object contains tunneling information. + * - `Status::NO_MEMORY` - Not enough memory to queue @p workBundle. + * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + void queue(in WorkBundle workBundle); +} diff --git a/media/c2/aidl/android/hardware/media/c2/IInputSurface.aidl b/media/c2/aidl/android/hardware/media/c2/IInputSurface.aidl new file mode 100644 index 0000000000..77cb1fd4a5 --- /dev/null +++ b/media/c2/aidl/android/hardware/media/c2/IInputSurface.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.media.c2; + +import android.hardware.media.c2.IConfigurable; +import android.hardware.media.c2.IInputSink; +import android.hardware.media.c2.IInputSurfaceConnection; +import android.view.Surface; + +/** + * Input surface for a Codec2 component. + * + * An input surface is an instance of `IInputSurface`, which may be + * created by calling IComponentStore::createInputSurface(). Once created, the + * client may + * 1. write data to it via the `NativeWindow` interface; and + * 2. use it as input to a Codec2 encoder. + * + * @sa IInputSurfaceConnection, IComponentStore::createInputSurface(), + * IComponent::connectToInputSurface(). + */ +@VintfStability +interface IInputSurface { + /** + * Returns the producer interface into the internal buffer queue. + * + * @return producer `Surface` instance(actually ANativeWindow). This must not + * be null. + */ + Surface getSurface(); + + /** + * Returns the @ref IConfigurable instance associated to this input surface. + * + * @return configurable `IConfigurable` instance. This must not be null. + */ + IConfigurable getConfigurable(); + + /** + * Connects the input surface to an input sink. + * + * This function is generally called from inside the implementation of + * IComponent::connectToInputSurface(), where @p sink is a thin wrapper of + * the component that consumes buffers from this surface. + * + * @param sink Input sink. See `IInputSink` for more information. + * @return connection `IInputSurfaceConnection` object. This must not be + * null if @p status is `OK`. + * @throws ServiceSpecificException with one of following values: + * - `Status::BAD_VALUE` - @p sink is invalid. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + IInputSurfaceConnection connect(in IInputSink sink); +} diff --git a/media/c2/aidl/android/hardware/media/c2/IInputSurfaceConnection.aidl b/media/c2/aidl/android/hardware/media/c2/IInputSurfaceConnection.aidl new file mode 100644 index 0000000000..36524ebfe4 --- /dev/null +++ b/media/c2/aidl/android/hardware/media/c2/IInputSurfaceConnection.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.media.c2; + +/** + * Connection between an IInputSink and an IInpuSurface. + */ +@VintfStability +interface IInputSurfaceConnection { + /** + * Destroys the connection between an input surface and a component. + * + * @throws ServiceSpecificException with one of following values: + * - `Status::BAD_STATE` - The component is not in running state. + * - `Status::NOT_FOUND` - The surface is not connected to a component. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + void disconnect(); + + /** + * Signal the end of stream. + + * @throws ServiceSpecificException with one of following values: + * - `Status::BAD_STATE` - The component is not in running state. + */ + void signalEndOfStream(); +} -- GitLab From 3ee7690028b25705489a6c6e32c246fcbf8f80e1 Mon Sep 17 00:00:00 2001 From: Vlad Popa Date: Wed, 3 Jan 2024 05:49:22 -0800 Subject: [PATCH 112/418] CSD: Adjust code to new MelCallback interface Added the attenuated bool to the callback interface. Not used Test: trivial Bug: 315218453 Change-Id: Ibd5e90b0537bfce7d01ee7a3a0e55bc53850a216 --- audio/aidl/default/SoundDose.cpp | 3 ++- audio/aidl/default/include/core-impl/SoundDose.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/audio/aidl/default/SoundDose.cpp b/audio/aidl/default/SoundDose.cpp index 1c9e081353..6c3a067139 100644 --- a/audio/aidl/default/SoundDose.cpp +++ b/audio/aidl/default/SoundDose.cpp @@ -119,7 +119,8 @@ void SoundDose::onNewMelValues(const std::vector& mels, size_t offset, si void SoundDose::MelCallback::onNewMelValues(const std::vector& mels, size_t offset, size_t length, audio_port_handle_t deviceId - __attribute__((__unused__))) const { + __attribute__((__unused__)), + bool attenuated __attribute__((__unused__))) const { mSoundDose.onNewMelValues(mels, offset, length, deviceId); } diff --git a/audio/aidl/default/include/core-impl/SoundDose.h b/audio/aidl/default/include/core-impl/SoundDose.h index 82c1077f1b..f58e5419c2 100644 --- a/audio/aidl/default/include/core-impl/SoundDose.h +++ b/audio/aidl/default/include/core-impl/SoundDose.h @@ -64,7 +64,7 @@ class SoundDose final : public BnSoundDose, public StreamDataProcessorInterface // ------------------------------------ MelCallback ---------------------------------------- void onNewMelValues(const std::vector& mels, size_t offset, size_t length, - audio_port_handle_t deviceId) const override; + audio_port_handle_t deviceId, bool attenuated) const override; void onMomentaryExposure(float currentMel, audio_port_handle_t deviceId) const override; SoundDose& mSoundDose; // must outlive MelCallback, not owning -- GitLab From 4869ae7838b5cba46396e584ce9d1000e9184188 Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Mon, 18 Dec 2023 05:36:14 +0000 Subject: [PATCH 113/418] camera: Add boolean to HalStream for stream specific HAL buffer manager Whether the HAL buffer manager is used or not is decided based on the presence of a static camera characteristics key - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION. This behavior cannot be toggled depending on stream configuration / session parameters. The HAL buffer manager does reduce memory consumption at the cost of extra IPC calls, which may not be always desirable. Therefore, HalStream.aidl - the parcelable returned by the camera HAL for each stream configured now holds a boolean value, specifying whether output buffers must be managed by the HAL or the camera framework for the particular session configured. Bug: 311263114 Test: builds Test: Run Camera CTS on HAL supporting ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE Test: VTS Change-Id: Id6bda31eab3d66361991e2f883231a5a55a2ef82 Signed-off-by: Jayant Chowdhary --- .../camera/device/ConfigureStreamsRet.aidl | 1 - .../hardware/camera/device/HalStream.aidl | 1 + .../camera/device/ConfigureStreamsRet.aidl | 5 - .../hardware/camera/device/HalStream.aidl | 20 +++ .../VtsAidlHalCameraProvider_TargetTest.cpp | 63 ++++---- camera/provider/aidl/vts/camera_aidl_test.cpp | 152 ++++++++++-------- camera/provider/aidl/vts/camera_aidl_test.h | 19 ++- 7 files changed, 156 insertions(+), 105 deletions(-) diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/ConfigureStreamsRet.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/ConfigureStreamsRet.aidl index 5535a30e2a..670f7d272b 100644 --- a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/ConfigureStreamsRet.aidl +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/ConfigureStreamsRet.aidl @@ -35,5 +35,4 @@ package android.hardware.camera.device; @VintfStability parcelable ConfigureStreamsRet { android.hardware.camera.device.HalStream[] halStreams; - boolean enableHalBufferManager = false; } diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/HalStream.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/HalStream.aidl index a5784bcf32..3ae261d4d2 100644 --- a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/HalStream.aidl +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/HalStream.aidl @@ -42,4 +42,5 @@ parcelable HalStream { android.hardware.graphics.common.Dataspace overrideDataSpace; String physicalCameraId; boolean supportOffline; + boolean enableHalBufferManager; } diff --git a/camera/device/aidl/android/hardware/camera/device/ConfigureStreamsRet.aidl b/camera/device/aidl/android/hardware/camera/device/ConfigureStreamsRet.aidl index 8f462ecb5f..702901f699 100644 --- a/camera/device/aidl/android/hardware/camera/device/ConfigureStreamsRet.aidl +++ b/camera/device/aidl/android/hardware/camera/device/ConfigureStreamsRet.aidl @@ -34,9 +34,4 @@ parcelable ConfigureStreamsRet { * overridden format, maximum buffers etc. */ HalStream[] halStreams; - /** - * A boolean informing the camera framework whether the HAL buffer manager - * must be used for the session configured. - */ - boolean enableHalBufferManager = false; } diff --git a/camera/device/aidl/android/hardware/camera/device/HalStream.aidl b/camera/device/aidl/android/hardware/camera/device/HalStream.aidl index 25a80bc16c..fac89e6305 100644 --- a/camera/device/aidl/android/hardware/camera/device/HalStream.aidl +++ b/camera/device/aidl/android/hardware/camera/device/HalStream.aidl @@ -127,4 +127,24 @@ parcelable HalStream { * */ boolean supportOffline; + + /** + * Whether the buffers for this stream are HAL buffer managed. + * + * If ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is + * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE, this field + * must be set by the HAL to inform the camera framework, whether output buffers for this + * stream will be HAL buffer managed - i.e. requested through the + * ICameraDeviceCallback.requestStreamsBuffers() API. Only the output buffers for the streams + * that have this field set to 'true' will be HAL buffer managed. The output buffers for other + * streams will be managed by the camera framework. + * + * If the value of ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is + * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_AIDL_DEVICE, the camera framework + * will ignore this field and assume that all output streams are hal buffer managed. + * + * If ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is not set at all, the camera framework + * will ignore this field and assume output buffers are managed by the camera framework. + */ + boolean enableHalBufferManager; } diff --git a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp index e335853c28..720a9d4ff5 100644 --- a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp +++ b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp @@ -656,7 +656,6 @@ TEST_P(CameraAidlTest, configureConcurrentStreamsAvailableOutputs) { for (const auto& cameraDeviceIds : concurrentDeviceCombinations) { std::vector cameraIdsAndStreamCombinations; std::vector cameraTestInfos; - size_t i = 0; for (const auto& id : cameraDeviceIds.combination) { CameraTestInfo cti; auto it = idToNameMap.find(id); @@ -707,7 +706,6 @@ TEST_P(CameraAidlTest, configureConcurrentStreamsAvailableOutputs) { cameraIdAndStreamCombination.cameraId = id; cameraIdAndStreamCombination.streamConfiguration = cti.config; cameraIdsAndStreamCombinations.push_back(cameraIdAndStreamCombination); - i++; cameraTestInfos.push_back(cti); } // Now verify that concurrent streams are supported @@ -1572,7 +1570,7 @@ TEST_P(CameraAidlTest, processMultiCaptureRequestPreview) { std::vector halStreams; bool supportsPartialResults = false; - bool useHalBufManager = false; + std::set halBufManagedStreamIds; int32_t partialResultCount = 0; Stream previewStream; std::shared_ptr cb; @@ -1580,7 +1578,7 @@ TEST_P(CameraAidlTest, processMultiCaptureRequestPreview) { configurePreviewStreams( name, mProvider, &previewThreshold, physicalIds, &mSession, &previewStream, &halStreams /*out*/, &supportsPartialResults /*out*/, &partialResultCount /*out*/, - &useHalBufManager /*out*/, &cb /*out*/, 0 /*streamConfigCounter*/, true); + &halBufManagedStreamIds /*out*/, &cb /*out*/, 0 /*streamConfigCounter*/, true); if (mSession == nullptr) { // stream combination not supported by HAL, skip test for device continue; @@ -1617,7 +1615,9 @@ TEST_P(CameraAidlTest, processMultiCaptureRequestPreview) { size_t k = 0; for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; - if (useHalBufManager) { + bool useHalBufManagerForStream = + halBufManagedStreamIds.find(halStream.id) != halBufManagedStreamIds.end(); + if (useHalBufManagerForStream) { outputBuffers[k] = {halStream.id, /*bufferId*/ 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; } else { @@ -1721,10 +1721,13 @@ TEST_P(CameraAidlTest, processMultiCaptureRequestPreview) { defaultPreviewSettings.unlock(settingsBuffer); filteredSettings.unlock(filteredSettingsBuffer); - if (useHalBufManager) { - std::vector streamIds(halStreams.size()); - for (size_t i = 0; i < streamIds.size(); i++) { - streamIds[i] = halStreams[i].id; + if (halBufManagedStreamIds.size() != 0) { + std::vector streamIds; + for (size_t i = 0; i < halStreams.size(); i++) { + int32_t streamId = halStreams[i].id; + if (halBufManagedStreamIds.find(streamId) != halBufManagedStreamIds.end()) { + streamIds.emplace_back(streamId); + } } verifyBuffersReturned(mSession, streamIds, cb); } @@ -1788,7 +1791,7 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { std::vector halStreams; bool supportsPartialResults = false; - bool useHalBufManager = false; + std::set halBufManagedStreamIds; int32_t partialResultCount = 0; Stream previewStream; std::shared_ptr cb; @@ -1800,8 +1803,8 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { GRALLOC1_CONSUMER_USAGE_CPU_READ); previewStream.dataSpace = Dataspace::UNKNOWN; configureStreams(name, mProvider, format, &mSession, &previewStream, &halStreams, - &supportsPartialResults, &partialResultCount, &useHalBufManager, &cb, - 0, /*maxResolution*/ true); + &supportsPartialResults, &partialResultCount, &halBufManagedStreamIds, + &cb, 0, /*maxResolution*/ true); ASSERT_NE(mSession, nullptr); ::aidl::android::hardware::common::fmq::MQDescriptor< @@ -1832,7 +1835,9 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { size_t k = 0; for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; - if (useHalBufManager) { + bool halBufManagerUsed = + halBufManagedStreamIds.find(halStream.id) != halBufManagedStreamIds.end(); + if (halBufManagerUsed) { outputBuffers[k] = {halStream.id, 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; @@ -1884,10 +1889,12 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { ASSERT_FALSE(inflightReq->errorCodeValid); ASSERT_NE(inflightReq->resultOutputBuffers.size(), 0u); } - if (useHalBufManager) { - std::vector streamIds(halStreams.size()); - for (size_t i = 0; i < streamIds.size(); i++) { - streamIds[i] = halStreams[i].id; + if (halBufManagedStreamIds.size()) { + std::vector streamIds; + for (size_t i = 0; i < halStreams.size(); i++) { + if (contains(halBufManagedStreamIds, halStreams[i].id)) { + streamIds.emplace_back(halStreams[i].id); + } } verifyBuffersReturned(mSession, streamIds, cb); } @@ -1949,7 +1956,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { std::vector halStreams; bool supportsPartialResults = false; - bool useHalBufManager = false; + std::set halBufManagedStreamIds; int32_t partialResultCount = 0; Stream previewStream; std::shared_ptr cb; @@ -1960,7 +1967,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { previewStream.dataSpace = getDataspace(PixelFormat::IMPLEMENTATION_DEFINED); configureStreams(name, mProvider, PixelFormat::IMPLEMENTATION_DEFINED, &mSession, &previewStream, &halStreams, &supportsPartialResults, - &partialResultCount, &useHalBufManager, &cb, 0, + &partialResultCount, &halBufManagedStreamIds, &cb, 0, /*maxResolution*/ false, profile); ASSERT_NE(mSession, nullptr); @@ -1999,7 +2006,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { auto bufferId = requestId + 1; // Buffer id value 0 is not valid for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; - if (useHalBufManager) { + if (contains(halBufManagedStreamIds, halStream.id)) { outputBuffers[k] = {halStream.id, 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; @@ -2065,10 +2072,12 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { verify10BitMetadata(mHandleImporter, *inflightReq, profile); } - if (useHalBufManager) { - std::vector streamIds(halStreams.size()); - for (size_t i = 0; i < streamIds.size(); i++) { - streamIds[i] = halStreams[i].id; + if (halBufManagedStreamIds.size() != 0) { + std::vector streamIds; + for (size_t i = 0; i < halStreams.size(); i++) { + if (contains(halBufManagedStreamIds, halStreams[i].id)) { + streamIds.emplace_back(halStreams[i].id); + } } mSession->signalStreamFlush(streamIds, /*streamConfigCounter*/ 0); cb->waitForBuffersReturned(); @@ -2400,11 +2409,11 @@ TEST_P(CameraAidlTest, switchToOffline) { std::vector halStreams; std::shared_ptr cb; int32_t jpegBufferSize; - bool useHalBufManager; + std::set halBufManagedStreamIds; configureOfflineStillStream(name, mProvider, &threshold, &mSession /*out*/, &stream /*out*/, &halStreams /*out*/, &supportsPartialResults /*out*/, &partialResultCount /*out*/, &cb /*out*/, - &jpegBufferSize /*out*/, &useHalBufManager /*out*/); + &jpegBufferSize /*out*/, &halBufManagedStreamIds /*out*/); auto ret = mSession->constructDefaultRequestSettings(RequestTemplate::STILL_CAPTURE, &settings); @@ -2440,7 +2449,7 @@ TEST_P(CameraAidlTest, switchToOffline) { StreamBuffer& outputBuffer = outputBuffers[0]; std::unique_lock l(mLock); - if (useHalBufManager) { + if (contains(halBufManagedStreamIds, halStream.id)) { outputBuffer = {halStream.id, 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; } else { diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index 8e72b3f605..bb9068e725 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -2209,7 +2209,6 @@ void CameraAidlTest::processCaptureRequestInternal(uint64_t bufferUsage, int64_t bufferId = 1; int32_t frameNumber = 1; CameraMetadata settings; - for (const auto& name : cameraDeviceNames) { Stream testStream; std::vector halStreams; @@ -2499,12 +2498,19 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres ndk::ScopedAStatus CameraAidlTest::configureStreams(std::shared_ptr& session, const StreamConfiguration& config, - bool sessionHalBufferManager, - bool* useHalBufManager, + BufferManagerType bufferManagerType, + std::set* halBufManagedStreamIds, std::vector* halStreams) { auto ret = ndk::ScopedAStatus::ok(); ConfigureStreamsRet aidl_return; - if (sessionHalBufferManager) { + int32_t interfaceVersion = -1; + ret = session->getInterfaceVersion(&interfaceVersion); + if (!ret.isOk()) { + return ret; + } + + if (flags::session_hal_buf_manager() && + (bufferManagerType == BufferManagerType::SESSION && interfaceVersion >= 3)) { ret = session->configureStreamsV2(config, &aidl_return); } else { ret = session->configureStreams(config, halStreams); @@ -2512,10 +2518,16 @@ ndk::ScopedAStatus CameraAidlTest::configureStreams(std::shared_ptrinsert(halStream.id); + } + } return ndk::ScopedAStatus::ok(); } @@ -2572,16 +2584,16 @@ void CameraAidlTest::configureSingleStream( ASSERT_TRUE(ret.isOk()); ASSERT_NE(*session, nullptr); - *useHalBufManager = false; - bool sessionHalBufferManager = false; + BufferManagerType bufferManagerType = BufferManagerType::FRAMEWORK; status = find_camera_metadata_ro_entry( staticMeta, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &entry); if ((0 == status) && (entry.count == 1)) { - *useHalBufManager = (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5); - sessionHalBufferManager = - (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE); + if (entry.data.u8[0] == ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5) { + bufferManagerType = BufferManagerType::HAL; + } else if (entry.data.u8[0] == + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE) { + bufferManagerType = BufferManagerType::SESSION; + } } outputPreviewStreams.clear(); @@ -2640,7 +2652,8 @@ void CameraAidlTest::configureSingleStream( ASSERT_EQ(supported, true); std::vector halConfigs; - ret = configureStreams(*session, config, sessionHalBufferManager, useHalBufManager, + std::set halBufManagedStreamIds; + ret = configureStreams(*session, config, bufferManagerType, &halBufManagedStreamIds, &halConfigs); ALOGI("configureStreams returns status: %d:%d", ret.getExceptionCode(), ret.getServiceSpecificError()); @@ -2648,6 +2661,7 @@ void CameraAidlTest::configureSingleStream( ASSERT_EQ(1u, halConfigs.size()); halStreams->clear(); halStreams->push_back(halConfigs[0]); + *useHalBufManager = halBufManagedStreamIds.size() != 0; if (*useHalBufManager) { std::vector ss(1); std::vector hs(1); @@ -2774,6 +2788,7 @@ void CameraAidlTest::processPreviewStabilizationCaptureRequestInternal( overrideRotateAndCrop(&request.settings); request.outputBuffers = std::vector(1); StreamBuffer& outputBuffer = request.outputBuffers[0]; + if (useHalBufManager) { outputBuffer = {halStreams[0].id, /*bufferId*/ 0, NativeHandle(), BufferStatus::OK, @@ -2892,14 +2907,14 @@ void CameraAidlTest::configurePreviewStreams( const AvailableStream* previewThreshold, const std::unordered_set& physicalIds, std::shared_ptr* session, Stream* previewStream, std::vector* halStreams, bool* supportsPartialResults, - int32_t* partialResultCount, bool* useHalBufManager, std::shared_ptr* cb, - int32_t streamConfigCounter, bool allowUnsupport) { + int32_t* partialResultCount, std::set* halBufManagedStreamIds, + std::shared_ptr* cb, int32_t streamConfigCounter, bool allowUnsupport) { ASSERT_NE(nullptr, session); ASSERT_NE(nullptr, halStreams); ASSERT_NE(nullptr, previewStream); ASSERT_NE(nullptr, supportsPartialResults); ASSERT_NE(nullptr, partialResultCount); - ASSERT_NE(nullptr, useHalBufManager); + ASSERT_NE(nullptr, halBufManagedStreamIds); ASSERT_NE(nullptr, cb); ASSERT_FALSE(physicalIds.empty()); @@ -2936,16 +2951,16 @@ void CameraAidlTest::configurePreviewStreams( ASSERT_TRUE(ret.isOk()); ASSERT_NE(*session, nullptr); - *useHalBufManager = false; - bool sessionHalBufferManager = false; + BufferManagerType bufferManagerType = BufferManagerType::FRAMEWORK; status = find_camera_metadata_ro_entry( staticMeta, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &entry); if ((0 == status) && (entry.count == 1)) { - *useHalBufManager = (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5); - sessionHalBufferManager = - (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE); + if (entry.data.u8[0] == ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5) { + bufferManagerType = BufferManagerType::HAL; + } else if (entry.data.u8[0] == + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE) { + bufferManagerType = BufferManagerType::SESSION; + } } outputPreviewStreams.clear(); @@ -3000,18 +3015,21 @@ void CameraAidlTest::configurePreviewStreams( config.streamConfigCounter = streamConfigCounter; std::vector halConfigs; - ret = configureStreams(*session, config, sessionHalBufferManager, useHalBufManager, + ret = configureStreams(*session, config, bufferManagerType, halBufManagedStreamIds, &halConfigs); ASSERT_TRUE(ret.isOk()); ASSERT_EQ(physicalIds.size(), halConfigs.size()); *halStreams = halConfigs; - if (*useHalBufManager) { - std::vector ss(physicalIds.size()); - std::vector hs(physicalIds.size()); + if (halBufManagedStreamIds->size() != 0) { + // Only include the streams that are HAL buffer managed + std::vector ss; + std::vector hs; for (size_t i = 0; i < physicalIds.size(); i++) { - ss[i] = streams[i]; - hs[i] = halConfigs[i]; + if (contains(*halBufManagedStreamIds, halConfigs[i].id)) { + ss.emplace_back(streams[i]); + hs.emplace_back(halConfigs[i]); + } } (*cb)->setCurrentStreamConfig(ss, hs); } @@ -3029,22 +3047,20 @@ void CameraAidlTest::verifyBuffersReturned(const std::shared_ptrwaitForBuffersReturned(); } -void CameraAidlTest::configureStreams(const std::string& name, - const std::shared_ptr& provider, - PixelFormat format, - std::shared_ptr* session, - Stream* previewStream, std::vector* halStreams, - bool* supportsPartialResults, int32_t* partialResultCount, - bool* useHalBufManager, std::shared_ptr* outCb, - uint32_t streamConfigCounter, bool maxResolution, - RequestAvailableDynamicRangeProfilesMap dynamicRangeProf, - RequestAvailableColorSpaceProfilesMap colorSpaceProf) { +void CameraAidlTest::configureStreams( + const std::string& name, const std::shared_ptr& provider, + PixelFormat format, std::shared_ptr* session, Stream* previewStream, + std::vector* halStreams, bool* supportsPartialResults, + int32_t* partialResultCount, std::set* halBufManagedStreamIds, + std::shared_ptr* outCb, uint32_t streamConfigCounter, bool maxResolution, + RequestAvailableDynamicRangeProfilesMap dynamicRangeProf, + RequestAvailableColorSpaceProfilesMap colorSpaceProf) { ASSERT_NE(nullptr, session); ASSERT_NE(nullptr, halStreams); ASSERT_NE(nullptr, previewStream); ASSERT_NE(nullptr, supportsPartialResults); ASSERT_NE(nullptr, partialResultCount); - ASSERT_NE(nullptr, useHalBufManager); + ASSERT_NE(nullptr, halBufManagedStreamIds); ASSERT_NE(nullptr, outCb); ALOGI("configureStreams: Testing camera device %s", name.c_str()); @@ -3081,16 +3097,16 @@ void CameraAidlTest::configureStreams(const std::string& name, ASSERT_TRUE(ret.isOk()); ASSERT_NE(*session, nullptr); - *useHalBufManager = false; - bool sessionHalBufferManager = false; + BufferManagerType bufferManagerType = BufferManagerType::FRAMEWORK; status = find_camera_metadata_ro_entry( staticMeta, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &entry); if ((0 == status) && (entry.count == 1)) { - *useHalBufManager = (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5); - sessionHalBufferManager = - (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE); + if (entry.data.u8[0] == ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5) { + bufferManagerType = BufferManagerType::HAL; + } else if (entry.data.u8[0] == + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE) { + bufferManagerType = BufferManagerType::SESSION; + } } outputStreams.clear(); @@ -3144,11 +3160,11 @@ void CameraAidlTest::configureStreams(const std::string& name, ASSERT_TRUE(ret.isOk()); ASSERT_EQ(supported, true); - ret = configureStreams(*session, config, sessionHalBufferManager, useHalBufManager, halStreams); + ret = configureStreams(*session, config, bufferManagerType, halBufManagedStreamIds, halStreams); ASSERT_TRUE(ret.isOk()); - if (*useHalBufManager) { + if (halBufManagedStreamIds->size() != 0) { std::vector ss(1); std::vector hs(1); ss[0] = streams[0]; @@ -3493,7 +3509,7 @@ void CameraAidlTest::configureOfflineStillStream( const AvailableStream* threshold, std::shared_ptr* session, Stream* stream, std::vector* halStreams, bool* supportsPartialResults, int32_t* partialResultCount, std::shared_ptr* outCb, int32_t* jpegBufferSize, - bool* useHalBufManager) { + std::set* halBufManagedStreamIds) { ASSERT_NE(nullptr, session); ASSERT_NE(nullptr, halStreams); ASSERT_NE(nullptr, stream); @@ -3501,7 +3517,7 @@ void CameraAidlTest::configureOfflineStillStream( ASSERT_NE(nullptr, partialResultCount); ASSERT_NE(nullptr, outCb); ASSERT_NE(nullptr, jpegBufferSize); - ASSERT_NE(nullptr, useHalBufManager); + ASSERT_NE(nullptr, halBufManagedStreamIds); std::vector outputStreams; std::shared_ptr cameraDevice; @@ -3528,16 +3544,16 @@ void CameraAidlTest::configureOfflineStillStream( *supportsPartialResults = (*partialResultCount > 1); } - *useHalBufManager = false; - bool sessionHalBufferManager = false; + BufferManagerType bufferManagerType = BufferManagerType::FRAMEWORK; status = find_camera_metadata_ro_entry( staticMeta, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &entry); if ((0 == status) && (entry.count == 1)) { - *useHalBufManager = (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5); - sessionHalBufferManager = - (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE); + if (entry.data.u8[0] == ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5) { + bufferManagerType = BufferManagerType::HAL; + } else if (entry.data.u8[0] == + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE) { + bufferManagerType = BufferManagerType::SESSION; + } } auto st = getJpegBufferSize(staticMeta, jpegBufferSize); @@ -3590,11 +3606,11 @@ void CameraAidlTest::configureOfflineStillStream( StreamConfiguration config = {streams, StreamConfigurationMode::NORMAL_MODE, CameraMetadata()}; - ret = configureStreams(*session, config, sessionHalBufferManager, useHalBufManager, halStreams); + ret = configureStreams(*session, config, bufferManagerType, halBufManagedStreamIds, halStreams); ASSERT_TRUE(ret.isOk()); - if (*useHalBufManager) { + if (halBufManagedStreamIds->size() != 0) { (*outCb)->setCurrentStreamConfig(streams, *halStreams); } @@ -3697,7 +3713,7 @@ void CameraAidlTest::processColorSpaceRequest( std::vector halStreams; bool supportsPartialResults = false; - bool useHalBufManager = false; + std::set halBufManagedStreamIds; int32_t partialResultCount = 0; Stream previewStream; std::shared_ptr cb; @@ -3706,7 +3722,7 @@ void CameraAidlTest::processColorSpaceRequest( GRALLOC1_CONSUMER_USAGE_HWCOMPOSER); configureStreams(name, mProvider, PixelFormat::IMPLEMENTATION_DEFINED, &mSession, &previewStream, &halStreams, &supportsPartialResults, &partialResultCount, - &useHalBufManager, &cb, 0, + &halBufManagedStreamIds, &cb, 0, /*maxResolution*/ false, dynamicRangeProfile, colorSpace); ASSERT_NE(mSession, nullptr); @@ -3745,7 +3761,7 @@ void CameraAidlTest::processColorSpaceRequest( auto bufferId = requestId + 1; // Buffer id value 0 is not valid for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; - if (useHalBufManager) { + if (contains(halBufManagedStreamIds, halStream.id)) { outputBuffers[k] = {halStream.id, 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; @@ -3812,10 +3828,12 @@ void CameraAidlTest::processColorSpaceRequest( } } - if (useHalBufManager) { - std::vector streamIds(halStreams.size()); + if (halBufManagedStreamIds.size() != 0) { + std::vector streamIds; for (size_t i = 0; i < streamIds.size(); i++) { - streamIds[i] = halStreams[i].id; + if (contains(halBufManagedStreamIds, halStreams[i].id)) { + streamIds.emplace_back(halStreams[i].id); + } } mSession->signalStreamFlush(streamIds, /*streamConfigCounter*/ 0); cb->waitForBuffersReturned(); diff --git a/camera/provider/aidl/vts/camera_aidl_test.h b/camera/provider/aidl/vts/camera_aidl_test.h index b51544fb67..86f0c9b849 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.h +++ b/camera/provider/aidl/vts/camera_aidl_test.h @@ -99,6 +99,11 @@ using ::ndk::ScopedAStatus; class DeviceCb; // Forward declare to break circular header dependency +template +bool contains(const std::set& container, T value) { + return container.find(value) != container.end(); +} + class CameraAidlTest : public ::testing::TestWithParam { public: enum SystemCameraKind { @@ -121,6 +126,8 @@ class CameraAidlTest : public ::testing::TestWithParam { HIDDEN_SECURE_CAMERA }; + enum BufferManagerType { FRAMEWORK = 0, HAL, SESSION }; + struct AvailableStream { int32_t width; int32_t height; @@ -200,11 +207,12 @@ class CameraAidlTest : public ::testing::TestWithParam { std::shared_ptr* session /*out*/, Stream* stream /*out*/, std::vector* halStreams, bool* supportsPartialResults /*out*/, int32_t* partialResultCount /*out*/, std::shared_ptr* outCb /*out*/, - int32_t* jpegBufferSize /*out*/, bool* useHalBufManager /*out*/); + int32_t* jpegBufferSize /*out*/, std::set* halBufManagedStreamIds /*out*/); ndk::ScopedAStatus configureStreams(std::shared_ptr& session, const StreamConfiguration& config, - bool sessionHalBufferManager, bool* useHalBufManager, + BufferManagerType bufferManagerType, + std::set* halBufManagedStreamIds, std::vector* halStreams); void configureStreams( @@ -212,8 +220,9 @@ class CameraAidlTest : public ::testing::TestWithParam { PixelFormat format, std::shared_ptr* session /*out*/, Stream* previewStream /*out*/, std::vector* halStreams /*out*/, bool* supportsPartialResults /*out*/, int32_t* partialResultCount /*out*/, - bool* useHalBufManager /*out*/, std::shared_ptr* outCb /*out*/, - uint32_t streamConfigCounter, bool maxResolution, + std::set* halBufManagedStreamIds /*out*/, + std::shared_ptr* outCb /*out*/, uint32_t streamConfigCounter, + bool maxResolution, RequestAvailableDynamicRangeProfilesMap dynamicRangeProf = RequestAvailableDynamicRangeProfilesMap:: ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD, @@ -227,7 +236,7 @@ class CameraAidlTest : public ::testing::TestWithParam { const std::unordered_set& physicalIds, std::shared_ptr* session /*out*/, Stream* previewStream /*out*/, std::vector* halStreams /*out*/, bool* supportsPartialResults /*out*/, - int32_t* partialResultCount /*out*/, bool* useHalBufManager /*out*/, + int32_t* partialResultCount /*out*/, std::set* halBufManagedStreamIds /*out*/, std::shared_ptr* cb /*out*/, int32_t streamConfigCounter = 0, bool allowUnsupport = false); -- GitLab From a7000cfe15b3bcf7076fa470d7f7b0ba6d625bde Mon Sep 17 00:00:00 2001 From: Ayush Jain Date: Fri, 29 Dec 2023 01:05:11 +0000 Subject: [PATCH 114/418] [hal] Add support for CCC capability UWBS_MAX_PPM. Define the capability tag. Test: make com.android.uwb Bug: 308660074 Change-Id: Iaa7c3e0292f3719cadae7c53d920f057c8dd7e68 --- .../uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl | 1 + .../uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl index 21951b6e20..58919d1fc6 100644 --- a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl +++ b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl @@ -46,6 +46,7 @@ enum UwbVendorCapabilityTlvTypes { CCC_SUPPORTED_MAX_RANGING_SESSION_NUMBER = 0xA8, CCC_SUPPORTED_MIN_UWB_INITIATION_TIME_MS = 0xA9, CCC_PRIORITIZED_CHANNEL_LIST = 0xAA, + CCC_SUPPORTED_UWBS_MAX_PPM = 0xAB, RADAR_SUPPORT = 0xB0, SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING = 0xE3, SUPPORTED_MIN_RANGING_INTERVAL_MS = 0xE4, diff --git a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl index 2141b5a1c9..4df45b61bb 100644 --- a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl +++ b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl @@ -154,6 +154,11 @@ enum UwbVendorCapabilityTlvTypes { */ CCC_PRIORITIZED_CHANNEL_LIST = 0xAA, + /** + * Short (2-octet) value to indicate the UWBS Max Clock Skew PPM value. + */ + CCC_SUPPORTED_UWBS_MAX_PPM = 0xAB, + /********************************************* * RADAR specific ********************************************/ -- GitLab From 870da833b610b7e41be611293b6aab5a04123050 Mon Sep 17 00:00:00 2001 From: Vinay Gannevaram Date: Thu, 4 Jan 2024 17:05:46 +0530 Subject: [PATCH 115/418] RTT: Add OuiKeyedData List in ranging APIs Add vendor data in ranging API and event as OuiKeyedData List. Bug: 296069900 Test: m Change-Id: Ifaf8c3f49624cbf8c760157d329c2e022935a9c3 --- .../current/android/hardware/wifi/RttCapabilities.aidl | 1 + .../current/android/hardware/wifi/RttConfig.aidl | 1 + .../current/android/hardware/wifi/RttResult.aidl | 1 + wifi/aidl/android/hardware/wifi/RttCapabilities.aidl | 6 ++++++ wifi/aidl/android/hardware/wifi/RttConfig.aidl | 6 ++++++ wifi/aidl/android/hardware/wifi/RttResult.aidl | 6 ++++++ 6 files changed, 21 insertions(+) diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl index af1647dd5d..6c6408454a 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl @@ -46,4 +46,5 @@ parcelable RttCapabilities { int azBwSupport; boolean ntbInitiatorSupported; boolean ntbResponderSupported; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl index b53ff9b526..361361609c 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl @@ -50,4 +50,5 @@ parcelable RttConfig { android.hardware.wifi.RttBw bw; long ntbMinMeasurementTime; long ntbMaxMeasurementTime; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl index 10c96749c9..13202ba3f2 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl @@ -65,4 +65,5 @@ parcelable RttResult { long ntbMaxMeasurementTime; byte numTxSpatialStreams; byte numRxSpatialStreams; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl index 89b70c9e00..c1939245e9 100644 --- a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl +++ b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl @@ -18,6 +18,7 @@ package android.hardware.wifi; import android.hardware.wifi.RttBw; import android.hardware.wifi.RttPreamble; +import android.hardware.wifi.common.OuiKeyedData; /** * RTT Capabilities. @@ -78,4 +79,9 @@ parcelable RttCapabilities { * Whether IEEE 802.11az Non-Trigger-based (non-TB) responder mode is supported. */ boolean ntbResponderSupported; + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/android/hardware/wifi/RttConfig.aidl index 7b18708b8d..496ffd2dbc 100644 --- a/wifi/aidl/android/hardware/wifi/RttConfig.aidl +++ b/wifi/aidl/android/hardware/wifi/RttConfig.aidl @@ -21,6 +21,7 @@ import android.hardware.wifi.RttPeerType; import android.hardware.wifi.RttPreamble; import android.hardware.wifi.RttType; import android.hardware.wifi.WifiChannelInfo; +import android.hardware.wifi.common.OuiKeyedData; /** * RTT configuration. @@ -134,4 +135,9 @@ parcelable RttConfig { * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. */ long ntbMaxMeasurementTime; + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/android/hardware/wifi/RttResult.aidl b/wifi/aidl/android/hardware/wifi/RttResult.aidl index 438bc0a0a8..2f9aefef20 100644 --- a/wifi/aidl/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/android/hardware/wifi/RttResult.aidl @@ -21,6 +21,7 @@ import android.hardware.wifi.RttStatus; import android.hardware.wifi.RttType; import android.hardware.wifi.WifiInformationElement; import android.hardware.wifi.WifiRateInfo; +import android.hardware.wifi.common.OuiKeyedData; /** * RTT results. @@ -207,4 +208,9 @@ parcelable RttResult { * A required field for IEEE 802.11az result. */ byte numRxSpatialStreams; + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; } -- GitLab From 40b937be36c609c14b39ccb64e237938e5ab4065 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 27 Dec 2023 13:51:25 -0800 Subject: [PATCH 116/418] Return INVALID_ARG if cont prop rate is 0. Return INVALID_ARG if subscribe to a continuous property with sample rate 0. Test: atest FakeVehicleHardwareTest Bug: 316208952 Change-Id: I2a37ad6c2244d0bed088c700bd0a3ccb98fd4675 --- .../impl/fake_impl/hardware/include/FakeVehicleHardware.h | 2 +- .../impl/fake_impl/hardware/src/FakeVehicleHardware.cpp | 6 +++--- .../fake_impl/hardware/test/FakeVehicleHardwareTest.cpp | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h index 8cd92b3b89..96eff0eef2 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h @@ -294,7 +294,7 @@ class FakeVehicleHardware : public IVehicleHardware { void registerRefreshLocked(PropIdAreaId propIdAreaId, VehiclePropertyStore::EventMode eventMode, float sampleRateHz) REQUIRES(mLock); void unregisterRefreshLocked(PropIdAreaId propIdAreaId) REQUIRES(mLock); - void refreshTimeStampForInterval(int64_t intervalInNanos) EXCLUDES(mLock); + void refreshTimestampForInterval(int64_t intervalInNanos) EXCLUDES(mLock); static aidl::android::hardware::automotive::vehicle::VehiclePropValue createHwInputKeyProp( aidl::android::hardware::automotive::vehicle::VehicleHwKeyInputAction action, diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp index 385f616628..d95ffd6d82 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp @@ -2109,7 +2109,7 @@ bool FakeVehicleHardware::isVariableUpdateRateSupported(const VehiclePropConfig& return false; } -void FakeVehicleHardware::refreshTimeStampForInterval(int64_t intervalInNanos) { +void FakeVehicleHardware::refreshTimestampForInterval(int64_t intervalInNanos) { std::unordered_map eventModeByPropIdAreaId; @@ -2159,7 +2159,7 @@ void FakeVehicleHardware::registerRefreshLocked(PropIdAreaId propIdAreaId, // This is the first action for the interval, register a timer callback for that interval. auto action = std::make_shared( - [this, intervalInNanos] { refreshTimeStampForInterval(intervalInNanos); }); + [this, intervalInNanos] { refreshTimestampForInterval(intervalInNanos); }); mActionByIntervalInNanos[intervalInNanos] = ActionForInterval{ .propIdAreaIdsToRefresh = {propIdAreaId}, .recurrentAction = action, @@ -2201,7 +2201,7 @@ StatusCode FakeVehicleHardware::subscribePropIdAreaIdLocked( case VehiclePropertyChangeMode::CONTINUOUS: if (sampleRateHz == 0.f) { ALOGE("Must not use sample rate 0 for a continuous property"); - return StatusCode::INTERNAL_ERROR; + return StatusCode::INVALID_ARG; } // For continuous properties, we must generate a new onPropertyChange event // periodically according to the sample rate. diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp index 6d2efd5b5c..909c89dab4 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp @@ -3444,6 +3444,14 @@ TEST_F(FakeVehicleHardwareTest, testSubscribeUnusubscribe_onChange) { << "must not receive on change events if the propId, areaId is unsubscribed"; } +TEST_F(FakeVehicleHardwareTest, testSubscribeContinuous_rate0_mustReturnInvalidArg) { + int32_t propSpeed = toInt(VehicleProperty::PERF_VEHICLE_SPEED); + int32_t areaId = 0; + auto status = getHardware()->subscribe(newSubscribeOptions(propSpeed, areaId, 0)); + + ASSERT_EQ(status, StatusCode::INVALID_ARG); +} + TEST_F(FakeVehicleHardwareTest, testSetHvacTemperatureValueSuggestion) { float CELSIUS = static_cast(toInt(VehicleUnit::CELSIUS)); float FAHRENHEIT = static_cast(toInt(VehicleUnit::FAHRENHEIT)); -- GitLab From 6a4f3a87b9741b384700b885c0ac642d53d7c6de Mon Sep 17 00:00:00 2001 From: shrikar Date: Mon, 16 Oct 2023 18:49:49 +0000 Subject: [PATCH 117/418] Updated JsonConfigLoader to parse access for area configs If access is populated in VehicleAreaConfig, access field will remain empty in VehiclePropConfig. Updated VHAL layer tests to test new access mode granularity logic Added new tests and modified others in JsonConfigLoaderUnitTest to test new parsing logic. Added VTS test to enforce exclusively one of VehiclePropConig.access and the VehicleAreaConfig.access fields are populated. Bug: 290801790 Test: atest JsonConfigLoaderUnitTest Test: atest VtsHalAutomotiveVehicle_TargetTest Change-Id: I6cc4f20c289141123d3e2093e45084109fbf4d9d --- .../include/JsonConfigLoader.h | 15 ++- .../JsonConfigLoader/src/JsonConfigLoader.cpp | 51 +++++--- .../test/JsonConfigLoaderUnitTest.cpp | 112 +++++++++++++++++- .../VtsHalAutomotiveVehicle_TargetTest.cpp | 75 ++++++++++-- 4 files changed, 213 insertions(+), 40 deletions(-) diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h index f3bdbd2343..82e5860780 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h @@ -130,12 +130,9 @@ class JsonConfigParser { std::vector* outPtr, std::vector* errors); // Parses a JSON field to VehiclePropertyAccess or VehiclePropertyChangeMode. template - void parseAccessChangeMode( - const Json::Value& parentJsonNode, const std::string& fieldName, int propId, - const std::string& propStr, - const std::unordered_map& defaultMap, - T* outPtr, std::vector* errors); + void parseAccessChangeMode(const Json::Value& parentJsonNode, const std::string& fieldName, + const std::string& propStr, const T* defaultAccessChangeModePtr, + T* outPtr, std::vector* errors); // Parses a JSON field to RawPropValues. // @@ -145,8 +142,10 @@ class JsonConfigParser { std::vector* errors); // Prase a JSON field as an array of area configs. - void parseAreas(const Json::Value& parentJsonNode, const std::string& fieldName, - ConfigDeclaration* outPtr, std::vector* errors); + void parseAreas( + const Json::Value& parentJsonNode, const std::string& fieldName, + ConfigDeclaration* outPtr, std::vector* errors, + aidl::android::hardware::automotive::vehicle::VehiclePropertyAccess defaultAccess); }; } // namespace jsonconfigloader_impl diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp index 3e6e7dcf1d..76db891a5b 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp @@ -487,10 +487,11 @@ bool JsonConfigParser::tryParseJsonArrayToVariable(const Json::Value& parentJson } template -void JsonConfigParser::parseAccessChangeMode( - const Json::Value& parentJsonNode, const std::string& fieldName, int propId, - const std::string& propStr, const std::unordered_map& defaultMap, - T* outPtr, std::vector* errors) { +void JsonConfigParser::parseAccessChangeMode(const Json::Value& parentJsonNode, + const std::string& fieldName, + const std::string& propStr, + const T* defaultAccessChangeModeValuePtr, T* outPtr, + std::vector* errors) { if (!parentJsonNode.isObject()) { errors->push_back("Node: " + parentJsonNode.toStyledString() + " is not an object"); return; @@ -504,12 +505,11 @@ void JsonConfigParser::parseAccessChangeMode( *outPtr = static_cast(result.value()); return; } - auto it = defaultMap.find(static_cast(propId)); - if (it == defaultMap.end()) { + if (defaultAccessChangeModeValuePtr == NULL) { errors->push_back("No " + fieldName + " specified for property: " + propStr); return; } - *outPtr = it->second; + *outPtr = *defaultAccessChangeModeValuePtr; return; } @@ -538,7 +538,8 @@ bool JsonConfigParser::parsePropValues(const Json::Value& parentJsonNode, } void JsonConfigParser::parseAreas(const Json::Value& parentJsonNode, const std::string& fieldName, - ConfigDeclaration* config, std::vector* errors) { + ConfigDeclaration* config, std::vector* errors, + VehiclePropertyAccess defaultAccess) { if (!parentJsonNode.isObject()) { errors->push_back("Node: " + parentJsonNode.toStyledString() + " is not an object"); return; @@ -546,6 +547,7 @@ void JsonConfigParser::parseAreas(const Json::Value& parentJsonNode, const std:: if (!parentJsonNode.isMember(fieldName)) { return; } + std::string propStr = parentJsonNode["property"].toStyledString(); const Json::Value& jsonValue = parentJsonNode[fieldName]; if (!jsonValue.isArray()) { @@ -561,6 +563,8 @@ void JsonConfigParser::parseAreas(const Json::Value& parentJsonNode, const std:: } VehicleAreaConfig areaConfig = {}; areaConfig.areaId = areaId; + parseAccessChangeMode(jsonAreaConfig, "access", propStr, &defaultAccess, &areaConfig.access, + errors); tryParseJsonValueToVariable(jsonAreaConfig, "minInt32Value", /*optional=*/true, &areaConfig.minInt32Value, errors); tryParseJsonValueToVariable(jsonAreaConfig, "maxInt32Value", /*optional=*/true, @@ -608,12 +612,21 @@ std::optional JsonConfigParser::parseEachProperty( configDecl.config.prop = propId; std::string propStr = propJsonValue["property"].toStyledString(); + VehiclePropertyAccess* defaultAccessMode = NULL; + auto itAccess = AccessForVehicleProperty.find(static_cast(propId)); + if (itAccess != AccessForVehicleProperty.end()) { + defaultAccessMode = &itAccess->second; + } + VehiclePropertyChangeMode* defaultChangeMode = NULL; + auto itChangeMode = ChangeModeForVehicleProperty.find(static_cast(propId)); + if (itChangeMode != ChangeModeForVehicleProperty.end()) { + defaultChangeMode = &itChangeMode->second; + } + VehiclePropertyAccess access = VehiclePropertyAccess::NONE; + parseAccessChangeMode(propJsonValue, "access", propStr, defaultAccessMode, &access, errors); - parseAccessChangeMode(propJsonValue, "access", propId, propStr, AccessForVehicleProperty, - &configDecl.config.access, errors); - - parseAccessChangeMode(propJsonValue, "changeMode", propId, propStr, - ChangeModeForVehicleProperty, &configDecl.config.changeMode, errors); + parseAccessChangeMode(propJsonValue, "changeMode", propStr, defaultChangeMode, + &configDecl.config.changeMode, errors); tryParseJsonValueToVariable(propJsonValue, "configString", /*optional=*/true, &configDecl.config.configString, errors); @@ -629,21 +642,23 @@ std::optional JsonConfigParser::parseEachProperty( tryParseJsonValueToVariable(propJsonValue, "maxSampleRate", /*optional=*/true, &configDecl.config.maxSampleRate, errors); - parseAreas(propJsonValue, "areas", &configDecl, errors); - - if (errors->size() != initialErrorCount) { - return std::nullopt; - } + parseAreas(propJsonValue, "areas", &configDecl, errors, access); // If there is no area config, by default we allow variable update rate, so we have to add // a global area config. if (configDecl.config.areaConfigs.size() == 0) { VehicleAreaConfig areaConfig = { .areaId = 0, + .access = access, .supportVariableUpdateRate = true, }; configDecl.config.areaConfigs.push_back(std::move(areaConfig)); } + + if (errors->size() != initialErrorCount) { + return std::nullopt; + } + return configDecl; } diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp index 98826537e7..a13d3dff4e 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp @@ -286,7 +286,8 @@ TEST_F(JsonConfigLoaderUnitTest, testCheckDefaultAccessChangeMode) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& propConfig = configs.begin()->second.config; - ASSERT_EQ(propConfig.access, VehiclePropertyAccess::READ); + ASSERT_EQ(propConfig.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::READ); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::STATIC); } @@ -307,7 +308,8 @@ TEST_F(JsonConfigLoaderUnitTest, testAccessOverride) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& propConfig = configs.begin()->second.config; - ASSERT_EQ(propConfig.access, VehiclePropertyAccess::WRITE); + ASSERT_EQ(propConfig.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::WRITE); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::STATIC); } @@ -328,7 +330,8 @@ TEST_F(JsonConfigLoaderUnitTest, testChangeModeOverride) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& propConfig = configs.begin()->second.config; - ASSERT_EQ(propConfig.access, VehiclePropertyAccess::READ); + ASSERT_EQ(propConfig.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::READ); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::ON_CHANGE); } @@ -350,7 +353,8 @@ TEST_F(JsonConfigLoaderUnitTest, testCustomProp) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& propConfig = configs.begin()->second.config; - ASSERT_EQ(propConfig.access, VehiclePropertyAccess::WRITE); + ASSERT_EQ(propConfig.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::WRITE); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::ON_CHANGE); } @@ -550,10 +554,12 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_Simple) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; ASSERT_EQ(areaConfig.minInt32Value, 1); ASSERT_EQ(areaConfig.maxInt32Value, 7); + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(areaConfig.areaId, HVAC_ALL); } @@ -635,9 +641,11 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesNoSupportedEnumValuesDeclared) ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(areaConfig.areaId, 0); ASSERT_FALSE(areaConfig.supportedEnumValues); } @@ -662,9 +670,11 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesSupportedEnumValues) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(areaConfig.areaId, 0); ASSERT_TRUE(areaConfig.supportedEnumValues); ASSERT_EQ(areaConfig.supportedEnumValues.value().size(), 2u); @@ -692,13 +702,107 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesEmptySupportedEnumValues) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(areaConfig.areaId, 0); ASSERT_FALSE(areaConfig.supportedEnumValues); } +TEST_F(JsonConfigLoaderUnitTest, testAccess_areaOverrideGlobalDefault) { + std::istringstream iss(R"( + { + "properties": [{ + "property": "VehicleProperty::CABIN_LIGHTS_SWITCH", + "areas": [{ + "access": "VehiclePropertyAccess::READ", + "areaId": 0 + }] + }] + } + )"); + + auto result = mLoader.loadPropConfig(iss); + ASSERT_TRUE(result.ok()); + + auto configs = result.value(); + ASSERT_EQ(configs.size(), 1u); + + const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.areaConfigs.size(), 1u); + + const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); + ASSERT_EQ(areaConfig.areaId, 0); +} + +TEST_F(JsonConfigLoaderUnitTest, testAccess_globalOverrideDefault) { + std::istringstream iss(R"( + { + "properties": [{ + "property": "VehicleProperty::CABIN_LIGHTS_SWITCH", + "areas": [{ + "areaId": 0 + }], + "access": "VehiclePropertyAccess::READ" + }] + } + )"); + + auto result = mLoader.loadPropConfig(iss); + ASSERT_TRUE(result.ok()); + + auto configs = result.value(); + ASSERT_EQ(configs.size(), 1u); + + const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.areaConfigs.size(), 1u); + + const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); + ASSERT_EQ(areaConfig.areaId, 0); +} + +TEST_F(JsonConfigLoaderUnitTest, testAccess_areaOverrideGlobal) { + std::istringstream iss(R"( + { + "properties": [{ + "property": "VehicleProperty::CABIN_LIGHTS_SWITCH", + "areas": [{ + "access": "VehiclePropertyAccess::WRITE", + "areaId": 0 + }, + { + "areaId": 1 + }], + "access": "VehiclePropertyAccess::READ", + }] + } + )"); + + auto result = mLoader.loadPropConfig(iss); + ASSERT_TRUE(result.ok()); + + auto configs = result.value(); + ASSERT_EQ(configs.size(), 1u); + + const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.areaConfigs.size(), 2u); + + const VehicleAreaConfig& areaConfig1 = config.areaConfigs[0]; + ASSERT_EQ(areaConfig1.access, VehiclePropertyAccess::WRITE); + ASSERT_EQ(areaConfig1.areaId, 0); + + const VehicleAreaConfig& areaConfig2 = config.areaConfigs[1]; + ASSERT_EQ(areaConfig2.access, VehiclePropertyAccess::READ); + ASSERT_EQ(areaConfig2.areaId, 1); +} + } // namespace vehicle } // namespace automotive } // namespace hardware diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index b5ee335ff6..b0e44ae649 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -119,6 +119,7 @@ class VtsHalAutomotiveVehicleTargetTest : public testing::TestWithParamgetAccess() != toInt(VehiclePropertyAccess::NONE)) { + isReadWrite = (cfg.getAreaConfigs()[0]->getAccess() == + toInt(VehiclePropertyAccess::READ_WRITE)); + } + if (isReadWrite && isBooleanGlobalProp(propId) && !hvacProps.count(propId)) { auto propToGet = mVhalClient->createHalPropValue(propId); auto getValueResult = mVhalClient->getValueSync(*propToGet); @@ -469,6 +475,53 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, testGetValuesTimestampAIDL) { } } +// Test that access mode is populated in exclusively one of the VehiclePropConfig or the +// VehicleAreaConfigs. Either VehiclePropConfig.access must be populated, or all the +// VehicleAreaConfig.access fields should be populated. +TEST_P(VtsHalAutomotiveVehicleTargetTest, testAccessModeExclusivityAIDL) { + if (!mVhalClient->isAidlVhal()) { + GTEST_SKIP() << "Skip checking access mode for HIDL because the access mode field is only " + "present for AIDL"; + } + + auto result = mVhalClient->getAllPropConfigs(); + ASSERT_TRUE(result.ok()); + for (const auto& cfgPtr : result.value()) { + const IHalPropConfig& cfg = *cfgPtr; + + bool propAccessIsSet = (cfg.getAccess() != toInt(VehiclePropertyAccess::NONE)); + bool unsetAreaAccessExists = false; + bool setAreaAccessExists = false; + + for (const auto& areaConfig : cfg.getAreaConfigs()) { + if (areaConfig->getAccess() == toInt(VehiclePropertyAccess::NONE)) { + unsetAreaAccessExists = true; + } else { + setAreaAccessExists = true; + } + } + + ASSERT_FALSE(propAccessIsSet && setAreaAccessExists) << StringPrintf( + "Both prop and area config access is set for propertyId %d", cfg.getPropId()); + ASSERT_FALSE(!propAccessIsSet && !setAreaAccessExists) << StringPrintf( + "Neither prop and area config access is set for propertyId %d", cfg.getPropId()); + ASSERT_FALSE(unsetAreaAccessExists && setAreaAccessExists) << StringPrintf( + "Area access is only set in some configs for propertyId %d", cfg.getPropId()); + } +} + +void VtsHalAutomotiveVehicleTargetTest::verifyAccessMode(int actualAccess, int expectedAccess) { + if (expectedAccess == toInt(VehiclePropertyAccess::READ_WRITE)) { + ASSERT_TRUE(actualAccess == expectedAccess || + actualAccess == toInt(VehiclePropertyAccess::READ)) + << StringPrintf("Expect to get VehiclePropertyAccess: %i or %i, got %i", + expectedAccess, toInt(VehiclePropertyAccess::READ), actualAccess); + return; + } + ASSERT_EQ(actualAccess, expectedAccess) << StringPrintf( + "Expect to get VehiclePropertyAccess: %i, got %i", expectedAccess, actualAccess); +} + // Helper function to compare actual vs expected property config void VtsHalAutomotiveVehicleTargetTest::verifyProperty(VehicleProperty propId, VehiclePropertyAccess access, @@ -511,7 +564,6 @@ void VtsHalAutomotiveVehicleTargetTest::verifyProperty(VehicleProperty propId, const auto& config = result.value().at(0); int actualPropId = config->getPropId(); - int actualAccess = config->getAccess(); int actualChangeMode = config->getChangeMode(); int actualGroup = actualPropId & toInt(VehiclePropertyGroup::MASK); int actualArea = actualPropId & toInt(VehicleArea::MASK); @@ -520,14 +572,17 @@ void VtsHalAutomotiveVehicleTargetTest::verifyProperty(VehicleProperty propId, ASSERT_EQ(actualPropId, expectedPropId) << StringPrintf("Expect to get property ID: %i, got %i", expectedPropId, actualPropId); - if (expectedAccess == toInt(VehiclePropertyAccess::READ_WRITE)) { - ASSERT_TRUE(actualAccess == expectedAccess || - actualAccess == toInt(VehiclePropertyAccess::READ)) - << StringPrintf("Expect to get VehiclePropertyAccess: %i or %i, got %i", - expectedAccess, toInt(VehiclePropertyAccess::READ), actualAccess); + int globalAccess = config->getAccess(); + if (config->getAreaConfigSize() == 0) { + verifyAccessMode(globalAccess, expectedAccess); } else { - ASSERT_EQ(actualAccess, expectedAccess) << StringPrintf( - "Expect to get VehiclePropertyAccess: %i, got %i", expectedAccess, actualAccess); + for (const auto& areaConfig : config->getAreaConfigs()) { + int areaConfigAccess = areaConfig->getAccess(); + int actualAccess = (areaConfigAccess != toInt(VehiclePropertyAccess::NONE)) + ? areaConfigAccess + : globalAccess; + verifyAccessMode(actualAccess, expectedAccess); + } } ASSERT_EQ(actualChangeMode, expectedChangeMode) -- GitLab From 5f21fc7462d1d908c52bacdf98cc3e04eb45172f Mon Sep 17 00:00:00 2001 From: yomna Date: Wed, 3 Jan 2024 17:51:37 +0000 Subject: [PATCH 118/418] Clarify securityAlgorithmsUpdated and add new null enums Per vendor feedback, adds SRTP_NULL, IMS_NULL, clarifies VoWiFi are reserved for future use, and when state for securityAlgorithmsUpdated is expected to be cleared. Bug: b/318426372, b/318425921, b/318426377, b/318427053 Test: m Change-Id: I465e97a445d330088fb58d2ccc9481cfe360fc07 --- .../radio/network/SecurityAlgorithm.aidl | 6 +++--- .../radio/network/IRadioNetworkIndication.aidl | 16 ++++++++-------- .../radio/network/SecurityAlgorithm.aidl | 10 +++++----- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl index 3eb51e7e83..c590d2bede 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -57,6 +57,7 @@ enum SecurityAlgorithm { NEA1 = 56, NEA2 = 57, NEA3 = 58, + IMS_NULL = 67, SIP_NULL = 68, AES_GCM = 69, AES_GMAC = 70, @@ -64,9 +65,8 @@ enum SecurityAlgorithm { DES_EDE3_CBC = 72, AES_EDE3_CBC = 73, HMAC_SHA1_96 = 74, - HMAC_SHA1_96_NULL = 75, - HMAC_MD5_96 = 76, - HMAC_MD5_96_NULL = 77, + HMAC_MD5_96 = 75, + SRTP_NULL = 86, SRTP_AES_COUNTER = 87, SRTP_AES_F8 = 88, SRTP_HMAC_SHA1 = 89, diff --git a/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl b/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl index 875a1b2e1a..da82b78d32 100644 --- a/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl +++ b/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl @@ -231,13 +231,12 @@ oneway interface IRadioNetworkIndication { /* * Indicates that a new ciphering or integrity algorithm was used for a particular voice, - * signaling, or data connection attempt for a given PLMN and/or access network. Due to - * power concerns, once a connection type has been reported on, follow-up reports about that + * signaling, or data connection for a given PLMN and/or access network. Due to power + * concerns, once a connection type has been reported on, follow-up reports about that * connection type are only generated if there is any change to the most-recently reported * encryption or integrity, or if the value of SecurityAlgorithmUpdate#isUnprotectedEmergency - * changes. Thus the AP is only to be notified when there is new information. A change only in - * cell ID should not trigger an update, as the design is intended to be agnostic to dual - * connectivity ("secondary serving cells"). + * changes. A change only in cell ID should not trigger an update, as the design is intended + * to be agnostic to dual connectivity ("secondary serving cells"). * * Sample scenario to further clarify "most-recently reported": * @@ -246,9 +245,10 @@ oneway interface IRadioNetworkIndication { * 3. User returns to original location and reconnects to the null-ciphered 3G network. Modem * should report this as it's different than the most-recently reported data from step (2). * - * List is reset upon rebooting thus info about initial connections is always passed to the AP - * after a reboot. List is also reset if the SIM is changed or if there has been a change in - * the access network. + * State is reset when (1) RadioState is transitioned to ON from any other state (e.g. radio + * is turned on during device boot, or modem boot), and (2) when CardState is transitioned + * to PRESENT from any other state (e.g. when SIM is inserted), or (3) if there is a change in + * access network (PLMN). * * @param type Type of radio indication * @param securityAlgorithmUpdate SecurityAlgorithmUpdate encapsulates details of security diff --git a/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl index fefa26edd0..19feeeff59 100644 --- a/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl +++ b/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -59,7 +59,8 @@ enum SecurityAlgorithm { NEA2 = 57, NEA3 = 58, - // SIP layer security (See 3GPP TS 33.203) + // IMS and SIP layer security (See 3GPP TS 33.203) + IMS_NULL = 67, SIP_NULL = 68, AES_GCM = 69, AES_GMAC = 70, @@ -67,16 +68,15 @@ enum SecurityAlgorithm { DES_EDE3_CBC = 72, AES_EDE3_CBC = 73, HMAC_SHA1_96 = 74, - HMAC_SHA1_96_NULL = 75, - HMAC_MD5_96 = 76, - HMAC_MD5_96_NULL = 77, + HMAC_MD5_96 = 75, // RTP (see 3GPP TS 33.328) + SRTP_NULL = 86, SRTP_AES_COUNTER = 87, SRTP_AES_F8 = 88, SRTP_HMAC_SHA1 = 89, - // ePDG (3GPP TS 33.402) + // ePDG (3GPP TS 33.402) (reserved for future use) ENCR_AES_GCM_16 = 99, ENCR_AES_CBC = 100, AUTH_HMAC_SHA2_256_128 = 101, -- GitLab From 2f1b39cce9a24a969edba744384a2cd4c310f71c Mon Sep 17 00:00:00 2001 From: Yahav Nussbaum Date: Thu, 4 Jan 2024 22:30:03 +0000 Subject: [PATCH 119/418] Make android.hardware.bluetooth.finder apex_avilable for com.android.tethering Bug: 307897939 Test: m android.hardware.bluetooth.finder-update-api Change-Id: I7c40cdfc36180d0ab25d9862b29bb4015d03adb0 --- bluetooth/finder/aidl/Android.bp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bluetooth/finder/aidl/Android.bp b/bluetooth/finder/aidl/Android.bp index e606d2d996..24f5ca5fbc 100644 --- a/bluetooth/finder/aidl/Android.bp +++ b/bluetooth/finder/aidl/Android.bp @@ -28,7 +28,11 @@ aidl_interface { }, java: { enabled: true, - platform_apis: true, + sdk_version: "module_current", + min_sdk_version: "30", + apex_available: [ + "com.android.tethering", + ], }, }, } -- GitLab From 23b29d6f69d8c981fe09449d470f46b5b24a94fe Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Thu, 4 Jan 2024 15:22:11 -0800 Subject: [PATCH 120/418] Update audio common dependency in audio control HAL Upgraded audio common dependency to V3 in AIDL audio control dependency. Bug: 307967844 Test: atest VtsAidlHalAudioControlTest Change-Id: I40f8e03c128893a609bdf7e5e0d815c0602ba758 --- automotive/audiocontrol/aidl/default/Android.bp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/automotive/audiocontrol/aidl/default/Android.bp b/automotive/audiocontrol/aidl/default/Android.bp index 435c2d63de..a48d22893e 100644 --- a/automotive/audiocontrol/aidl/default/Android.bp +++ b/automotive/audiocontrol/aidl/default/Android.bp @@ -27,11 +27,13 @@ cc_binary { init_rc: ["audiocontrol-default.rc"], vintf_fragments: ["audiocontrol-default.xml"], vendor: true, + defaults: [ + "latest_android_hardware_audio_common_ndk_shared", + "latest_android_hardware_automotive_audiocontrol_ndk_shared", + ], shared_libs: [ "android.hardware.audio.common@7.0-enums", - "android.hardware.audio.common-V1-ndk", "android.frameworks.automotive.powerpolicy-V2-ndk", - "android.hardware.automotive.audiocontrol-V3-ndk", "libbase", "libbinder_ndk", "libcutils", -- GitLab From c67c887c5aa8cb81b905fe4462addfd86854de38 Mon Sep 17 00:00:00 2001 From: Wiwit Rifa'i Date: Thu, 4 Jan 2024 17:51:34 +0800 Subject: [PATCH 121/418] composer: vts: update getClientTargetSupport tests Ensure the primary display to set power on before running getClientTargetSupport tests for VTS 2.1 - 2.3. Bug: 308252481 Test: atest VtsHalGraphicsComposerV2_1TargetTest Test: atest VtsHalGraphicsComposerV2_2TargetTest Test: atest VtsHalGraphicsComposerV2_3TargetTest Change-Id: I6b793537ee42c87f37c4c1d7141364541f448134 --- .../2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp | 2 ++ .../2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp | 2 ++ .../2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp index b67cfc2114..a1992b9a7d 100644 --- a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp +++ b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp @@ -315,6 +315,8 @@ TEST_P(GraphicsComposerHidlTest, GetDisplayType) { * required client targets. */ TEST_P(GraphicsComposerHidlTest, GetClientTargetSupport) { + ASSERT_NO_FATAL_FAILURE( + mComposerClient->setPowerMode(mPrimaryDisplay, IComposerClient::PowerMode::ON)); std::vector configs = mComposerClient->getDisplayConfigs(mPrimaryDisplay); for (auto config : configs) { int32_t width = mComposerClient->getDisplayAttribute(mPrimaryDisplay, config, diff --git a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp index 2bd287b29d..cd4cb58aed 100644 --- a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp +++ b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp @@ -256,6 +256,8 @@ TEST_P(GraphicsComposerHidlTest, CreateVirtualDisplay_2_2) { * required client targets. */ TEST_P(GraphicsComposerHidlTest, GetClientTargetSupport_2_2) { + ASSERT_NO_FATAL_FAILURE( + mComposerClient->setPowerMode_2_2(mPrimaryDisplay, IComposerClient::PowerMode::ON)); std::vector configs = mComposerClient->getDisplayConfigs(mPrimaryDisplay); for (auto config : configs) { int32_t width = mComposerClient->getDisplayAttribute(mPrimaryDisplay, config, diff --git a/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp b/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp index c072ef08a9..f99c72d7b5 100644 --- a/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp +++ b/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp @@ -274,6 +274,8 @@ TEST_P(GraphicsComposerHidlTest, GetReadbackBufferAttributes_2_3) { * Test IComposerClient::getClientTargetSupport_2_3 */ TEST_P(GraphicsComposerHidlTest, GetClientTargetSupport_2_3) { + ASSERT_NO_FATAL_FAILURE( + mComposerClient->setPowerMode_2_2(mPrimaryDisplay, IComposerClient::PowerMode::ON)); std::vector configs = mComposerClient->getDisplayConfigs(mPrimaryDisplay); for (auto config : configs) { int32_t width = mComposerClient->getDisplayAttribute(mPrimaryDisplay, config, -- GitLab From 4856308c50250b21b9674872e4f28c8dd5a20885 Mon Sep 17 00:00:00 2001 From: Jakub Tyszkowski Date: Thu, 4 Jan 2024 16:02:38 +0000 Subject: [PATCH 122/418] LeAudio/multicodec: Fix the async data path getter API Just like the returned data path configurations are split for each direction, the function arguments should also have the directional context. The vendor module might need to know which connection handles in the stream map are for the sink and which are for the source direction, to provide the proper data path configurations for each direction. Bug: 308428217 Bug: 307258939 Test: m android.hardware.bluetooth.audio-update-api Change-Id: I270b6f4631869e2180580c886f0b58bd777d2123 --- .../audio/IBluetoothAudioProvider.aidl | 6 ++++- .../audio/IBluetoothAudioProvider.aidl | 25 ++++++++++++++++++- .../aidl/default/BluetoothAudioProvider.cpp | 13 ++++++---- .../aidl/default/BluetoothAudioProvider.h | 10 +++++--- 4 files changed, 43 insertions(+), 11 deletions(-) diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl index f155634430..87401ff7fd 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -45,7 +45,7 @@ interface IBluetoothAudioProvider { void setCodecPriority(in android.hardware.bluetooth.audio.CodecId codecId, int priority); List getLeAudioAseConfiguration(in @nullable List remoteSinkAudioCapabilities, in @nullable List remoteSourceAudioCapabilities, in List requirements); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationPair getLeAudioAseQosConfiguration(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement qosRequirement); - android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext context, in android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sinkConfig, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sourceConfig); void onSinkAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); void onSourceAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable List remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement); @@ -146,6 +146,10 @@ interface IBluetoothAudioProvider { @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration inputConfig; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration outputConfig; } + parcelable StreamConfig { + android.hardware.bluetooth.audio.AudioContext context; + android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap; + } @Backing(type="byte") @VintfStability enum AseState { ENABLING = 0x00, diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl index 2e16f4e33f..8c6fe692b7 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -518,15 +518,38 @@ interface IBluetoothAudioProvider { @nullable LeAudioDataPathConfiguration outputConfig; } + /** + * Stream Configuration + */ + parcelable StreamConfig { + /** + * Streaming Audio Context. + * This can serve as a hint for selecting the proper configuration by + * the offloader. + */ + AudioContext context; + /** + * Stream configuration, including connection handles and audio channel + * allocations. + */ + StreamMap[] streamMap; + } + /** * Used to get a data path configuration which dynamically depends on CIS * connection handles in StreamMap. This is used if non-dynamic data path * was not provided in LeAudioAseConfigurationSetting. Calling this during * the unicast audio stream establishment might slightly delay the stream * start. + * + * @param sinkConfig - remote sink device stream configuration + * @param sourceConfig - remote source device stream configuration + * + * @return LeAudioDataPathConfigurationPair */ LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration( - in AudioContext context, in StreamMap[] streamMap); + in @nullable StreamConfig sinkConfig, + in @nullable StreamConfig sourceConfig); /* * Audio Stream Endpoint state used to report Metadata changes on the remote diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp b/bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp index bdba898a6a..8d03faec04 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp +++ b/bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp @@ -229,14 +229,17 @@ ndk::ScopedAStatus BluetoothAudioProvider::getLeAudioAseQosConfiguration( }; ndk::ScopedAStatus BluetoothAudioProvider::getLeAudioAseDatapathConfiguration( - const ::aidl::android::hardware::bluetooth::audio::AudioContext& in_context, - const std::vector<::aidl::android::hardware::bluetooth::audio:: - LeAudioConfiguration::StreamMap>& in_streamMap, + const std::optional<::aidl::android::hardware::bluetooth::audio:: + IBluetoothAudioProvider::StreamConfig>& + in_sinkConfig, + const std::optional<::aidl::android::hardware::bluetooth::audio:: + IBluetoothAudioProvider::StreamConfig>& + in_sourceConfig, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: LeAudioDataPathConfigurationPair* _aidl_return) { /* TODO: Implement */ - (void)in_context; - (void)in_streamMap; + (void)in_sinkConfig; + (void)in_sourceConfig; (void)_aidl_return; return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); } diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProvider.h b/bluetooth/audio/aidl/default/BluetoothAudioProvider.h index 5064869ca3..2c21440ab2 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProvider.h +++ b/bluetooth/audio/aidl/default/BluetoothAudioProvider.h @@ -71,10 +71,12 @@ class BluetoothAudioProvider : public BnBluetoothAudioProvider { ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: LeAudioAseQosConfigurationPair* _aidl_return) override; ndk::ScopedAStatus getLeAudioAseDatapathConfiguration( - const ::aidl::android::hardware::bluetooth::audio::AudioContext& - in_context, - const std::vector<::aidl::android::hardware::bluetooth::audio:: - LeAudioConfiguration::StreamMap>& in_streamMap, + const std::optional<::aidl::android::hardware::bluetooth::audio:: + IBluetoothAudioProvider::StreamConfig>& + in_sinkConfig, + const std::optional<::aidl::android::hardware::bluetooth::audio:: + IBluetoothAudioProvider::StreamConfig>& + in_sourceConfig, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: LeAudioDataPathConfigurationPair* _aidl_return) override; ndk::ScopedAStatus onSinkAseMetadataChanged( -- GitLab From 4aca35e205336d88e554a4f87155cad114379606 Mon Sep 17 00:00:00 2001 From: Jeff Pu Date: Thu, 4 Jan 2024 22:40:33 +0000 Subject: [PATCH 123/418] Support Face Virtual HAL operation latency randomization Bug: 294254230 Test: atest android.hardware.biometrics.face.* Change-Id: I1e0c2ba2f0f6756c79375b56c7d1a10f7f3bf5c4 --- .../face/aidl/default/FakeFaceEngine.cpp | 35 ++++++- biometrics/face/aidl/default/FakeFaceEngine.h | 2 + .../face/aidl/default/FakeLockoutTracker.h | 2 + ...e.biometrics.face.VirtualProps-current.txt | 98 ------------------- biometrics/face/aidl/default/face.sysprop | 52 +++++----- .../aidl/default/tests/FakeFaceEngineTest.cpp | 27 +++++ 6 files changed, 89 insertions(+), 127 deletions(-) diff --git a/biometrics/face/aidl/default/FakeFaceEngine.cpp b/biometrics/face/aidl/default/FakeFaceEngine.cpp index 7380611853..bdc13fd403 100644 --- a/biometrics/face/aidl/default/FakeFaceEngine.cpp +++ b/biometrics/face/aidl/default/FakeFaceEngine.cpp @@ -70,7 +70,7 @@ void FakeFaceEngine::enrollImpl(ISessionCallback* cb, const keymaster::HardwareA EnrollmentType /*enrollmentType*/, const std::vector& /*features*/, const std::future& cancel) { - BEGIN_OP(FaceHalProperties::operation_start_enroll_latency().value_or(0)); + BEGIN_OP(getLatency(FaceHalProperties::operation_enroll_latency())); // Do proper HAT verification in the real implementation. if (hat.mac.empty()) { @@ -158,7 +158,7 @@ void FakeFaceEngine::enrollImpl(ISessionCallback* cb, const keymaster::HardwareA void FakeFaceEngine::authenticateImpl(ISessionCallback* cb, int64_t /*operationId*/, const std::future& cancel) { - BEGIN_OP(FaceHalProperties::operation_authenticate_latency().value_or(0)); + BEGIN_OP(getLatency(FaceHalProperties::operation_authenticate_latency())); auto id = FaceHalProperties::enrollment_hit().value_or(0); auto enrolls = FaceHalProperties::enrollments(); @@ -291,7 +291,7 @@ std::pair FakeFaceEngine::convertError(int32_t code) { } void FakeFaceEngine::detectInteractionImpl(ISessionCallback* cb, const std::future& cancel) { - BEGIN_OP(FaceHalProperties::operation_detect_interaction_latency().value_or(0)); + BEGIN_OP(getLatency(FaceHalProperties::operation_detect_interaction_latency())); if (FaceHalProperties::operation_detect_interaction_fails().value_or(false)) { LOG(ERROR) << "Fail: operation_detect_interaction_fails"; @@ -418,4 +418,33 @@ void FakeFaceEngine::resetLockoutImpl(ISessionCallback* cb, cb->onLockoutCleared(); } +int32_t FakeFaceEngine::getRandomInRange(int32_t bound1, int32_t bound2) { + std::uniform_int_distribution dist(std::min(bound1, bound2), std::max(bound1, bound2)); + return dist(mRandom); +} + +int32_t FakeFaceEngine::getLatency(const std::vector>& latencyIn) { + int32_t res = DEFAULT_LATENCY; + + std::vector latency; + for (auto x : latencyIn) + if (x.has_value()) latency.push_back(*x); + + switch (latency.size()) { + case 0: + break; + case 1: + res = latency[0]; + break; + case 2: + res = getRandomInRange(latency[0], latency[1]); + break; + default: + LOG(ERROR) << "ERROR: unexpected input of size " << latency.size(); + break; + } + + return res; +} + } // namespace aidl::android::hardware::biometrics::face diff --git a/biometrics/face/aidl/default/FakeFaceEngine.h b/biometrics/face/aidl/default/FakeFaceEngine.h index 8d9303c491..b1e1388186 100644 --- a/biometrics/face/aidl/default/FakeFaceEngine.h +++ b/biometrics/face/aidl/default/FakeFaceEngine.h @@ -60,6 +60,7 @@ class FakeFaceEngine { void getAuthenticatorIdImpl(ISessionCallback* cb); void invalidateAuthenticatorIdImpl(ISessionCallback* cb); void resetLockoutImpl(ISessionCallback* cb, const keymaster::HardwareAuthToken& /*hat*/); + int32_t getLatency(const std::vector>& latencyVec); virtual std::string toString() const { std::ostringstream os; @@ -71,6 +72,7 @@ class FakeFaceEngine { std::mt19937 mRandom; private: + int32_t getRandomInRange(int32_t bound1, int32_t bound2); static constexpr int32_t FACE_ACQUIRED_VENDOR_BASE = 1000; static constexpr int32_t FACE_ERROR_VENDOR_BASE = 1000; std::pair convertAcquiredInfo(int32_t code); diff --git a/biometrics/face/aidl/default/FakeLockoutTracker.h b/biometrics/face/aidl/default/FakeLockoutTracker.h index f2d38f3608..82cc3133b1 100644 --- a/biometrics/face/aidl/default/FakeLockoutTracker.h +++ b/biometrics/face/aidl/default/FakeLockoutTracker.h @@ -28,7 +28,9 @@ class FakeLockoutTracker { public: FakeLockoutTracker() : mFailedCount(0), + mTimedFailedCount(0), mLastFailedTime(0), + mCurrentMode(LockoutMode::kNone), mIsLockoutTimerStarted(false), mIsLockoutTimerAborted(false) {} ~FakeLockoutTracker() {} diff --git a/biometrics/face/aidl/default/api/android.hardware.biometrics.face.VirtualProps-current.txt b/biometrics/face/aidl/default/api/android.hardware.biometrics.face.VirtualProps-current.txt index 95489205f6..e69de29bb2 100644 --- a/biometrics/face/aidl/default/api/android.hardware.biometrics.face.VirtualProps-current.txt +++ b/biometrics/face/aidl/default/api/android.hardware.biometrics.face.VirtualProps-current.txt @@ -1,98 +0,0 @@ -props { - owner: Vendor - module: "android.face.virt.FaceHalProperties" - prop { - api_name: "authenticator_id" - type: Long - access: ReadWrite - prop_name: "vendor.face.virtual.authenticator_id" - } - prop { - api_name: "challenge" - type: Long - access: ReadWrite - prop_name: "vendor.face.virtual.challenge" - } - prop { - api_name: "enrollment_hit" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.enrollment_hit" - } - prop { - api_name: "enrollments" - type: IntegerList - access: ReadWrite - prop_name: "persist.vendor.face.virtual.enrollments" - } - prop { - api_name: "features" - type: IntegerList - access: ReadWrite - prop_name: "persist.vendor.face.virtual.features" - } - prop { - api_name: "lockout" - access: ReadWrite - prop_name: "vendor.face.virtual.lockout" - } - prop { - api_name: "next_enrollment" - type: String - access: ReadWrite - prop_name: "vendor.face.virtual.next_enrollment" - } - prop { - api_name: "operation_authenticate_duration" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.operation_authenticate_duration" - } - prop { - api_name: "operation_authenticate_fails" - access: ReadWrite - prop_name: "vendor.face.virtual.operation_authenticate_fails" - } - prop { - api_name: "operation_authenticate_latency" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.operation_authenticate_latency" - } - prop { - api_name: "operation_detect_interaction_fails" - access: ReadWrite - prop_name: "vendor.face.virtual.operation_detect_interaction_fails" - } - prop { - api_name: "operation_detect_interaction_latency" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.operation_detect_interaction_latency" - } - prop { - api_name: "operation_enroll_fails" - access: ReadWrite - prop_name: "vendor.face.virtual.operation_enroll_fails" - } - prop { - api_name: "operation_start_enroll_latency" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.operation_start_enroll_latency" - } - prop { - api_name: "strength" - type: String - access: ReadWrite - prop_name: "persist.vendor.face.virtual.strength" - enum_values: "convenience|weak|strong" - } - prop { - api_name: "type" - type: String - access: ReadWrite - prop_name: "persist.vendor.face.virtual.type" - enum_values: "IR|RGB" - } -} diff --git a/biometrics/face/aidl/default/face.sysprop b/biometrics/face/aidl/default/face.sysprop index 95b0b43ca7..997fd671ac 100644 --- a/biometrics/face/aidl/default/face.sysprop +++ b/biometrics/face/aidl/default/face.sysprop @@ -7,7 +7,7 @@ owner: Vendor prop { prop_name: "persist.vendor.face.virtual.type" type: String - scope: Public + scope: Internal access: ReadWrite enum_values: "IR|RGB" api_name: "type" @@ -17,7 +17,7 @@ prop { prop { prop_name: "persist.vendor.face.virtual.strength" type: String - scope: Public + scope: Internal access: ReadWrite enum_values: "convenience|weak|strong" api_name: "strength" @@ -27,7 +27,7 @@ prop { prop { prop_name: "persist.vendor.face.virtual.enrollments" type: IntegerList - scope: Public + scope: Internal access: ReadWrite api_name: "enrollments" } @@ -36,7 +36,7 @@ prop { prop { prop_name: "persist.vendor.face.virtual.features" type: IntegerList - scope: Public + scope: Internal access: ReadWrite api_name: "features" } @@ -46,20 +46,11 @@ prop { prop { prop_name: "vendor.face.virtual.enrollment_hit" type: Integer - scope: Public + scope: Internal access: ReadWrite api_name: "enrollment_hit" } -# The initial latency for enrollment -prop { - prop_name: "vendor.face.virtual.operation_start_enroll_latency" - type: Integer - scope: Public - access: ReadWrite - api_name: "operation_start_enroll_latency" -} - # the next enrollment in the format: # ",::,..." # for example: "0:1,0:100:1,1:200:1" indicating that bucket 0 took @@ -69,7 +60,7 @@ prop { prop { prop_name: "vendor.face.virtual.next_enrollment" type: String - scope: Public + scope: Internal access: ReadWrite api_name: "next_enrollment" } @@ -78,7 +69,7 @@ prop { prop { prop_name: "vendor.face.virtual.authenticator_id" type: Long - scope: Public + scope: Internal access: ReadWrite api_name: "authenticator_id" } @@ -87,7 +78,7 @@ prop { prop { prop_name: "vendor.face.virtual.challenge" type: Long - scope: Public + scope: Internal access: ReadWrite api_name: "challenge" } @@ -96,7 +87,7 @@ prop { prop { prop_name: "vendor.face.virtual.lockout" type: Boolean - scope: Public + scope: Internal access: ReadWrite api_name: "lockout" } @@ -105,7 +96,7 @@ prop { prop { prop_name: "vendor.face.virtual.operation_authenticate_fails" type: Boolean - scope: Public + scope: Internal access: ReadWrite api_name: "operation_authenticate_fails" } @@ -114,7 +105,7 @@ prop { prop { prop_name: "vendor.face.virtual.operation_detect_interaction_fails" type: Boolean - scope: Public + scope: Internal access: ReadWrite api_name: "operation_detect_interaction_fails" } @@ -123,7 +114,7 @@ prop { prop { prop_name: "vendor.face.virtual.operation_enroll_fails" type: Boolean - scope: Public + scope: Internal access: ReadWrite api_name: "operation_enroll_fails" } @@ -133,8 +124,8 @@ prop { # the HAL will send AcquiredInfo::START and AcquiredInfo::FIRST_FRAME_RECEIVED prop { prop_name: "vendor.face.virtual.operation_authenticate_latency" - type: Integer - scope: Public + type: IntegerList + scope: Internal access: ReadWrite api_name: "operation_authenticate_latency" } @@ -142,18 +133,27 @@ prop { # add a latency to detectInteraction operations prop { prop_name: "vendor.face.virtual.operation_detect_interaction_latency" - type: Integer - scope: Public + type: IntegerList + scope: Internal access: ReadWrite api_name: "operation_detect_interaction_latency" } +# add a latency to enroll operations +prop { + prop_name: "vendor.face.virtual.operation_enroll_latency" + type: IntegerList + scope: Internal + access: ReadWrite + api_name: "operation_enroll_latency" +} + # millisecond duration for authenticate operations # (waits for changes to enrollment_hit) prop { prop_name: "vendor.face.virtual.operation_authenticate_duration" type: Integer - scope: Public + scope: Internal access: ReadWrite api_name: "operation_authenticate_duration" } diff --git a/biometrics/face/aidl/default/tests/FakeFaceEngineTest.cpp b/biometrics/face/aidl/default/tests/FakeFaceEngineTest.cpp index 69c9bf457b..8c39b589af 100644 --- a/biometrics/face/aidl/default/tests/FakeFaceEngineTest.cpp +++ b/biometrics/face/aidl/default/tests/FakeFaceEngineTest.cpp @@ -22,6 +22,7 @@ #include #include "FakeFaceEngine.h" +#include "util/Util.h" using namespace ::android::face::virt; using namespace ::aidl::android::hardware::biometrics::face; @@ -137,11 +138,15 @@ class FakeFaceEngineTest : public ::testing::Test { void SetUp() override { LOG(ERROR) << "JRM SETUP"; mCallback = ndk::SharedRefBase::make(); + } + + void TearDown() override { FaceHalProperties::enrollments({}); FaceHalProperties::challenge({}); FaceHalProperties::features({}); FaceHalProperties::authenticator_id({}); FaceHalProperties::strength(""); + FaceHalProperties::operation_detect_interaction_latency({}); } FakeFaceEngine mEngine; @@ -383,4 +388,26 @@ TEST_F(FakeFaceEngineTest, ResetLockoutWithAuth) { ASSERT_FALSE(mCallback->mAuthenticateFailed); } +TEST_F(FakeFaceEngineTest, LatencyDefault) { + FaceHalProperties::operation_detect_interaction_latency({}); + ASSERT_EQ(DEFAULT_LATENCY, + mEngine.getLatency(FaceHalProperties::operation_detect_interaction_latency())); +} + +TEST_F(FakeFaceEngineTest, LatencyFixed) { + FaceHalProperties::operation_detect_interaction_latency({10}); + ASSERT_EQ(10, mEngine.getLatency(FaceHalProperties::operation_detect_interaction_latency())); +} + +TEST_F(FakeFaceEngineTest, LatencyRandom) { + FaceHalProperties::operation_detect_interaction_latency({1, 1000}); + std::set latencySet; + for (int i = 0; i < 100; i++) { + auto x = mEngine.getLatency(FaceHalProperties::operation_detect_interaction_latency()); + ASSERT_TRUE(x >= 1 && x <= 1000); + latencySet.insert(x); + } + ASSERT_TRUE(latencySet.size() > 95); // unique values +} + } // namespace aidl::android::hardware::biometrics::face -- GitLab From c8a62248318a0ecb1c9d5826d94f574021446b9d Mon Sep 17 00:00:00 2001 From: Jakub Tyszkowski Date: Fri, 5 Jan 2024 15:25:49 +0000 Subject: [PATCH 124/418] LeAudio/multicodec: Add the additional VTS test case Bug: 308428217 Bug: 307258939 Test: atest VtsHalBluetoothAudioTargetTest Change-Id: Idf8ca8c50e61482506c3c1a5bf5e8962c316a045 --- .../vts/VtsHalBluetoothAudioTargetTest.cpp | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp index 88f2f97e28..be49a74b8a 100644 --- a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp +++ b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp @@ -2506,6 +2506,40 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetQoSConfiguration) { // QoS Configurations should not be empty, as we searched for all contexts ASSERT_FALSE(QoSConfigurations.empty()); } + +TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, + GetDataPathConfiguration) { + IBluetoothAudioProvider::StreamConfig sink_requirement; + IBluetoothAudioProvider::StreamConfig source_requirement; + std::vector + DataPathConfigurations; + bool is_supported = false; + + for (auto bitmask : all_context_bitmasks) { + sink_requirement.context = GetAudioContext(bitmask); + source_requirement.context = GetAudioContext(bitmask); + IBluetoothAudioProvider::LeAudioDataPathConfigurationPair result; + auto aidl_retval = audio_provider_->getLeAudioAseDatapathConfiguration( + sink_requirement, source_requirement, &result); + if (!aidl_retval.isOk()) { + // If not OK, then it could be not supported, as it is an optional feature + ASSERT_EQ(aidl_retval.getExceptionCode(), EX_UNSUPPORTED_OPERATION); + } else { + is_supported = true; + if (result.inputConfig.has_value()) + DataPathConfigurations.push_back(result.inputConfig.value()); + if (result.inputConfig.has_value()) + DataPathConfigurations.push_back(result.inputConfig.value()); + } + } + + if (is_supported) { + // Datapath Configurations should not be empty, as we searched for all + // contexts + ASSERT_FALSE(DataPathConfigurations.empty()); + } +} + /** * Test whether each provider of type * SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH can be started and -- GitLab From 3bc635e7b7e2565505827f20df39d1481c5c68eb Mon Sep 17 00:00:00 2001 From: Grant Menke Date: Thu, 4 Jan 2024 11:48:48 -0800 Subject: [PATCH 125/418] Updated VTS getSimultaneousCallingSupport test. This CL updates the getSimultaneousCallingSupport VTS test to ensure that REQUEST_NOT_SUPPORTED is not returned and that enabledLogicalSlots is set to an empty array by default for the default CF impl. Test: VtsHalRadioTargetTest Bug: 311495663 Change-Id: Ie382c14a19951bb69c7b7db4056f0e9dabc27685 --- radio/aidl/vts/radio_config_response.cpp | 3 ++- radio/aidl/vts/radio_config_test.cpp | 9 ++++++++- radio/aidl/vts/radio_config_utils.h | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/radio/aidl/vts/radio_config_response.cpp b/radio/aidl/vts/radio_config_response.cpp index dccbd0e9c5..c532440dcc 100644 --- a/radio/aidl/vts/radio_config_response.cpp +++ b/radio/aidl/vts/radio_config_response.cpp @@ -41,8 +41,9 @@ ndk::ScopedAStatus RadioConfigResponse::getPhoneCapabilityResponse( } ndk::ScopedAStatus RadioConfigResponse::getSimultaneousCallingSupportResponse( - const RadioResponseInfo& info, const std::vector& /* enabledLogicalSlots */) { + const RadioResponseInfo& info, const std::vector& enabledLogicalSlots) { rspInfo = info; + currentEnabledLogicalSlots = enabledLogicalSlots; parent_config.notify(info.serial); return ndk::ScopedAStatus::ok(); } diff --git a/radio/aidl/vts/radio_config_test.cpp b/radio/aidl/vts/radio_config_test.cpp index f7251367c3..6f18d18c49 100644 --- a/radio/aidl/vts/radio_config_test.cpp +++ b/radio/aidl/vts/radio_config_test.cpp @@ -150,10 +150,17 @@ TEST_P(RadioConfigTest, getSimultaneousCallingSupport) { ALOGI("getSimultaneousCallingSupport, rspInfo.error = %s\n", toString(radioRsp_config->rspInfo.error).c_str()); + // REQUEST_NOT_SUPPORTED is omitted here because users of the V3 HAL should implement this + // method and return at least an empty array ASSERT_TRUE(CheckAnyOfErrors( radioRsp_config->rspInfo.error, {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR, - RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); + RadioError::MODEM_ERR})); + + if (radioRsp_config->rspInfo.error == RadioError ::NONE) { + // The size of enabledLogicalSLots should be 0 or a positive number: + EXPECT_GE(radioRsp_config->currentEnabledLogicalSlots.size(), 0); + } } /* diff --git a/radio/aidl/vts/radio_config_utils.h b/radio/aidl/vts/radio_config_utils.h index 9e809ff4ef..84c74fcec7 100644 --- a/radio/aidl/vts/radio_config_utils.h +++ b/radio/aidl/vts/radio_config_utils.h @@ -39,6 +39,7 @@ class RadioConfigResponse : public BnRadioConfigResponse { PhoneCapability phoneCap; bool modemReducedFeatureSet1; std::vector simSlotStatus; + std::vector currentEnabledLogicalSlots; virtual ndk::ScopedAStatus getSimSlotsStatusResponse( const RadioResponseInfo& info, const std::vector& slotStatus) override; -- GitLab From e400c835a22356687e38e30681ad7a0c4fae923c Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Fri, 5 Jan 2024 02:33:47 +0000 Subject: [PATCH 126/418] Effect AIDL: add IEffect.reopen to update the effect instances data FMQ The effect instance may choose to reallocate the input data message queue under specific conditions. For example, when the input format changes, requiring an update to the data message queue allocated during the open time. In such cases, the effect instance can destroy the existing data message queue, when the audio framework see a valid status MQ and invalid data MQ, it call reopen to get the new data message queue. Bug: 302036943 Test: m android.hardware.audio.effect-update-api, m Change-Id: Ia245b154176f64bc3cc6e6049bca4f9c68ad482d --- .../hardware/audio/effect/IEffect.aidl | 1 + .../hardware/audio/effect/IEffect.aidl | 37 +++++++++++++++++-- .../android/hardware/audio/effect/state.gv | 6 ++- audio/aidl/default/EffectImpl.cpp | 10 +++++ .../default/include/effect-impl/EffectImpl.h | 1 + 5 files changed, 49 insertions(+), 6 deletions(-) diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl index 8c196e7abf..a1b00be41f 100644 --- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl @@ -41,6 +41,7 @@ interface IEffect { android.hardware.audio.effect.State getState(); void setParameter(in android.hardware.audio.effect.Parameter param); android.hardware.audio.effect.Parameter getParameter(in android.hardware.audio.effect.Parameter.Id paramId); + android.hardware.audio.effect.IEffect.OpenEffectReturn reopen(); @FixedSize @VintfStability parcelable Status { int status; diff --git a/audio/aidl/android/hardware/audio/effect/IEffect.aidl b/audio/aidl/android/hardware/audio/effect/IEffect.aidl index 6097f34ead..266adecc5d 100644 --- a/audio/aidl/android/hardware/audio/effect/IEffect.aidl +++ b/audio/aidl/android/hardware/audio/effect/IEffect.aidl @@ -54,7 +54,16 @@ interface IEffect { } /** - * Return data structure of IEffect.open() interface. + * Return data structure of the IEffect.open() and IEffect.reopen() method. + * + * Contains Fast Message Queues (FMQs) for effect processing status and input/output data. + * The status FMQ remains valid and unchanged after opening, while input/output data FMQs can be + * modified with changes in input/output AudioConfig. If reallocation of data FMQ is necessary, + * the effect instance must release the existing data FMQs to signal the need to the audio + * framework. + * When the audio framework encounters a valid status FMQ and invalid input/output data FMQs, + * it must invoke the IEffect.reopen() method to request the effect instance to reallocate + * the FMQ and return to the audio framework. */ @VintfStability parcelable OpenEffectReturn { @@ -97,7 +106,7 @@ interface IEffect { * client responsibility to make sure all parameter/buffer is correct if client wants to reopen * a closed instance. * - * Effect instance close interface should always succeed unless: + * Effect instance close method should always succeed unless: * 1. The effect instance is not in a proper state to be closed, for example it's still in * State::PROCESSING state. * 2. There is system/hardware related failure when close. @@ -154,8 +163,8 @@ interface IEffect { /** * Get a parameter from the effect instance with parameter ID. * - * This interface must return the current parameter of the effect instance, if no parameter - * has been set by client yet, the default value must be returned. + * This method must return the current parameter of the effect instance, if no parameter has + * been set by client yet, the default value must be returned. * * Must be available for the effect instance after open(). * @@ -165,4 +174,24 @@ interface IEffect { * @throws EX_ILLEGAL_ARGUMENT if the effect instance receive unsupported parameter tag. */ Parameter getParameter(in Parameter.Id paramId); + + /** + * Reopen the effect instance, keeping all previous parameters unchanged, and reallocate only + * the Fast Message Queues (FMQs) allocated during the open time as needed. + * + * When the audio framework encounters a valid status FMQ and invalid data FMQ(s), it calls + * this method to reopen the effect and request the latest data FMQ. + * Upon receiving this call, if the effect instance's data FMQ(s) is invalid, it must reallocate + * the necessary data FMQ(s) and return them to the audio framework. All previous parameters and + * states keep unchanged. + * Once the audio framework successfully completes the call, it must validate the returned FMQs, + * deprecate all old FMQs, and exclusively use the FMQs returned from this method. + * + * @return The reallocated data FMQ and the original status FMQ. + * + * @throws EX_ILLEGAL_STATE if the effect instance is not in a proper state to reallocate FMQ. + * This may occur if the effect instance has already been closed or if there is no need to + * update any data FMQ. + */ + OpenEffectReturn reopen(); } diff --git a/audio/aidl/android/hardware/audio/effect/state.gv b/audio/aidl/android/hardware/audio/effect/state.gv index ce369ba5c8..22c70c8d8f 100644 --- a/audio/aidl/android/hardware/audio/effect/state.gv +++ b/audio/aidl/android/hardware/audio/effect/state.gv @@ -31,6 +31,8 @@ digraph effect_state_machine { IDLE -> INIT[label = "IEffect.close()"]; INIT -> INIT[label = "IEffect.getState\nIEffect.getDescriptor"]; - IDLE -> IDLE[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.command(RESET)"]; - PROCESSING -> PROCESSING[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor"]; + IDLE -> IDLE[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.command(RESET)\nIEffect.reopen"]; + PROCESSING + -> PROCESSING + [label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.reopen"]; } diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp index c81c731c43..3c12f83e0f 100644 --- a/audio/aidl/default/EffectImpl.cpp +++ b/audio/aidl/default/EffectImpl.cpp @@ -60,6 +60,16 @@ ndk::ScopedAStatus EffectImpl::open(const Parameter::Common& common, return ndk::ScopedAStatus::ok(); } +ndk::ScopedAStatus EffectImpl::reopen(OpenEffectReturn* ret) { + RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "alreadyClosed"); + + // TODO: b/302036943 add reopen implementation + auto context = getContext(); + RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + context->dupeFmq(ret); + return ndk::ScopedAStatus::ok(); +} + ndk::ScopedAStatus EffectImpl::close() { RETURN_OK_IF(mState == State::INIT); RETURN_IF(mState == State::PROCESSING, EX_ILLEGAL_STATE, "closeAtProcessing"); diff --git a/audio/aidl/default/include/effect-impl/EffectImpl.h b/audio/aidl/default/include/effect-impl/EffectImpl.h index e7d081f6fc..242a268912 100644 --- a/audio/aidl/default/include/effect-impl/EffectImpl.h +++ b/audio/aidl/default/include/effect-impl/EffectImpl.h @@ -43,6 +43,7 @@ class EffectImpl : public BnEffect, public EffectThread { OpenEffectReturn* ret) override; virtual ndk::ScopedAStatus close() override; virtual ndk::ScopedAStatus command(CommandId id) override; + virtual ndk::ScopedAStatus reopen(OpenEffectReturn* ret) override; virtual ndk::ScopedAStatus getState(State* state) override; virtual ndk::ScopedAStatus setParameter(const Parameter& param) override; -- GitLab From 918ecd17aab8358d5440460c4892568fdc9cb910 Mon Sep 17 00:00:00 2001 From: Shuzhen Wang Date: Tue, 2 Jan 2024 19:56:05 +0000 Subject: [PATCH 127/418] Camera: Allow non-session parameters in SessionConfiguration Also remove a workaround in VTS test Test: Build Bug: 309627704 Change-Id: I0ed266e837f5d0bec6197ff9f725a897048038ae --- .../hardware/camera/device/ICameraDevice.aidl | 14 +++++++++----- .../camera/device/StreamConfiguration.aidl | 8 ++++++++ camera/provider/aidl/vts/camera_aidl_test.cpp | 9 ++------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl b/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl index 01009ad788..da3d5dfdcb 100644 --- a/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl +++ b/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl @@ -365,16 +365,20 @@ interface ICameraDevice { * isStreamCombinationWithSettingsSupported: * * This is the same as isStreamCombinationSupported with below exceptions: - * * 1. The input StreamConfiguration parameter may contain session parameters - * supported by this camera device. When checking if the particular StreamConfiguration - * is supported, the camera HAL must take the session parameters into consideration. + * as well as additional CaptureRequest keys. See the comment + * sections below on what additional capture request keys are passed in + * StreamConfiguration::sessionParameters for each interface version. When checking if + * the particular StreamConfiguration is supported, the camera HAL must take all + * the keys in sessionParameters into consideration. * * 2. For version 3 of this interface, the camera compliance test will verify that * isStreamCombinationWithSettingsSupported behaves properly for all combinations of * below features. This function must return true for all supported combinations, * and return false for non-supported feature combinations. The list of features - * required may grow in future versions. + * required may grow in future versions. The additional metadata entries in + * StreamConfiguration::sessionParameters are {CONTROL_AE_TARGET_FPS_RANGE, + * CONTROL_VIDEO_STABILIZATION_MODE}. * * - Stream Combinations (a subset of LEGACY device mandatory stream combinations): * { @@ -429,7 +433,7 @@ interface ICameraDevice { * 4032 x 3024, the camera compliance test will verify both * {PRIV, 1920 x 1440, JPEG, 4032 x 3024} and {PRIV, 2560 x 1440, JPEG, 4032 x 2268}. * - * @param streams The StreamConfiguration to be tested, with optional session parameters. + * @param streams The StreamConfiguration to be tested, with optional CaptureRequest parameters. * * @return true in case the stream combination is supported, false otherwise. * diff --git a/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl b/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl index 197d9af588..0f5bad932a 100644 --- a/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl +++ b/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl @@ -59,6 +59,14 @@ parcelable StreamConfiguration { * pipeline updates. The field is optional, clients can choose to ignore it and avoid * including any initial settings. If parameters are present, then hal must examine * their values and configure the internal camera pipeline accordingly. + * + * A null pointer is equivalent to a valid CameraMetadata object with zero entries. + * + * For a StreamConfiguration passed to ICameraDevice.isStreamCombinationWithSettingsSupported + * or ICameraDevice.getSessionCharacteristics, this variable may also contain keys + * that are not session parameters, but are used to specify certain features for a + * session. For example, CONTROL_VIDEO_STABILIZATION_MODE may be included even if it's not a + * session parameter. */ CameraMetadata sessionParams; diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index 6a08f58bf6..b7115d8760 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -1919,13 +1919,8 @@ void CameraAidlTest::verifyStreamCombination(const std::shared_ptrisStreamCombinationWithSettingsSupported(config, &streamCombinationSupported); - // TODO: Do not allow OPERATION_NOT_SUPPORTED once HAL - // implementation is in place. - ASSERT_TRUE(ret.isOk() || static_cast(ret.getServiceSpecificError()) == - Status::OPERATION_NOT_SUPPORTED); - if (ret.isOk()) { - ASSERT_EQ(expectedStatus, streamCombinationSupported); - } + ASSERT_TRUE(ret.isOk()); + ASSERT_EQ(expectedStatus, streamCombinationSupported); } } } -- GitLab From 9a21c4162c700653350370b7d94ae743296793b6 Mon Sep 17 00:00:00 2001 From: Spandan Das Date: Sat, 6 Jan 2024 00:01:41 +0000 Subject: [PATCH 128/418] Make apex availability to com.android.wifi explicit This is done implicitly today via a baseline map in build/soong/apex/apex.go. Make this explicit in Android.bp Bug: 281077552 Test: m nothing Change-Id: I71d9a6ce9707557f8e7652adc7afa3292ef9188d --- wifi/1.0/Android.bp | 4 ++++ wifi/1.1/Android.bp | 4 ++++ wifi/1.2/Android.bp | 4 ++++ wifi/1.3/Android.bp | 4 ++++ wifi/1.4/Android.bp | 4 ++++ wifi/hostapd/1.0/Android.bp | 4 ++++ wifi/hostapd/1.1/Android.bp | 4 ++++ wifi/hostapd/1.2/Android.bp | 4 ++++ wifi/supplicant/1.0/Android.bp | 4 ++++ wifi/supplicant/1.1/Android.bp | 4 ++++ wifi/supplicant/1.2/Android.bp | 4 ++++ wifi/supplicant/1.3/Android.bp | 4 ++++ 12 files changed, 48 insertions(+) diff --git a/wifi/1.0/Android.bp b/wifi/1.0/Android.bp index 94f8462836..21a5d15c23 100644 --- a/wifi/1.0/Android.bp +++ b/wifi/1.0/Android.bp @@ -33,4 +33,8 @@ hidl_interface { ], gen_java: true, gen_java_constants: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/1.1/Android.bp b/wifi/1.1/Android.bp index 7b4116a258..b5e4105d4d 100644 --- a/wifi/1.1/Android.bp +++ b/wifi/1.1/Android.bp @@ -21,4 +21,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/1.2/Android.bp b/wifi/1.2/Android.bp index f0edb81976..83b156e504 100644 --- a/wifi/1.2/Android.bp +++ b/wifi/1.2/Android.bp @@ -27,4 +27,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/1.3/Android.bp b/wifi/1.3/Android.bp index 030d7f6eb6..2ba612e88e 100644 --- a/wifi/1.3/Android.bp +++ b/wifi/1.3/Android.bp @@ -25,4 +25,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/1.4/Android.bp b/wifi/1.4/Android.bp index 1523f79927..48578f84ac 100644 --- a/wifi/1.4/Android.bp +++ b/wifi/1.4/Android.bp @@ -30,4 +30,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/hostapd/1.0/Android.bp b/wifi/hostapd/1.0/Android.bp index afcd45cc0c..b9a84d625a 100644 --- a/wifi/hostapd/1.0/Android.bp +++ b/wifi/hostapd/1.0/Android.bp @@ -21,4 +21,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/hostapd/1.1/Android.bp b/wifi/hostapd/1.1/Android.bp index f5f2fbe93a..c90b68d43b 100644 --- a/wifi/hostapd/1.1/Android.bp +++ b/wifi/hostapd/1.1/Android.bp @@ -22,4 +22,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/hostapd/1.2/Android.bp b/wifi/hostapd/1.2/Android.bp index 4ca41aa2a7..c8bf2f8310 100644 --- a/wifi/hostapd/1.2/Android.bp +++ b/wifi/hostapd/1.2/Android.bp @@ -23,4 +23,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/supplicant/1.0/Android.bp b/wifi/supplicant/1.0/Android.bp index 66e9353833..89a0907dc5 100644 --- a/wifi/supplicant/1.0/Android.bp +++ b/wifi/supplicant/1.0/Android.bp @@ -31,4 +31,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/supplicant/1.1/Android.bp b/wifi/supplicant/1.1/Android.bp index c62437455e..f92567122f 100644 --- a/wifi/supplicant/1.1/Android.bp +++ b/wifi/supplicant/1.1/Android.bp @@ -23,4 +23,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/supplicant/1.2/Android.bp b/wifi/supplicant/1.2/Android.bp index d5d937fac0..f61d9b9fc5 100644 --- a/wifi/supplicant/1.2/Android.bp +++ b/wifi/supplicant/1.2/Android.bp @@ -26,4 +26,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/supplicant/1.3/Android.bp b/wifi/supplicant/1.3/Android.bp index fbe7f75bf4..173a1efea1 100644 --- a/wifi/supplicant/1.3/Android.bp +++ b/wifi/supplicant/1.3/Android.bp @@ -27,4 +27,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } -- GitLab From 7b690750fe605a68298bb519173b360b9d65b4d8 Mon Sep 17 00:00:00 2001 From: Austin Delgado Date: Thu, 21 Dec 2023 16:01:56 -0800 Subject: [PATCH 129/418] Add isHardwareIgnoringTouches to OperationContext Bug: 313763144 Test: atest SystemUITests:com.android.systemui.biometrics Flag: None Change-Id: If337f491b809d5e9c9fdfedad86a3d63a3431102 --- .../biometrics/common/OperationContext.aidl | 1 + .../biometrics/common/OperationState.aidl | 49 +++++++++++++++++++ .../biometrics/common/OperationContext.aidl | 4 ++ .../biometrics/common/OperationState.aidl | 43 ++++++++++++++++ .../biometrics/fingerprint/ISession.aidl | 3 ++ .../biometrics/fingerprint/ISession.aidl | 2 + 6 files changed, 102 insertions(+) create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationState.aidl create mode 100644 biometrics/common/aidl/android/hardware/biometrics/common/OperationState.aidl diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationContext.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationContext.aidl index 42c305a985..8d913c8f10 100644 --- a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationContext.aidl +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationContext.aidl @@ -46,4 +46,5 @@ parcelable OperationContext { android.hardware.biometrics.common.DisplayState displayState = android.hardware.biometrics.common.DisplayState.UNKNOWN; @nullable android.hardware.biometrics.common.AuthenticateReason authenticateReason; android.hardware.biometrics.common.FoldState foldState = android.hardware.biometrics.common.FoldState.UNKNOWN; + @nullable android.hardware.biometrics.common.OperationState operationState; } diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationState.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationState.aidl new file mode 100644 index 0000000000..fca95252fc --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationState.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +union OperationState { + android.hardware.biometrics.common.OperationState.FingerprintOperationState fingerprintOperationState; + android.hardware.biometrics.common.OperationState.FaceOperationState faceOperationState; + @VintfStability + parcelable FingerprintOperationState { + ParcelableHolder extension; + boolean isHardwareIgnoringTouches = false; + } + @VintfStability + parcelable FaceOperationState { + ParcelableHolder extension; + } +} diff --git a/biometrics/common/aidl/android/hardware/biometrics/common/OperationContext.aidl b/biometrics/common/aidl/android/hardware/biometrics/common/OperationContext.aidl index 584057d1b5..5f9844f94f 100644 --- a/biometrics/common/aidl/android/hardware/biometrics/common/OperationContext.aidl +++ b/biometrics/common/aidl/android/hardware/biometrics/common/OperationContext.aidl @@ -20,6 +20,7 @@ import android.hardware.biometrics.common.AuthenticateReason; import android.hardware.biometrics.common.DisplayState; import android.hardware.biometrics.common.FoldState; import android.hardware.biometrics.common.OperationReason; +import android.hardware.biometrics.common.OperationState; import android.hardware.biometrics.common.WakeReason; /** @@ -75,4 +76,7 @@ parcelable OperationContext { /** The current fold/unfold state. */ FoldState foldState = FoldState.UNKNOWN; + + /** An associated operation state for this operation. */ + @nullable OperationState operationState; } diff --git a/biometrics/common/aidl/android/hardware/biometrics/common/OperationState.aidl b/biometrics/common/aidl/android/hardware/biometrics/common/OperationState.aidl new file mode 100644 index 0000000000..40cf589569 --- /dev/null +++ b/biometrics/common/aidl/android/hardware/biometrics/common/OperationState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.biometrics.common; + +/** + * Additional state associated with an operation + * + * @hide + */ +@VintfStability +union OperationState { + /** Operation state related to fingerprint*/ + @VintfStability + parcelable FingerprintOperationState { + ParcelableHolder extension; + + /** Flag indicating if the HAL should ignore touches on the fingerprint sensor */ + boolean isHardwareIgnoringTouches = false; + } + + /** Operation state related to face*/ + @VintfStability + parcelable FaceOperationState { + ParcelableHolder extension; + } + + OperationState.FingerprintOperationState fingerprintOperationState; + OperationState.FaceOperationState faceOperationState; +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl index 4fdcefc8ff..feb6ba3548 100644 --- a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl @@ -62,5 +62,8 @@ interface ISession { void onPointerUpWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); void onContextChanged(in android.hardware.biometrics.common.OperationContext context); void onPointerCancelWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); + /** + * @deprecated use isHardwareIgnoringTouches in OperationContext from onContextChanged instead + */ void setIgnoreDisplayTouches(in boolean shouldIgnore); } diff --git a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl index 83e7bbc43f..07e22c2b3f 100644 --- a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl +++ b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl @@ -544,6 +544,8 @@ interface ISession { * whenever it's appropriate. * * @param shouldIgnore whether the display touches should be ignored. + + * @deprecated use isHardwareIgnoringTouches in OperationContext from onContextChanged instead */ void setIgnoreDisplayTouches(in boolean shouldIgnore); } -- GitLab From 31f1ad2409a33bc11fcc2e2a2e8b7f9e73d7af24 Mon Sep 17 00:00:00 2001 From: Yahav Nussbaum Date: Sat, 6 Jan 2024 16:53:01 +0000 Subject: [PATCH 130/418] Clarify that an EID is a Find My Device network EID Bug: 318931934 Test: m android.hardware.bluetooth.finder-update-api Change-Id: Ie888bc81bd8b91040aa308b9b0d2be4a6137e483 --- .../finder/aidl/android/hardware/bluetooth/finder/Eid.aidl | 2 +- .../android/hardware/bluetooth/finder/IBluetoothFinder.aidl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl index ae9b1590ee..0de306f819 100644 --- a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl @@ -17,7 +17,7 @@ package android.hardware.bluetooth.finder; /** - * Ephemeral Identifier + * Find My Device network ephemeral identifier */ @VintfStability parcelable Eid { diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl index 615739b1cf..a374c2ad09 100644 --- a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -21,7 +21,7 @@ import android.hardware.bluetooth.finder.Eid; @VintfStability interface IBluetoothFinder { /** - * API to set the EIDs to the Bluetooth Controller + * API to set Find My Device network EIDs to the Bluetooth Controller * * @param eids array of 20 bytes EID to the Bluetooth * controller -- GitLab From 334bf18f8d45703828bae262a7c8af5fee999e6a Mon Sep 17 00:00:00 2001 From: Jakub Tyszkowski Date: Mon, 8 Jan 2024 13:43:27 +0000 Subject: [PATCH 131/418] Skip unsupported functinality tests Instead of silently passing the tests when some functionality is not supported, mark these tests as skipped. This way, when we are sure that some functionality should be verified in a particular test run, we are not being falsely reported that all have passed successfully while in reality, there's an actuall issue in the particular functionality detection mechanism. Bug: 319090769 Test: atest VtsHalBluetoothAudioTargetTest Change-Id: I8589ef14abfb5af641bc98949de1e1acc21efe1a --- .../vts/VtsHalBluetoothAudioTargetTest.cpp | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp index 88f2f97e28..bdcfbd7b70 100644 --- a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp +++ b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp @@ -1664,7 +1664,7 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpSbcEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -1694,7 +1694,7 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpAacEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -1724,7 +1724,7 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpLdacEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -1754,7 +1754,7 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpOpusEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -1784,7 +1784,7 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpAptxEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } for (auto codec_type : {CodecType::APTX, CodecType::APTX_HD}) { @@ -1820,7 +1820,7 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpEncodingHardwareSessionInvalidCodecConfig) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } ASSERT_NE(audio_provider_, nullptr); @@ -2420,7 +2420,7 @@ TEST_P( BluetoothAudioProviderLeAudioOutputHardwareAidl, StartAndEndLeAudioOutputSessionWithPossibleUnicastConfigFromProviderInfo) { if (!IsOffloadOutputProviderInfoSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = GetUnicastLc3SupportedListFromProviderInfo(); @@ -2514,7 +2514,7 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetQoSConfiguration) { TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, StartAndEndLeAudioOutputSessionWithPossibleUnicastConfig) { if (!IsOffloadOutputSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = @@ -2547,7 +2547,7 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, DISABLED_StartAndEndLeAudioOutputSessionWithInvalidAudioConfiguration) { if (!IsOffloadOutputSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = @@ -2585,7 +2585,7 @@ static std::vector vendorMetadata = {0x0B, // Length TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, StartAndEndLeAudioOutputSessionWithAptxAdaptiveLeUnicastConfig) { if (!IsOffloadOutputSupported()) { - return; + GTEST_SKIP(); } for (auto codec_type : {CodecType::APTX_ADAPTIVE_LE, CodecType::APTX_ADAPTIVE_LEX}) { @@ -2622,7 +2622,7 @@ TEST_P( BluetoothAudioProviderLeAudioOutputHardwareAidl, BluetoothAudioProviderLeAudioOutputHardwareAidl_StartAndEndLeAudioOutputSessionWithInvalidAptxAdaptiveLeAudioConfiguration) { if (!IsOffloadOutputSupported()) { - return; + GTEST_SKIP(); } for (auto codec_type : @@ -2708,7 +2708,7 @@ TEST_P( BluetoothAudioProviderLeAudioInputHardwareAidl, StartAndEndLeAudioInputSessionWithPossibleUnicastConfigFromProviderInfo) { if (!IsOffloadOutputProviderInfoSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = GetUnicastLc3SupportedListFromProviderInfo(); @@ -2738,7 +2738,7 @@ TEST_P( TEST_P(BluetoothAudioProviderLeAudioInputHardwareAidl, StartAndEndLeAudioInputSessionWithPossibleUnicastConfig) { if (!IsOffloadInputSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = @@ -2771,7 +2771,7 @@ TEST_P(BluetoothAudioProviderLeAudioInputHardwareAidl, TEST_P(BluetoothAudioProviderLeAudioInputHardwareAidl, DISABLED_StartAndEndLeAudioInputSessionWithInvalidAudioConfiguration) { if (!IsOffloadInputSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = @@ -3225,7 +3225,7 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpSbcDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -3255,7 +3255,7 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpAacDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -3285,7 +3285,7 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpLdacDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -3315,7 +3315,7 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpOpusDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -3345,7 +3345,7 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpAptxDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } for (auto codec_type : {CodecType::APTX, CodecType::APTX_HD}) { @@ -3381,7 +3381,7 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpDecodingHardwareSessionInvalidCodecConfig) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } ASSERT_NE(audio_provider_, nullptr); -- GitLab From 0259aafb7141ead245c2dc988e9912f8beb663af Mon Sep 17 00:00:00 2001 From: Jakub Tyszkowski Date: Fri, 5 Jan 2024 12:36:38 +0000 Subject: [PATCH 132/418] Fix filling the configuration map Bug: 319090769 Test: atest VtsHalBluetoothAudioTargetTest Change-Id: I1806d8a20abb9a9756512ae8d433c6c6ff784159 --- bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp index 216e1692ff..d37825a2a1 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp @@ -428,7 +428,7 @@ std::vector BluetoothAudioCodecs::GetLeAudioOffloadCodecInfo( if (kDefaultOffloadLeAudioCodecInfoMap.empty()) { auto le_audio_offload_setting = BluetoothLeAudioCodecsProvider::ParseFromLeAudioOffloadSettingFile(); - auto kDefaultOffloadLeAudioCodecInfoMap = + kDefaultOffloadLeAudioCodecInfoMap = BluetoothLeAudioCodecsProvider::GetLeAudioCodecInfo( le_audio_offload_setting); } -- GitLab From 06781c028a6d411ebc721c9bba67a5be71100555 Mon Sep 17 00:00:00 2001 From: Jakub Tyszkowski Date: Mon, 8 Jan 2024 13:16:42 +0000 Subject: [PATCH 133/418] Fix the bogus configs default-constructed as a2dp configs When the xml file contains the "invalid" entry in the scenario record, which do not refer to any valid config in the 'configurationList` section, the invalid, default constructed codec configuration (a2dp codec) was created. Bug: 319090769 Test: atest VtsHalBluetoothAudioTargetTest Change-Id: I19b7d1af81e5f2be3fb7261fba8781b3dc47fa12 --- .../vts/VtsHalBluetoothAudioTargetTest.cpp | 3 +-- .../BluetoothLeAudioCodecsProvider.cpp | 20 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp index bdcfbd7b70..5fd96caee7 100644 --- a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp +++ b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp @@ -736,8 +736,7 @@ TEST_P(BluetoothAudioProviderFactoryAidl, getProviderInfo_leAudioSessionTypes) { ASSERT_NE(codec_info.id.getTag(), CodecId::a2dp); // The codec info must contain the information // for le audio transport. - // ASSERT_EQ(codec_info.transport.getTag(), - // CodecInfo::Transport::le_audio); + ASSERT_EQ(codec_info.transport.getTag(), CodecInfo::Transport::leAudio); } } } diff --git a/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp b/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp index b6df67e133..99dea84a6c 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp @@ -77,8 +77,6 @@ BluetoothLeAudioCodecsProvider::GetLeAudioCodecInfo( for (auto& p : configuration_map_) { // Initialize new CodecInfo for the config auto config_name = p.first; - if (config_codec_info_map_.count(config_name) == 0) - config_codec_info_map_[config_name] = CodecInfo(); // Getting informations from codecConfig and strategyConfig const auto codec_config_name = p.second.getCodecConfiguration(); @@ -92,6 +90,9 @@ BluetoothLeAudioCodecsProvider::GetLeAudioCodecInfo( if (strategy_configuration_map_iter == strategy_configuration_map_.end()) continue; + if (config_codec_info_map_.count(config_name) == 0) + config_codec_info_map_[config_name] = CodecInfo(); + const auto& codec_config = codec_configuration_map_iter->second; const auto codec = codec_config.getCodec(); const auto& strategy_config = strategy_configuration_map_iter->second; @@ -137,12 +138,19 @@ BluetoothLeAudioCodecsProvider::GetLeAudioCodecInfo( } } - // Goes through every scenario, deduplicate configuration + // Goes through every scenario, deduplicate configuration, skip the invalid + // config references (e.g. the "invalid" entries in the xml file). std::set encoding_config, decoding_config, broadcast_config; for (auto& s : supported_scenarios_) { - if (s.hasEncode()) encoding_config.insert(s.getEncode()); - if (s.hasDecode()) decoding_config.insert(s.getDecode()); - if (s.hasBroadcast()) broadcast_config.insert(s.getBroadcast()); + if (s.hasEncode() && config_codec_info_map_.count(s.getEncode())) { + encoding_config.insert(s.getEncode()); + } + if (s.hasDecode() && config_codec_info_map_.count(s.getDecode())) { + decoding_config.insert(s.getDecode()); + } + if (s.hasBroadcast() && config_codec_info_map_.count(s.getBroadcast())) { + broadcast_config.insert(s.getBroadcast()); + } } // Split by session types and add results -- GitLab From deecabbd9cc5c13322ddaf167d41dbafc0435876 Mon Sep 17 00:00:00 2001 From: Jakub Tyszkowski Date: Mon, 8 Jan 2024 13:55:01 +0000 Subject: [PATCH 134/418] Fix LeAudioCodecProvider failing offload setting file parsing ParseFromLeAudioOffloadSettingFile() fails when `GetLeAudioCodecCapabilities()` was already called in the past and `leAudioCodecCapabilities` vector is already populated. That makes some of the VTS tests fail on `IsOffloadOutputProviderInfoSupported()` and just return and PASS without actually checking enything. The doubtful checks check variables set at parsed content verification, and should not prevent us from parsing the file again. Bug: 319090769 Test: atest VtsHalBluetoothAudioTargetTest Change-Id: Iab6235b5d265bb254ae6075b8c32d0eae0fc1829 --- .../utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp b/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp index 99dea84a6c..473777c945 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp @@ -43,9 +43,6 @@ static bool isInvalidFileContent = false; std::optional BluetoothLeAudioCodecsProvider::ParseFromLeAudioOffloadSettingFile() { - if (!leAudioCodecCapabilities.empty() || isInvalidFileContent) { - return std::nullopt; - } auto le_audio_offload_setting = setting::readLeAudioOffloadSetting(kLeAudioCodecCapabilitiesFile); if (!le_audio_offload_setting.has_value()) { -- GitLab From 099c876e9c8ada9c7679ece18cd209b81b05501e Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Wed, 20 Dec 2023 17:19:19 +0000 Subject: [PATCH 135/418] Secretkeeper: move VTS to rdroidtest Use rdroidtest for running tests as it now supports parameterized tests (aosp/2885268) and has an attribute macro (aosp/2890086). Also rustfmt. Test: VtsSecretkeeperTargetTest Change-Id: I9570a7f33a6ff7dbf7cb7238fa3770dedb990e8c --- security/secretkeeper/aidl/vts/Android.bp | 4 +- .../aidl/vts/secretkeeper_test_client.rs | 237 ++++++------------ 2 files changed, 79 insertions(+), 162 deletions(-) diff --git a/security/secretkeeper/aidl/vts/Android.bp b/security/secretkeeper/aidl/vts/Android.bp index 7de9d6a379..1e01149086 100644 --- a/security/secretkeeper/aidl/vts/Android.bp +++ b/security/secretkeeper/aidl/vts/Android.bp @@ -21,6 +21,9 @@ package { rust_test { name: "VtsSecretkeeperTargetTest", srcs: ["secretkeeper_test_client.rs"], + defaults: [ + "rdroidtest.defaults", + ], test_suites: [ "general-tests", "vts", @@ -38,7 +41,6 @@ rust_test { "libbinder_rs", "libcoset", "liblog_rust", - "liblogger", ], require_root: true, } diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index c457d248ca..eeef6fc000 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -16,14 +16,13 @@ #![cfg(test)] +use rdroidtest_macro::{ignore_if, rdroidtest}; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::SecretId::SecretId; use authgraph_vts_test as ag_vts; use authgraph_boringssl as boring; use authgraph_core::key; -use binder::StatusCode; use coset::{CborSerializable, CoseEncrypt0}; -use log::{info, warn}; use secretkeeper_client::SkSession; use secretkeeper_core::cipher; use secretkeeper_comm::data_types::error::SecretkeeperError; @@ -36,7 +35,6 @@ use secretkeeper_comm::data_types::response::Response; use secretkeeper_comm::data_types::packet::{ResponsePacket, ResponseType}; const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; -const SECRETKEEPER_INSTANCES: [&'static str; 2] = ["default", "nonsecure"]; const CURRENT_VERSION: u64 = 1; // TODO(b/291238565): This will change once libdice_policy switches to Explicit-key DiceCertChain @@ -72,58 +70,23 @@ const SECRET_EXAMPLE: Secret = Secret([ 0x06, 0xAC, 0x36, 0x8B, 0x3C, 0x95, 0x50, 0x16, 0x67, 0x71, 0x65, 0x26, 0xEB, 0xD0, 0xC3, 0x98, ]); -fn get_connection() -> Option<(binder::Strong, String)> { - // Initialize logging (which is OK to call multiple times). - logger::init(logger::Config::default().with_min_level(log::Level::Debug)); - +fn get_instances() -> Vec<(String, String)> { // Determine which instances are available. - let available = binder::get_declared_instances(SECRETKEEPER_SERVICE).unwrap_or_default(); - - // TODO: replace this with a parameterized set of tests that run for each available instance of - // ISecretkeeper (rather than having a fixed set of instance names to look for). - for instance in &SECRETKEEPER_INSTANCES { - if available.iter().find(|s| s == instance).is_none() { - // Skip undeclared instances. - continue; - } - let name = format!("{SECRETKEEPER_SERVICE}/{instance}"); - match binder::get_interface(&name) { - Ok(sk) => { - info!("Running test against /{instance}"); - return Some((sk, name)); - } - Err(StatusCode::NAME_NOT_FOUND) => { - info!("No /{instance} instance of ISecretkeeper present"); - } - Err(e) => { - panic!( - "unexpected error while fetching connection to Secretkeeper {:?}", - e - ); - } - } - } - info!("no Secretkeeper instances in {SECRETKEEPER_INSTANCES:?} are declared and present"); - None + binder::get_declared_instances(SECRETKEEPER_SERVICE) + .unwrap_or_default() + .into_iter() + .map(|v| (v.clone(), v)) + .collect() } -/// Macro to perform test setup. Invokes `return` if no Secretkeeper instance available. -macro_rules! setup_client { - {} => { - match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - } - } +fn get_connection(instance: &str) -> binder::Strong { + let name = format!("{SECRETKEEPER_SERVICE}/{instance}"); + binder::get_interface(&name).unwrap() } /// Secretkeeper client information. struct SkClient { sk: binder::Strong, - name: String, session: SkSession, } @@ -135,13 +98,9 @@ impl Drop for SkClient { } impl SkClient { - fn new() -> Option { - let (sk, name) = get_connection()?; - Some(Self { - sk: sk.clone(), - name, - session: SkSession::new(sk).unwrap(), - }) + fn new(instance: &str) -> Self { + let sk = get_connection(instance); + Self { sk: sk.clone(), session: SkSession::new(sk).unwrap() } } /// This method is wrapper that use `SkSession::secret_management_request` which handles @@ -172,10 +131,7 @@ impl SkClient { .unwrap(); // Binder call! - let response_bytes = self - .sk - .processSecretManagementRequest(&request_bytes) - .unwrap(); + let response_bytes = self.sk.processSecretManagementRequest(&request_bytes).unwrap(); let response_encrypt0 = CoseEncrypt0::from_slice(&response_bytes).unwrap(); cipher::decrypt_message( @@ -199,20 +155,14 @@ impl SkClient { let store_response = self.secret_management_request(&store_request); let store_response = ResponsePacket::from_slice(&store_response).unwrap(); - assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success - ); + assert_eq!(store_response.response_type().unwrap(), ResponseType::Success); // Really just checking that the response is indeed StoreSecretResponse let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); } /// Helper method to get a secret. fn get(&mut self, id: &Id) -> Option { - let get_request = GetSecretRequest { - id: id.clone(), - updated_sealing_policy: None, - }; + let get_request = GetSecretRequest { id: id.clone(), updated_sealing_policy: None }; let get_request = get_request.serialize_to_packet().to_vec().unwrap(); let get_response = self.secret_management_request(&get_request); @@ -231,10 +181,7 @@ impl SkClient { /// Helper method to delete secrets. fn delete(&self, ids: &[&Id]) { - let ids: Vec = ids - .iter() - .map(|id| SecretId { id: id.0 }) - .collect(); + let ids: Vec = ids.iter().map(|id| SecretId { id: id.0 }).collect(); self.sk.deleteIds(&ids).unwrap(); } @@ -251,47 +198,29 @@ fn authgraph_key_exchange(sk: binder::Strong) -> ([key::AesKe ag_vts::sink::test_mainline(&mut source, sink) } -/// Test that the AuthGraph instance returned by SecretKeeper correctly performs -/// mainline key exchange against a local source implementation. -#[test] -fn authgraph_mainline() { - let (sk, _) = match get_connection() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +// Test that the AuthGraph instance returned by SecretKeeper correctly performs +// mainline key exchange against a local source implementation. +#[rdroidtest(get_instances())] +fn authgraph_mainline(instance: String) { + let sk = get_connection(&instance); let (_aes_keys, _session_id) = authgraph_key_exchange(sk); } -/// Test that the AuthGraph instance returned by SecretKeeper correctly rejects -/// a corrupted session ID signature. -#[test] -fn authgraph_corrupt_sig() { - let (sk, _) = match get_connection() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +// Test that the AuthGraph instance returned by SecretKeeper correctly rejects +// a corrupted session ID signature. +#[rdroidtest(get_instances())] +fn authgraph_corrupt_sig(instance: String) { + let sk = get_connection(&instance); let sink = sk.getAuthGraphKe().expect("failed to get AuthGraph"); let mut source = ag_vts::test_ag_participant().expect("failed to create a local source"); ag_vts::sink::test_corrupt_sig(&mut source, sink); } -/// Test that the AuthGraph instance returned by SecretKeeper correctly detects -/// when corrupted keys are returned to it. -#[test] -fn authgraph_corrupt_keys() { - let (sk, _) = match get_connection() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +// Test that the AuthGraph instance returned by SecretKeeper correctly detects +// when corrupted keys are returned to it. +#[rdroidtest(get_instances())] +fn authgraph_corrupt_keys(instance: String) { + let sk = get_connection(&instance); let sink = sk.getAuthGraphKe().expect("failed to get AuthGraph"); let mut source = ag_vts::test_ag_participant().expect("failed to create a local source"); ag_vts::sink::test_corrupt_keys(&mut source, sink); @@ -300,9 +229,9 @@ fn authgraph_corrupt_keys() { // TODO(b/2797757): Add tests that match different HAL defined objects (like request/response) // with expected bytes. -#[test] -fn secret_management_get_version() { - let mut sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secret_management_get_version(instance: String) { + let mut sk_client = SkClient::new(&instance); let request = GetVersionRequest {}; let request_packet = request.serialize_to_packet(); @@ -311,18 +240,15 @@ fn secret_management_get_version() { let response_bytes = sk_client.secret_management_request(&request_bytes); let response_packet = ResponsePacket::from_slice(&response_bytes).unwrap(); - assert_eq!( - response_packet.response_type().unwrap(), - ResponseType::Success - ); + assert_eq!(response_packet.response_type().unwrap(), ResponseType::Success); let get_version_response = *GetVersionResponse::deserialize_from_packet(response_packet).unwrap(); assert_eq!(get_version_response.version, CURRENT_VERSION); } -#[test] -fn secret_management_malformed_request() { - let mut sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secret_management_malformed_request(instance: String) { + let mut sk_client = SkClient::new(&instance); let request = GetVersionRequest {}; let request_packet = request.serialize_to_packet(); @@ -334,17 +260,14 @@ fn secret_management_malformed_request() { let response_bytes = sk_client.secret_management_request(&request_bytes); let response_packet = ResponsePacket::from_slice(&response_bytes).unwrap(); - assert_eq!( - response_packet.response_type().unwrap(), - ResponseType::Error - ); + assert_eq!(response_packet.response_type().unwrap(), ResponseType::Error); let err = *SecretkeeperError::deserialize_from_packet(response_packet).unwrap(); assert_eq!(err, SecretkeeperError::RequestMalformed); } -#[test] -fn secret_management_store_get_secret_found() { - let mut sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secret_management_store_get_secret_found(instance: String) { + let mut sk_client = SkClient::new(&instance); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); @@ -352,9 +275,9 @@ fn secret_management_store_get_secret_found() { assert_eq!(sk_client.get(&ID_EXAMPLE), Some(SECRET_EXAMPLE)); } -#[test] -fn secret_management_store_get_secret_not_found() { - let mut sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secret_management_store_get_secret_not_found(instance: String) { + let mut sk_client = SkClient::new(&instance); // Store a secret (corresponding to an id). sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); @@ -363,9 +286,9 @@ fn secret_management_store_get_secret_not_found() { assert_eq!(sk_client.get(&ID_NOT_STORED), None); } -#[test] -fn secretkeeper_store_delete_ids() { - let mut sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secretkeeper_store_delete_ids(instance: String) { + let mut sk_client = SkClient::new(&instance); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); @@ -380,9 +303,9 @@ fn secretkeeper_store_delete_ids() { assert_eq!(sk_client.get(&ID_EXAMPLE_2), None); } -#[test] -fn secretkeeper_store_delete_multiple_ids() { - let mut sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secretkeeper_store_delete_multiple_ids(instance: String) { + let mut sk_client = SkClient::new(&instance); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); @@ -391,10 +314,9 @@ fn secretkeeper_store_delete_multiple_ids() { assert_eq!(sk_client.get(&ID_EXAMPLE), None); assert_eq!(sk_client.get(&ID_EXAMPLE_2), None); } - -#[test] -fn secretkeeper_store_delete_duplicate_ids() { - let mut sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secretkeeper_store_delete_duplicate_ids(instance: String) { + let mut sk_client = SkClient::new(&instance); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); @@ -405,9 +327,9 @@ fn secretkeeper_store_delete_duplicate_ids() { assert_eq!(sk_client.get(&ID_EXAMPLE_2), Some(SECRET_EXAMPLE)); } -#[test] -fn secretkeeper_store_delete_nonexistent() { - let mut sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secretkeeper_store_delete_nonexistent(instance: String) { + let mut sk_client = SkClient::new(&instance); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); @@ -418,16 +340,11 @@ fn secretkeeper_store_delete_nonexistent() { assert_eq!(sk_client.get(&ID_NOT_STORED), None); } -#[test] -fn secretkeeper_store_delete_all() { - let mut sk_client = setup_client!(); - - if sk_client.name != "nonsecure" { - // Don't run deleteAll() on a secure device, as it might affect - // real secrets. - warn!("skipping deleteAll test due to real impl"); - return; - } +// Don't run deleteAll() on a secure device, as it might affect real secrets. +#[rdroidtest(get_instances())] +#[ignore_if(|p| p != "nonsecure")] +fn secretkeeper_store_delete_all(instance: String) { + let mut sk_client = SkClient::new(&instance); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); @@ -450,9 +367,9 @@ fn secretkeeper_store_delete_all() { // This test checks that Secretkeeper uses the expected [`RequestSeqNum`] as aad while // decrypting requests and the responses are encrypted with correct [`ResponseSeqNum`] for the // first few messages. -#[test] -fn secret_management_replay_protection_seq_num() { - let sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secret_management_replay_protection_seq_num(instance: String) { + let sk_client = SkClient::new(&instance); // Construct encoded request packets for the test let (req_1, req_2, req_3) = construct_secret_management_requests(); @@ -484,9 +401,9 @@ fn secret_management_replay_protection_seq_num() { // This test checks that Secretkeeper uses fresh [`RequestSeqNum`] & [`ResponseSeqNum`] // for new sessions. -#[test] -fn secret_management_replay_protection_seq_num_per_session() { - let sk_client = setup_client!(); +#[rdroidtest(get_instances())] +fn secret_management_replay_protection_seq_num_per_session(instance: String) { + let sk_client = SkClient::new(&instance); // Construct encoded request packets for the test let (req_1, _, _) = construct_secret_management_requests(); @@ -502,7 +419,7 @@ fn secret_management_replay_protection_seq_num_per_session() { assert_eq!(res.response_type().unwrap(), ResponseType::Success); // Start another session - let sk_client_diff = setup_client!(); + let sk_client_diff = SkClient::new(&instance); // Check first request/response is with seq_0 is successful let res = ResponsePacket::from_slice( &sk_client_diff.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0), @@ -512,12 +429,11 @@ fn secret_management_replay_protection_seq_num_per_session() { } // This test checks that Secretkeeper rejects requests with out of order [`RequestSeqNum`] -#[test] // TODO(b/317416663): This test fails, when HAL is not present in the device. Refactor to fix this. +#[rdroidtest(get_instances())] #[ignore] -#[should_panic] -fn secret_management_replay_protection_out_of_seq_req_not_accepted() { - let sk_client = setup_client!(); +fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: String) { + let sk_client = SkClient::new(&instance); // Construct encoded request packets for the test let (req_1, req_2, _) = construct_secret_management_requests(); @@ -543,10 +459,9 @@ fn construct_secret_management_requests() -> (Vec, Vec, Vec) { sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), }; let store_request = store_request.serialize_to_packet().to_vec().unwrap(); - let get_request = GetSecretRequest { - id: ID_EXAMPLE, - updated_sealing_policy: None, - }; + let get_request = GetSecretRequest { id: ID_EXAMPLE, updated_sealing_policy: None }; let get_request = get_request.serialize_to_packet().to_vec().unwrap(); (version_request, store_request, get_request) } + +rdroidtest::test_main!(); -- GitLab From f23a08a81aaa7e2fb5fffa97f54c665356cf2889 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 27 Dec 2023 15:27:22 -0800 Subject: [PATCH 136/418] Add dump sub option to FakeVehicleHardware. This CL also changes several property ID output to property name for better debugging. Test: adb shell dumpsys android.hardware.automotive.vehicle.IVehicle/default --dumpSub Bug: 316208952 Change-Id: I127ab82b20dec58a8f5fad90ff2a0ec4cb7d1feb --- .../hardware/include/FakeVehicleHardware.h | 1 + .../hardware/src/FakeVehicleHardware.cpp | 59 ++++++++++++++----- .../hardware/test/FakeVehicleHardwareTest.cpp | 7 +-- 3 files changed, 47 insertions(+), 20 deletions(-) diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h index 96eff0eef2..1153217ee2 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h @@ -256,6 +256,7 @@ class FakeVehicleHardware : public IVehicleHardware { std::string dumpSaveProperty(const std::vector& options); std::string dumpRestoreProperty(const std::vector& options); std::string dumpInjectEvent(const std::vector& options); + std::string dumpSubscriptions(); template android::base::Result safelyParseInt(int index, const std::string& s) { diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp index d95ffd6d82..bcc765cf96 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp @@ -51,6 +51,8 @@ namespace fake { namespace { +#define PROP_ID_TO_CSTR(A) (propIdToString(A).c_str()) + using ::aidl::android::hardware::automotive::vehicle::CruiseControlCommand; using ::aidl::android::hardware::automotive::vehicle::CruiseControlType; using ::aidl::android::hardware::automotive::vehicle::DriverDistractionState; @@ -725,7 +727,7 @@ std::optional FakeVehicleHardware::getSyncedAreaIdIfHvacDualOn( FakeVehicleHardware::ValueResultType FakeVehicleHardware::getUserHalProp( const VehiclePropValue& value) const { auto propId = value.prop; - ALOGI("get(): getting value for prop %d from User HAL", propId); + ALOGI("get(): getting value for prop %s from User HAL", PROP_ID_TO_CSTR(propId)); auto result = mFakeUserHal->onGetProperty(value); if (!result.ok()) { @@ -1088,7 +1090,7 @@ StatusCode FakeVehicleHardware::setValues(std::shared_ptr& requests) { for (auto& request : requests) { if (FAKE_VEHICLEHARDWARE_DEBUG) { - ALOGD("Set value for property ID: %d", request.value.prop); + ALOGD("Set value for property ID: %s", PROP_ID_TO_CSTR(request.value.prop)); } // In a real VHAL implementation, you could either send the setValue request to vehicle bus @@ -1109,9 +1111,9 @@ VhalResult FakeVehicleHardware::setValue(const VehiclePropValue& value) { auto setSpecialValueResult = maybeSetSpecialValue(value, &isSpecialValue); if (isSpecialValue) { if (!setSpecialValueResult.ok()) { - return StatusError(getErrorCode(setSpecialValueResult)) - << StringPrintf("failed to set special value for property ID: %d, error: %s", - value.prop, getErrorMsg(setSpecialValueResult).c_str()); + return StatusError(getErrorCode(setSpecialValueResult)) << StringPrintf( + "failed to set special value for property ID: %s, error: %s", + PROP_ID_TO_CSTR(value.prop), getErrorMsg(setSpecialValueResult).c_str()); } return {}; } @@ -1150,7 +1152,7 @@ StatusCode FakeVehicleHardware::getValues(std::shared_ptr& requests) const { for (auto& request : requests) { if (FAKE_VEHICLEHARDWARE_DEBUG) { - ALOGD("getValues(%d)", request.prop.prop); + ALOGD("getValues(%s)", PROP_ID_TO_CSTR(request.prop.prop)); } // In a real VHAL implementation, you could either send the getValue request to vehicle bus @@ -1189,8 +1191,8 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::getValue( if (isSpecialValue) { if (!result.ok()) { return StatusError(getErrorCode(result)) - << StringPrintf("failed to get special value: %d, error: %s", value.prop, - getErrorMsg(result).c_str()); + << StringPrintf("failed to get special value: %s, error: %s", + PROP_ID_TO_CSTR(value.prop), getErrorMsg(result).c_str()); } else { return result; } @@ -1249,6 +1251,8 @@ DumpResult FakeVehicleHardware::dump(const std::vector& options) { mAddExtraTestVendorConfigs = false; result.refreshPropertyConfigs = true; result.buffer = "successfully restored vendor configs"; + } else if (EqualsIgnoreCase(option, "--dumpSub")) { + result.buffer = dumpSubscriptions(); } else { result.buffer = StringPrintf("Invalid option: %s\n", option.c_str()); } @@ -1380,7 +1384,8 @@ std::string FakeVehicleHardware::genFakeDataCommand(const std::vectorunregisterGenerator(propId)) { return "Linear event generator stopped successfully"; } - return StringPrintf("No linear event generator found for property: %d", propId); + return StringPrintf("No linear event generator found for property: %s", + PROP_ID_TO_CSTR(propId)); } else if (command == "--startjson") { // --genfakedata --startjson --path path repetition // or @@ -1650,6 +1655,26 @@ void FakeVehicleHardware::eventFromVehicleBus(const VehiclePropValue& value) { mServerSidePropStore->writeValue(mValuePool->obtain(value)); } +std::string FakeVehicleHardware::dumpSubscriptions() { + std::scoped_lock lockGuard(mLock); + std::string result = "Subscriptions: \n"; + for (const auto& [interval, actionForInterval] : mActionByIntervalInNanos) { + for (const auto& propIdAreaId : actionForInterval.propIdAreaIdsToRefresh) { + const auto& refreshInfo = mRefreshInfoByPropIdAreaId[propIdAreaId]; + bool vur = (refreshInfo.eventMode == VehiclePropertyStore::EventMode::ON_VALUE_CHANGE); + float sampleRateHz = 1'000'000'000. / refreshInfo.intervalInNanos; + result += StringPrintf("Continuous{property: %s, areaId: %d, rate: %lf hz, vur: %b}\n", + PROP_ID_TO_CSTR(propIdAreaId.propId), propIdAreaId.areaId, + sampleRateHz, vur); + } + } + for (const auto& propIdAreaId : mSubOnChangePropIdAreaIds) { + result += StringPrintf("OnChange{property: %s, areaId: %d}\n", + PROP_ID_TO_CSTR(propIdAreaId.propId), propIdAreaId.areaId); + } + return result; +} + std::string FakeVehicleHardware::dumpHelp() { return "Usage: \n\n" "[no args]: dumps (id and value) all supported properties \n" @@ -1717,8 +1742,9 @@ std::string FakeVehicleHardware::dumpOnePropertyById(int32_t propId, int32_t are result = mServerSidePropStore->readValue(value); } if (!result.ok()) { - return StringPrintf("failed to read property value: %d, error: %s, code: %d\n", propId, - getErrorMsg(result).c_str(), getIntErrorCode(result)); + return StringPrintf("failed to read property value: %s, error: %s, code: %d\n", + PROP_ID_TO_CSTR(propId), getErrorMsg(result).c_str(), + getIntErrorCode(result)); } else { return result.value()->toString() + "\n"; @@ -1733,7 +1759,7 @@ std::string FakeVehicleHardware::dumpListProperties() { int rowNumber = 1; std::string msg = StringPrintf("listing %zu properties\n", configs.size()); for (const auto& config : configs) { - msg += StringPrintf("%d: %d\n", rowNumber++, config.prop); + msg += StringPrintf("%d: %s\n", rowNumber++, PROP_ID_TO_CSTR(config.prop)); } return msg; } @@ -1766,7 +1792,7 @@ std::string FakeVehicleHardware::dumpSpecificProperty(const std::vectorgetPropConfig(prop); if (!result.ok()) { - msg += StringPrintf("No property %d\n", prop); + msg += StringPrintf("No property %s\n", PROP_ID_TO_CSTR(prop)); continue; } msg += dumpOnePropertyByConfig(rowNumber++, result.value()); @@ -1952,8 +1978,9 @@ std::string FakeVehicleHardware::dumpGetPropertyWithArg(const std::vectortoString().c_str()); } @@ -2046,7 +2073,7 @@ std::string FakeVehicleHardware::dumpInjectEvent(const std::vector& eventFromVehicleBus(prop); - return StringPrintf("Event for property: %d injected", prop.prop); + return StringPrintf("Event for property: %s injected", PROP_ID_TO_CSTR(prop.prop)); } StatusCode FakeVehicleHardware::checkHealth() { diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp index 909c89dab4..90643aa5e3 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp @@ -2617,8 +2617,8 @@ TEST_F(FakeVehicleHardwareTest, testDumpSpecificPropertiesInvalidProp) { DumpResult result = getHardware()->dump(options); ASSERT_FALSE(result.callerShouldDumpState); ASSERT_NE(result.buffer, ""); - ASSERT_THAT(result.buffer, ContainsRegex(StringPrintf("1:.*prop: %s.*\nNo property %d\n", - prop1.c_str(), INVALID_PROP_ID))); + ASSERT_THAT(result.buffer, ContainsRegex(StringPrintf("1:.*prop: %s.*\nNo property INVALID\n", + prop1.c_str()))); } TEST_F(FakeVehicleHardwareTest, testDumpSpecificPropertiesNoArg) { @@ -2701,8 +2701,7 @@ TEST_F(FakeVehicleHardwareTest, testDumpInjectEvent) { {"--inject-event", propIdStr, "-i", "1234", "-t", std::to_string(timestamp)}); ASSERT_FALSE(result.callerShouldDumpState); - ASSERT_THAT(result.buffer, - ContainsRegex(StringPrintf("Event for property: %d injected", prop))); + ASSERT_THAT(result.buffer, ContainsRegex("Event for property: ENGINE_OIL_LEVEL injected")); ASSERT_TRUE(waitForChangedProperties(prop, 0, /*count=*/1, milliseconds(1000))) << "No changed event received for injected event from vehicle bus"; auto events = getChangedProperties(); -- GitLab From 5189925e1d3c8b3fd6e40f7db8cd8304075be8af Mon Sep 17 00:00:00 2001 From: Peiyong Lin Date: Mon, 8 Jan 2024 23:46:37 +0000 Subject: [PATCH 137/418] Add APP SessionTag Add a SessionTag enum APP to distinguish hint sessions created by apps. Bug: b/274929700 Test: atest VtsHalPowerTargetTest Change-Id: I85263dc6b1b89f73f79f1a7696d37bf7fa2556ad --- .../current/android/hardware/power/SessionTag.aidl | 1 + power/aidl/android/hardware/power/SessionTag.aidl | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl index 80848a41cb..862fbc5a07 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl @@ -38,4 +38,5 @@ enum SessionTag { SURFACEFLINGER, HWUI, GAME, + APP, } diff --git a/power/aidl/android/hardware/power/SessionTag.aidl b/power/aidl/android/hardware/power/SessionTag.aidl index c1d48e4318..27bf3e3c67 100644 --- a/power/aidl/android/hardware/power/SessionTag.aidl +++ b/power/aidl/android/hardware/power/SessionTag.aidl @@ -30,12 +30,20 @@ enum SessionTag { SURFACEFLINGER, /** - * This tag is used to mark HWUI hint sessions. + * This tag is used to mark hint sessions created by HWUI. */ HWUI, /** - * This tag is used to mark Game hint sessions. + * This tag is used to mark hint sessions created by applications that are + * categorized as games. */ GAME, + + /** + * This tag is used to mark the hint session is created by the application. + * If an applications is categorized as game, then GAME should be used + * instead. + */ + APP, } -- GitLab From 143fce5c50760f590bd80156514a144a61651325 Mon Sep 17 00:00:00 2001 From: Xiang Wang Date: Mon, 8 Jan 2024 16:46:05 -0800 Subject: [PATCH 138/418] Add GPU_LOAD_RESET hint Bug: 284324521 Test: n/a Change-Id: I4ef7cf5b6368f7aacf7cf83058b1afa219e6822a --- .../current/android/hardware/power/SessionHint.aidl | 1 + power/aidl/android/hardware/power/SessionHint.aidl | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionHint.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionHint.aidl index cb377191bd..df316189a4 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionHint.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionHint.aidl @@ -41,4 +41,5 @@ enum SessionHint { POWER_EFFICIENCY = 4, GPU_LOAD_UP = 5, GPU_LOAD_DOWN = 6, + GPU_LOAD_RESET = 7, } diff --git a/power/aidl/android/hardware/power/SessionHint.aidl b/power/aidl/android/hardware/power/SessionHint.aidl index ae91061c60..1a8c505574 100644 --- a/power/aidl/android/hardware/power/SessionHint.aidl +++ b/power/aidl/android/hardware/power/SessionHint.aidl @@ -65,4 +65,11 @@ enum SessionHint { * this hint session can reduce GPU resources and still meet the target duration. */ GPU_LOAD_DOWN = 6, + + /** + * This hint indicates an upcoming GPU workload that is completely changed and + * unknown. It means that the hint session should reset GPU resources to a known + * baseline to prepare for an arbitrary load, and must wake up if inactive. + */ + GPU_LOAD_RESET = 7, } -- GitLab From 82f17d9ed4d10106c3aad700815f000806edb5bf Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Mon, 11 Dec 2023 15:03:07 -0800 Subject: [PATCH 139/418] Fix timeout issue for bcradio worker thread Accessed mIsTerminating inside the same lock as what is used in while loop in worker thread class of broadcast radio HAL utils lib. This fixed the race condition that mIsTerminating is accessed as true in threadLoop while the destructor is setting mIsTerminating as false, which causes the thread waits forever for lock after lock is released in the desctructor. Bug: 314100017 Test: atest VtsHalBroadcastradioAidlTargetTest WorkerThreadTest Change-Id: I885e1487ac39525fc2d1ee2134d24409264ca0fc --- broadcastradio/common/tests/Android.bp | 3 +++ broadcastradio/common/utils/WorkerThread.cpp | 5 ++++- .../utils/include/broadcastradio-utils/WorkerThread.h | 8 +++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/broadcastradio/common/tests/Android.bp b/broadcastradio/common/tests/Android.bp index 0a6a3a27d0..1ea4e8584b 100644 --- a/broadcastradio/common/tests/Android.bp +++ b/broadcastradio/common/tests/Android.bp @@ -86,4 +86,7 @@ cc_test { ], static_libs: ["android.hardware.broadcastradio@common-utils-lib"], test_suites: ["general-tests"], + shared_libs: [ + "libbase", + ], } diff --git a/broadcastradio/common/utils/WorkerThread.cpp b/broadcastradio/common/utils/WorkerThread.cpp index 43fd04a89a..5c8e59c03f 100644 --- a/broadcastradio/common/utils/WorkerThread.cpp +++ b/broadcastradio/common/utils/WorkerThread.cpp @@ -69,8 +69,11 @@ void WorkerThread::cancelAll() { } void WorkerThread::threadLoop() { - while (!mIsTerminating) { + while (true) { unique_lock lk(mMut); + if (mIsTerminating) { + return; + } if (mTasks.empty()) { mCond.wait(lk); continue; diff --git a/broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h b/broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h index 457b57e403..e381f5a132 100644 --- a/broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h +++ b/broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h @@ -20,6 +20,8 @@ #include #include +#include + namespace android { class WorkerThread { @@ -40,11 +42,11 @@ class WorkerThread { }; friend bool operator<(const Task& lhs, const Task& rhs); - std::atomic mIsTerminating; std::mutex mMut; - std::condition_variable mCond; + bool mIsTerminating GUARDED_BY(mMut); + std::condition_variable mCond GUARDED_BY(mMut); std::thread mThread; - std::priority_queue mTasks; + std::priority_queue mTasks GUARDED_BY(mMut); void threadLoop(); }; -- GitLab From 1ccbbd9262eee445a11e811a4bf228685facc134 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 5 Jan 2024 14:18:48 -0800 Subject: [PATCH 140/418] Update metadata doc for AIDL 2 bcradio HAL Change "must be up to" to "should be <=" in Metadata of broadcast radio HAL definition so that the format for metadata types is clear. Bug: 318763229 Test: m -j Change-Id: Ibd54988587170f2c20f7770be0f8376d9be2d3b2 --- .../aidl/android/hardware/broadcastradio/Metadata.aidl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/broadcastradio/aidl/android/hardware/broadcastradio/Metadata.aidl b/broadcastradio/aidl/android/hardware/broadcastradio/Metadata.aidl index 0ce967f009..f1800dca0a 100644 --- a/broadcastradio/aidl/android/hardware/broadcastradio/Metadata.aidl +++ b/broadcastradio/aidl/android/hardware/broadcastradio/Metadata.aidl @@ -86,7 +86,7 @@ union Metadata { /** * DAB ensemble name abbreviated (string). * - *

Note: The string must be up to 8 characters long. + *

Note: The string should be <= 8 characters. * *

Note: If the short variant is present, the long ({@link Metadata#dabEnsembleName}) * one must be present as well. @@ -101,7 +101,7 @@ union Metadata { /** * DAB service name abbreviated (string) * - *

Note: The string must be up to 8 characters long. + *

Note: The string should be <= 8 characters. */ String dabServiceNameShort; @@ -113,7 +113,7 @@ union Metadata { /** * DAB component name abbreviated (string) * - *

Note: The string must be up to 8 characters long. + *

Note: The string should be <= 8 characters. */ String dabComponentNameShort; @@ -161,7 +161,7 @@ union Metadata { /** * HD short station name or HD universal short station name * - *

It can be up to 12 characters (see SY_IDD_1020s for more info). + *

It can be <= 12 characters (see SY_IDD_1020s for more info). */ String hdStationNameShort; -- GitLab From 050b2ce1cf1bb01610b270deeb8908e5b3e2d8dc Mon Sep 17 00:00:00 2001 From: Changyeon Jo Date: Mon, 8 Jan 2024 16:18:24 -0800 Subject: [PATCH 141/418] Handle logical camera devices properly - HighPriorityCameraClient test case is not executed against logical camera devices because clients are not allowed to change camera parameters via logical cameras. - CameraStreamExternalBuffering test case closes logical camera device explicitly, to avoid any influence on following test scenarios. Bug: 319165229 Test: atest VtsHalEvsTargetTest Change-Id: I734d701a2056ab84fe74179b083c3f6c5463447b --- .../evs/aidl/vts/VtsHalEvsTargetTest.cpp | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp b/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp index 3419b3c98d..477de31478 100644 --- a/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp +++ b/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp @@ -1399,6 +1399,12 @@ TEST_P(EvsAidlTest, HighPriorityCameraClient) { // Test each reported camera for (auto&& cam : mCameraInfo) { + bool isLogicalCam = false; + if (getPhysicalCameraIds(cam.id, isLogicalCam); isLogicalCam) { + LOG(INFO) << "Skip a logical device, " << cam.id; + continue; + } + // Request available display IDs uint8_t targetDisplayId = 0; std::vector displayIds; @@ -1973,6 +1979,13 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) { // Test each reported camera for (auto&& cam : mCameraInfo) { + bool isLogicalCam = false; + getPhysicalCameraIds(cam.id, isLogicalCam); + if (isLogicalCam) { + LOG(INFO) << "Skip a logical device, " << cam.id; + continue; + } + // Read a target resolution from the metadata Stream targetCfg = getFirstStreamConfiguration( reinterpret_cast(cam.metadata.data())); @@ -2014,9 +2027,6 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) { } } - bool isLogicalCam = false; - getPhysicalCameraIds(cam.id, isLogicalCam); - std::shared_ptr pCam; ASSERT_TRUE(mEnumerator->openCamera(cam.id, targetCfg, &pCam).isOk()); EXPECT_NE(pCam, nullptr); @@ -2027,11 +2037,6 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) { // Request to import buffers int delta = 0; auto status = pCam->importExternalBuffers(buffers, &delta); - if (isLogicalCam) { - ASSERT_FALSE(status.isOk()); - continue; - } - ASSERT_TRUE(status.isOk()); EXPECT_GE(delta, kBuffersToHold); -- GitLab From a3d4847794daab80adb1f189294d6cdd0bf895aa Mon Sep 17 00:00:00 2001 From: Shraddha Basantwani Date: Tue, 9 Jan 2024 10:34:04 +0000 Subject: [PATCH 142/418] Audio Effect : Add checks to validate the channel count Bug: 302036943 Test: atest audioeffect_analysis Change-Id: Ic64394e646fa23e02e499c2f01ef3bd4490450d2 --- audio/aidl/default/include/effect-impl/EffectContext.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/audio/aidl/default/include/effect-impl/EffectContext.h b/audio/aidl/default/include/effect-impl/EffectContext.h index 698e7a50ce..89d0c7cf3c 100644 --- a/audio/aidl/default/include/effect-impl/EffectContext.h +++ b/audio/aidl/default/include/effect-impl/EffectContext.h @@ -46,6 +46,14 @@ class EffectContext { LOG_ALWAYS_FATAL_IF(output.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT, "outputFormatNotFloat"); + + size_t inputChannelCount = + ::aidl::android::hardware::audio::common::getChannelCount(input.base.channelMask); + LOG_ALWAYS_FATAL_IF(inputChannelCount == 0, "inputChannelCountNotValid"); + size_t outputChannelCount = + ::aidl::android::hardware::audio::common::getChannelCount(output.base.channelMask); + LOG_ALWAYS_FATAL_IF(outputChannelCount == 0, "outputChannelCountNotValid"); + mInputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( input.base.format, input.base.channelMask); mOutputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( -- GitLab From 94f4b20dcf9d0d8d382c3aeac736a0236d7e2b21 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Tue, 9 Jan 2024 11:43:45 -0500 Subject: [PATCH 143/418] Avoid crashing when failing graphics VTS When the tests fail, ensure we continue running so we can run the remainder of the tests. Bug: 304976052 Test: atest GraphicsComposerAidlCommandTest Change-Id: Ia6ab2bbd284bb7eddeb49164dcbe7285829ad9c3 --- graphics/composer/aidl/vts/VtsComposerClient.cpp | 3 +++ .../composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp | 1 + .../composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp | 1 + 3 files changed, 5 insertions(+) diff --git a/graphics/composer/aidl/vts/VtsComposerClient.cpp b/graphics/composer/aidl/vts/VtsComposerClient.cpp index 2c24bfb8f5..89ba2e63d1 100644 --- a/graphics/composer/aidl/vts/VtsComposerClient.cpp +++ b/graphics/composer/aidl/vts/VtsComposerClient.cpp @@ -68,6 +68,9 @@ bool VtsComposerClient::tearDown(ComposerClientWriter* writer) { std::pair VtsComposerClient::getInterfaceVersion() const { int32_t version = 1; + if (!mComposerClient) { + return {ScopedAStatus{nullptr}, version}; + } auto status = mComposerClient->getInterfaceVersion(&version); return {std::move(status), version}; } diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp index 164e6d5cab..3f82925455 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp @@ -85,6 +85,7 @@ class GraphicsCompositionTestBase : public ::testing::Test { } void TearDown() override { + ASSERT_FALSE(mDisplays.empty()); ASSERT_TRUE(mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::OFF).isOk()); ASSERT_TRUE(mComposerClient->tearDown(mWriter.get())); mComposerClient.reset(); diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp index 5ff420a05b..311164743f 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp @@ -1400,6 +1400,7 @@ TEST_P(GraphicsComposerAidlV3Test, NotifyExpectedPresent) { class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { protected: void TearDown() override { + ASSERT_FALSE(mDisplays.empty()); const auto errors = mReader.takeErrors(); ASSERT_TRUE(mReader.takeErrors().empty()); ASSERT_TRUE(mReader.takeChangedCompositionTypes(getPrimaryDisplayId()).empty()); -- GitLab From 388597703e49ab3494e8a530a6434b6380628212 Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Tue, 9 Jan 2024 15:12:31 +0000 Subject: [PATCH 144/418] Secretkeeper: use Ed25519 identity key Test: VtsSecretkeeperTargetTest Change-Id: I27aebb8913c34f043b7ccc7b6e23969377313e1e --- security/secretkeeper/default/Android.bp | 1 + security/secretkeeper/default/src/lib.rs | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/security/secretkeeper/default/Android.bp b/security/secretkeeper/default/Android.bp index 1d75c74e47..d8ccb63000 100644 --- a/security/secretkeeper/default/Android.bp +++ b/security/secretkeeper/default/Android.bp @@ -34,6 +34,7 @@ rust_library { "libauthgraph_core", "libauthgraph_hal", "libbinder_rs", + "libcoset", "liblog_rust", "libsecretkeeper_core_nostd", "libsecretkeeper_comm_nostd", diff --git a/security/secretkeeper/default/src/lib.rs b/security/secretkeeper/default/src/lib.rs index 412ad45ddb..eb7817c558 100644 --- a/security/secretkeeper/default/src/lib.rs +++ b/security/secretkeeper/default/src/lib.rs @@ -53,8 +53,12 @@ impl LocalTa { let mut crypto_impls = boring::crypto_trait_impls(); let storage_impl = Box::new(store::InMemoryStore::default()); let sk_ta = Rc::new(RefCell::new( - SecretkeeperTa::new(&mut crypto_impls, storage_impl) - .expect("Failed to create local Secretkeeper TA"), + SecretkeeperTa::new( + &mut crypto_impls, + storage_impl, + coset::iana::EllipticCurve::Ed25519, + ) + .expect("Failed to create local Secretkeeper TA"), )); let mut ag_ta = AuthGraphTa::new( AuthGraphParticipant::new(crypto_impls, sk_ta.clone(), MAX_OPENED_SESSIONS) -- GitLab From b87cdae8d6afed87b168d014808ed383c23e5eec Mon Sep 17 00:00:00 2001 From: Tomasz Wasilczyk Date: Tue, 9 Jan 2024 11:56:43 -0800 Subject: [PATCH 145/418] Add missing libc++ includes Bug: 175635923 Test: m MODULES-IN-hardware-interfaces-automotive-can Change-Id: I2fcc511f45d87b0ca6d80d18df2ba9f92e0155f9 --- automotive/can/1.0/default/CanSocket.h | 1 + automotive/can/1.0/default/libnetdevice/ifreqs.h | 1 + automotive/can/1.0/default/libnetdevice/libnetdevice.cpp | 2 ++ automotive/can/1.0/default/libnl++/common.cpp | 2 ++ 4 files changed, 6 insertions(+) diff --git a/automotive/can/1.0/default/CanSocket.h b/automotive/can/1.0/default/CanSocket.h index fd956b50f6..f3e8e6065f 100644 --- a/automotive/can/1.0/default/CanSocket.h +++ b/automotive/can/1.0/default/CanSocket.h @@ -22,6 +22,7 @@ #include #include +#include #include namespace android::hardware::automotive::can::V1_0::implementation { diff --git a/automotive/can/1.0/default/libnetdevice/ifreqs.h b/automotive/can/1.0/default/libnetdevice/ifreqs.h index d8d6fe0cd4..aa7030bccd 100644 --- a/automotive/can/1.0/default/libnetdevice/ifreqs.h +++ b/automotive/can/1.0/default/libnetdevice/ifreqs.h @@ -18,6 +18,7 @@ #include +#include #include namespace android::netdevice::ifreqs { diff --git a/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp b/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp index fe749f6c1f..413b4b1c54 100644 --- a/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp +++ b/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp @@ -27,6 +27,8 @@ #include #include +#include +#include #include namespace android::netdevice { diff --git a/automotive/can/1.0/default/libnl++/common.cpp b/automotive/can/1.0/default/libnl++/common.cpp index 23c2d94a6d..1287bb52f0 100644 --- a/automotive/can/1.0/default/libnl++/common.cpp +++ b/automotive/can/1.0/default/libnl++/common.cpp @@ -20,6 +20,8 @@ #include +#include + namespace android::nl { unsigned int nametoindex(const std::string& ifname) { -- GitLab From 3dc6dd2bd4ef93c9e9dcc8c101559f8bc7450ea5 Mon Sep 17 00:00:00 2001 From: Manali Bhutiyani Date: Tue, 9 Jan 2024 20:09:46 +0000 Subject: [PATCH 146/418] Update aidl documentation Bug: 290685621 Test: N/A Change-Id: I1d30c24e667ce02d7553462d663cf66a32aa4b4b --- .../graphics/composer3/LayerLifecycleBatchCommandType.aidl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/graphics/composer/aidl/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl b/graphics/composer/aidl/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl index ec2d55f791..e619712fa2 100644 --- a/graphics/composer/aidl/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl +++ b/graphics/composer/aidl/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl @@ -32,8 +32,8 @@ enum LayerLifecycleBatchCommandType { */ CREATE = 1, /** - * This indicates that the current LayerCommand should also destroyes the layer, - * after processing the other attributes in the LayerCommand. + * This indicates that the current LayerCommand should also destroy the layer, + * before processing the other attributes in the LayerCommand. */ DESTROY = 2, } -- GitLab From 5370670c4ace3d2de85ae71c39a82470e4110319 Mon Sep 17 00:00:00 2001 From: Tomasz Wasilczyk Date: Tue, 9 Jan 2024 12:15:20 -0800 Subject: [PATCH 147/418] No need to modify acc for std::accumulate Bug: 175635923 Test: m MODULES-IN-hardware-interfaces-automotive-audiocontrol Change-Id: Ic26706d72966b991424c47c5fb7dd46612a3dcc3 --- automotive/audiocontrol/aidl/default/AudioControl.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/automotive/audiocontrol/aidl/default/AudioControl.cpp b/automotive/audiocontrol/aidl/default/AudioControl.cpp index cf7307d347..7e7e145d37 100644 --- a/automotive/audiocontrol/aidl/default/AudioControl.cpp +++ b/automotive/audiocontrol/aidl/default/AudioControl.cpp @@ -244,15 +244,15 @@ ndk::ScopedAStatus AudioControl::onDevicesToMuteChange( template static inline std::string toString(const std::vector& in_values) { return std::accumulate(std::begin(in_values), std::end(in_values), std::string{}, - [](std::string& ls, const aidl_type& rs) { - return ls += (ls.empty() ? "" : ",") + rs.toString(); + [](const std::string& ls, const aidl_type& rs) { + return ls + (ls.empty() ? "" : ",") + rs.toString(); }); } template static inline std::string toEnumString(const std::vector& in_values) { return std::accumulate(std::begin(in_values), std::end(in_values), std::string{}, - [](std::string& ls, const aidl_enum_type& rs) { - return ls += (ls.empty() ? "" : ",") + toString(rs); + [](const std::string& ls, const aidl_enum_type& rs) { + return ls + (ls.empty() ? "" : ",") + toString(rs); }); } -- GitLab From 4891ece5c62b98e7268616da4db1de5df43a8098 Mon Sep 17 00:00:00 2001 From: Tomasz Wasilczyk Date: Tue, 9 Jan 2024 12:30:51 -0800 Subject: [PATCH 148/418] Add missing libc++ includes Bug: 175635923 Test: m MODULES-IN-hardware-interfaces-wifi Change-Id: Icfaa316bb50b680a2c03c3d818f6ae01860dd334 --- wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h | 1 + 1 file changed, 1 insertion(+) diff --git a/wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h b/wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h index 0178c90e1e..915b5ffbc3 100644 --- a/wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h +++ b/wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h @@ -18,6 +18,7 @@ #include +#include #include #include -- GitLab From 93f1bf2bd357b709317ed08784727f405c7e71da Mon Sep 17 00:00:00 2001 From: Alisher Alikhodjaev Date: Tue, 9 Jan 2024 13:16:11 -0800 Subject: [PATCH 149/418] Per NCI spec there is no need to wait for credits Bug: 312911587 Test: no regresions Change-Id: Ie7952b6618cd2b191b85904b3c1d4c544ba85618 --- nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp index 4d997e6569..b36735f768 100644 --- a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp +++ b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp @@ -296,12 +296,6 @@ TEST_P(NfcHidlTest, WriteInvalidAndThenValidCommand) { res = nfc_cb_->WaitForCallback(kCallbackNameSendData); EXPECT_TRUE(res.no_timeout); EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); - if (nci_version == NCI_VERSION_2 && res.args->last_data_.size() > 13 && - res.args->last_data_[13] == 0x00) { - // Wait for CORE_CONN_CREDITS_NTF - res = nfc_cb_->WaitForCallback(kCallbackNameSendData); - EXPECT_TRUE(res.no_timeout); - } // Send an Error Data Packet cmd = INVALID_COMMAND; data = cmd; -- GitLab From 7eae30d5e3f7b268b199ec1d27948d35fb66b8ba Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Tue, 9 Jan 2024 13:48:32 -0800 Subject: [PATCH 150/418] Fix a nullptr deref in ref VHAL. Check for nullptr returned from refreshTimestamp if the property is not available. Test: m Bug: 319147839 Change-Id: Idb214a4f889bdd11e6d4f3979fd7d2e38ded7873 --- .../2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp index b56a1907c8..82e357f34f 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp @@ -494,7 +494,11 @@ void DefaultVehicleHal::onContinuousPropertyTimer(const std::vector& pr } for (int areaId : areaIds) { - auto v = pool.obtain(*mPropStore->refreshTimestamp(property, areaId)); + auto refreshedProp = mPropStore->refreshTimestamp(property, areaId); + VehiclePropValuePtr v = nullptr; + if (refreshedProp != nullptr) { + v = pool.obtain(*refreshedProp); + } if (v.get()) { events.push_back(std::move(v)); } -- GitLab From 9eb3314a24cdd9b191d55217efe35e3eacdbe080 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Tue, 9 Jan 2024 14:06:49 -0800 Subject: [PATCH 151/418] audio: Improve logging in remote submix module Implement IModule::dump to display the current state in the audioflinger dump. Throttle repetitive logging when there is nothing to read. Remove stale comment for already fixed b/307586684. Bug: 307586684 Test: adb shell dumpsys media.audio_flinger Change-Id: I1f1f6e1658d035d46af3a933a825b20a78c7f297 --- .../include/core-impl/ModuleRemoteSubmix.h | 2 +- .../include/core-impl/StreamRemoteSubmix.h | 1 + .../default/r_submix/ModuleRemoteSubmix.cpp | 6 +++ .../default/r_submix/StreamRemoteSubmix.cpp | 8 +++- audio/aidl/default/r_submix/SubmixRoute.cpp | 41 ++++++++++++++++++- audio/aidl/default/r_submix/SubmixRoute.h | 10 ++++- 6 files changed, 62 insertions(+), 6 deletions(-) diff --git a/audio/aidl/default/include/core-impl/ModuleRemoteSubmix.h b/audio/aidl/default/include/core-impl/ModuleRemoteSubmix.h index 613ac6209c..9d8c027a1b 100644 --- a/audio/aidl/default/include/core-impl/ModuleRemoteSubmix.h +++ b/audio/aidl/default/include/core-impl/ModuleRemoteSubmix.h @@ -57,7 +57,7 @@ class ModuleRemoteSubmix : public Module { ndk::ScopedAStatus onMasterVolumeChanged(float volume) override; int32_t getNominalLatencyMs( const ::aidl::android::media::audio::common::AudioPortConfig& portConfig) override; - // TODO(b/307586684): Report proper minimum stream buffer size by overriding 'setAudioPatch'. + binder_status_t dump(int fd, const char** args, uint32_t numArgs) override; }; } // namespace aidl::android::hardware::audio::core diff --git a/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h b/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h index 477c30e8f1..b2cdc28f5c 100644 --- a/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h +++ b/audio/aidl/default/include/core-impl/StreamRemoteSubmix.h @@ -67,6 +67,7 @@ class StreamRemoteSubmix : public StreamCommonImpl { int64_t mStartTimeNs = 0; long mFramesSinceStart = 0; int mReadErrorCount = 0; + int mReadFailureCount = 0; }; class StreamInRemoteSubmix final : public StreamIn, public StreamSwitcher { diff --git a/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp b/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp index 7bc783c5b1..b44f37b293 100644 --- a/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp +++ b/audio/aidl/default/r_submix/ModuleRemoteSubmix.cpp @@ -16,6 +16,7 @@ #define LOG_TAG "AHAL_ModuleRemoteSubmix" +#include #include #include @@ -174,4 +175,9 @@ int32_t ModuleRemoteSubmix::getNominalLatencyMs(const AudioPortConfig&) { return kMinLatencyMs; } +binder_status_t ModuleRemoteSubmix::dump(int fd, const char** /*args*/, uint32_t /*numArgs*/) { + dprintf(fd, "\nSubmixRoutes:\n%s\n", r_submix::SubmixRoute::dumpRoutes().c_str()); + return STATUS_OK; +} + } // namespace aidl::android::hardware::audio::core diff --git a/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp b/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp index 3ee354b282..fa4135d3e5 100644 --- a/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp +++ b/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp @@ -267,6 +267,7 @@ size_t StreamRemoteSubmix::getStreamPipeSizeInFrames() { } return ::android::OK; } + mReadErrorCount = 0; LOG(VERBOSE) << __func__ << ": " << mDeviceAddress.toString() << ", " << frameCount << " frames"; @@ -294,7 +295,12 @@ size_t StreamRemoteSubmix::getStreamPipeSizeInFrames() { } } if (actuallyRead < frameCount) { - LOG(WARNING) << __func__ << ": read " << actuallyRead << " vs. requested " << frameCount; + if (++mReadFailureCount < kMaxReadFailureAttempts) { + LOG(WARNING) << __func__ << ": read " << actuallyRead << " vs. requested " << frameCount + << " (not all errors will be logged)"; + } + } else { + mReadFailureCount = 0; } mCurrentRoute->updateReadCounterFrames(*actualFrameCount); return ::android::OK; diff --git a/audio/aidl/default/r_submix/SubmixRoute.cpp b/audio/aidl/default/r_submix/SubmixRoute.cpp index 7d706c27ce..325a012fa4 100644 --- a/audio/aidl/default/r_submix/SubmixRoute.cpp +++ b/audio/aidl/default/r_submix/SubmixRoute.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include + #define LOG_TAG "AHAL_SubmixRoute" #include #include @@ -28,10 +30,11 @@ using aidl::android::media::audio::common::AudioDeviceAddress; namespace aidl::android::hardware::audio::core::r_submix { // static -SubmixRoute::RoutesMonitor SubmixRoute::getRoutes() { +SubmixRoute::RoutesMonitor SubmixRoute::getRoutes(bool tryLock) { static std::mutex submixRoutesLock; static RoutesMap submixRoutes; - return RoutesMonitor(submixRoutesLock, submixRoutes); + return !tryLock ? RoutesMonitor(submixRoutesLock, submixRoutes) + : RoutesMonitor(submixRoutesLock, submixRoutes, tryLock); } // static @@ -66,6 +69,21 @@ void SubmixRoute::removeRoute(const AudioDeviceAddress& deviceAddress) { getRoutes()->erase(deviceAddress); } +// static +std::string SubmixRoute::dumpRoutes() { + auto routes = getRoutes(true /*tryLock*/); + std::string result; + if (routes->empty()) result.append(" "); + for (const auto& r : *(routes.operator->())) { + result.append(" - ") + .append(r.first.toString()) + .append(": ") + .append(r.second->dump()) + .append("\n"); + } + return result; +} + // Verify a submix input or output stream can be opened. bool SubmixRoute::isStreamConfigValid(bool isInput, const AudioConfig& streamConfig) { // If the stream is already open, don't open it again. @@ -258,4 +276,23 @@ void SubmixRoute::exitStandby(bool isInput) { } } +std::string SubmixRoute::dump() NO_THREAD_SAFETY_ANALYSIS { + const bool isLocked = mLock.try_lock(); + std::string result = std::string(isLocked ? "" : "! ") + .append("Input ") + .append(mStreamInOpen ? "open" : "closed") + .append(mStreamInStandby ? ", standby" : ", active") + .append(", refcount: ") + .append(std::to_string(mInputRefCount)) + .append(", framesRead: ") + .append(mSource ? std::to_string(mSource->framesRead()) : "") + .append("; Output ") + .append(mStreamOutOpen ? "open" : "closed") + .append(mStreamOutStandby ? ", standby" : ", active") + .append(", framesWritten: ") + .append(mSink ? std::to_string(mSink->framesWritten()) : ""); + if (isLocked) mLock.unlock(); + return result; +} + } // namespace aidl::android::hardware::audio::core::r_submix diff --git a/audio/aidl/default/r_submix/SubmixRoute.h b/audio/aidl/default/r_submix/SubmixRoute.h index 160df41265..5425f12e17 100644 --- a/audio/aidl/default/r_submix/SubmixRoute.h +++ b/audio/aidl/default/r_submix/SubmixRoute.h @@ -17,6 +17,7 @@ #pragma once #include +#include #include #include @@ -68,6 +69,7 @@ class SubmixRoute { const ::aidl::android::media::audio::common::AudioDeviceAddress& deviceAddress); static void removeRoute( const ::aidl::android::media::audio::common::AudioDeviceAddress& deviceAddress); + static std::string dumpRoutes(); bool isStreamInOpen() { std::lock_guard guard(mLock); @@ -115,20 +117,24 @@ class SubmixRoute { void standby(bool isInput); long updateReadCounterFrames(size_t frameCount); + std::string dump(); + private: using RoutesMap = std::map<::aidl::android::media::audio::common::AudioDeviceAddress, std::shared_ptr>; class RoutesMonitor { public: RoutesMonitor(std::mutex& mutex, RoutesMap& routes) : mLock(mutex), mRoutes(routes) {} + RoutesMonitor(std::mutex& mutex, RoutesMap& routes, bool /*tryLock*/) + : mLock(mutex, std::try_to_lock), mRoutes(routes) {} RoutesMap* operator->() { return &mRoutes; } private: - std::lock_guard mLock; + std::unique_lock mLock; RoutesMap& mRoutes; }; - static RoutesMonitor getRoutes(); + static RoutesMonitor getRoutes(bool tryLock = false); bool isStreamConfigCompatible(const AudioConfig& streamConfig); -- GitLab From d29abc9f3e793a388fe2522ea9f2e891281f4d12 Mon Sep 17 00:00:00 2001 From: Tomasz Wasilczyk Date: Tue, 9 Jan 2024 14:42:22 -0800 Subject: [PATCH 152/418] Remove unused global const variable Bug: 175635923 Test: MODULES-IN-hardware-interfaces-power Change-Id: Ie73f48df62a17b309c774b2f446db3ee53b3863b --- power/aidl/vts/VtsHalPowerTargetTest.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/power/aidl/vts/VtsHalPowerTargetTest.cpp b/power/aidl/vts/VtsHalPowerTargetTest.cpp index c2216f8cf6..907cf00e96 100644 --- a/power/aidl/vts/VtsHalPowerTargetTest.cpp +++ b/power/aidl/vts/VtsHalPowerTargetTest.cpp @@ -73,8 +73,6 @@ const std::vector kSelfTids = { const std::vector kEmptyTids = {}; -const std::vector kNoDurations = {}; - const std::vector kDurationsWithZero = { DurationWrapper(1000L, 1L), DurationWrapper(0L, 2L), -- GitLab From fc1e3f11ad1e355f1b2e25bf9730150f6f553a76 Mon Sep 17 00:00:00 2001 From: Ady Abraham Date: Wed, 3 Jan 2024 11:45:08 -0800 Subject: [PATCH 153/418] composer: vts: don't clear reader errors on teardown Fixing a bug that caused Teardown to clear the errors before checking them Bug: 303735490 Test: presubmit Change-Id: Ieb02ab3015fc21bcef6624f8f45c3b84549005c2 --- .../composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp index 311164743f..5e45fd902b 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp @@ -1401,7 +1401,6 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { protected: void TearDown() override { ASSERT_FALSE(mDisplays.empty()); - const auto errors = mReader.takeErrors(); ASSERT_TRUE(mReader.takeErrors().empty()); ASSERT_TRUE(mReader.takeChangedCompositionTypes(getPrimaryDisplayId()).empty()); -- GitLab From a77f2df47304a20bfc2b0d423f532497487abb51 Mon Sep 17 00:00:00 2001 From: Felix Obenhuber Date: Wed, 10 Jan 2024 15:58:29 +0100 Subject: [PATCH 154/418] automotive: Add Rust backend to the vhal AIDL This enables us to write a vhal service in Rust. Test: Verified with a custom replacement of the DefaultVehicleHal and ran in cuttlefish Change-Id: I53601e1a10cee75877e76ae04f7837e7d1a20ebd --- automotive/vehicle/aidl/Android.bp | 3 +++ automotive/vehicle/aidl_property/Android.bp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/automotive/vehicle/aidl/Android.bp b/automotive/vehicle/aidl/Android.bp index 3b93bca76c..7405d4cc28 100644 --- a/automotive/vehicle/aidl/Android.bp +++ b/automotive/vehicle/aidl/Android.bp @@ -41,6 +41,9 @@ aidl_interface { "com.android.car.framework", ], }, + rust: { + enabled: true, + }, }, versions_with_info: [ { diff --git a/automotive/vehicle/aidl_property/Android.bp b/automotive/vehicle/aidl_property/Android.bp index 19fa4a38db..580be6829b 100644 --- a/automotive/vehicle/aidl_property/Android.bp +++ b/automotive/vehicle/aidl_property/Android.bp @@ -42,6 +42,9 @@ aidl_interface { "com.android.car.framework", ], }, + rust: { + enabled: true, + }, }, versions_with_info: [ { -- GitLab From 1eae7abfaaec996f615b13f42d91f865d315c4b2 Mon Sep 17 00:00:00 2001 From: Shikha Panwar Date: Fri, 22 Dec 2023 21:30:59 +0000 Subject: [PATCH 155/418] VTS: Use encoding of policy on explicit key dice As we make Dice policy work with explicit key format of dice chain, the hard coded policy needs to change to be compatible with hard coded explicit key chain in the TA. Test: VTS Bug: 291213394 Change-Id: Ib3740d8f12f0a5f4e680bd215170bc96596fbe06 --- .../secretkeeper/aidl/vts/secretkeeper_test_client.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index eeef6fc000..37b280422d 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -40,10 +40,11 @@ const CURRENT_VERSION: u64 = 1; // TODO(b/291238565): This will change once libdice_policy switches to Explicit-key DiceCertChain // This is generated by patching libdice_policy such that it dumps an example dice chain & // a policy, such that the former matches the latter. -const HYPOTHETICAL_DICE_POLICY: [u8; 43] = [ - 0x83, 0x01, 0x81, 0x83, 0x01, 0x80, 0xA1, 0x01, 0x00, 0x82, 0x83, 0x01, 0x81, 0x01, 0x73, 0x74, - 0x65, 0x73, 0x74, 0x69, 0x6E, 0x67, 0x5F, 0x64, 0x69, 0x63, 0x65, 0x5F, 0x70, 0x6F, 0x6C, 0x69, - 0x63, 0x79, 0x83, 0x02, 0x82, 0x03, 0x18, 0x64, 0x19, 0xE9, 0x75, +const HYPOTHETICAL_DICE_POLICY: [u8; 49] = [ + 0x84, 0x01, 0x81, 0x83, 0x01, 0x80, 0x01, 0x81, 0x83, 0x01, 0x80, 0x43, 0xa1, 0x01, 0x00, 0x82, + 0x83, 0x01, 0x81, 0x01, 0x73, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x63, + 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x83, 0x02, 0x82, 0x03, 0x18, 0x64, 0x19, 0xe9, + 0x75, ]; // Random bytes (of ID_SIZE/SECRET_SIZE) generated for tests. -- GitLab From 2424cc007d1b7a160e22155f77436ef7f8d011e0 Mon Sep 17 00:00:00 2001 From: Cole Faust Date: Wed, 10 Jan 2024 12:30:37 -0800 Subject: [PATCH 156/418] Baseline NewApi issues NewApi is a lint check that you don't call framework methods that were introduced in versions later than your min_sdk_version. We want to make this an error, so we're baselineing all existing issues. This cl was generated automatically, by taking all the NewApi issues from the reference baselines, and all the non-NewApi issues from the existing checked in baselines. Bug: 268261262 Test: Presubmits Change-Id: I3e4bcd76bad422513d48712303ce5c857511d9be --- security/rkp/aidl/Android.bp | 3 +++ security/rkp/aidl/lint-baseline.xml | 25 ++++++++++++++++++------- tetheroffload/aidl/Android.bp | 3 +++ tetheroffload/aidl/lint-baseline.xml | 26 ++++++++++++++++++++++++++ wifi/hostapd/aidl/Android.bp | 3 +++ wifi/hostapd/aidl/lint-baseline.xml | 18 +++++++++--------- 6 files changed, 62 insertions(+), 16 deletions(-) create mode 100644 tetheroffload/aidl/lint-baseline.xml diff --git a/security/rkp/aidl/Android.bp b/security/rkp/aidl/Android.bp index e9e20214f5..adc63f666a 100644 --- a/security/rkp/aidl/Android.bp +++ b/security/rkp/aidl/Android.bp @@ -25,6 +25,9 @@ aidl_interface { "//apex_available:platform", "com.android.rkpd", ], + lint: { + baseline_filename: "lint-baseline.xml", + }, }, rust: { enabled: true, diff --git a/security/rkp/aidl/lint-baseline.xml b/security/rkp/aidl/lint-baseline.xml index d25d383dfd..8e98094575 100644 --- a/security/rkp/aidl/lint-baseline.xml +++ b/security/rkp/aidl/lint-baseline.xml @@ -1,5 +1,5 @@ - + @@ -18,8 +18,8 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> @@ -29,8 +29,19 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> + + + + diff --git a/tetheroffload/aidl/Android.bp b/tetheroffload/aidl/Android.bp index 6de27c3462..e091c5bab8 100644 --- a/tetheroffload/aidl/Android.bp +++ b/tetheroffload/aidl/Android.bp @@ -18,6 +18,9 @@ aidl_interface { ], min_sdk_version: "30", enabled: true, + lint: { + baseline_filename: "lint-baseline.xml", + }, }, ndk: { apps_enabled: false, diff --git a/tetheroffload/aidl/lint-baseline.xml b/tetheroffload/aidl/lint-baseline.xml new file mode 100644 index 0000000000..62924b1471 --- /dev/null +++ b/tetheroffload/aidl/lint-baseline.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/wifi/hostapd/aidl/Android.bp b/wifi/hostapd/aidl/Android.bp index cdc94bb036..e5d492a204 100644 --- a/wifi/hostapd/aidl/Android.bp +++ b/wifi/hostapd/aidl/Android.bp @@ -39,6 +39,9 @@ aidl_interface { "com.android.wifi", ], min_sdk_version: "30", + lint: { + baseline_filename: "lint-baseline.xml", + }, }, ndk: { gen_trace: true, diff --git a/wifi/hostapd/aidl/lint-baseline.xml b/wifi/hostapd/aidl/lint-baseline.xml index 657622e674..99231fc739 100644 --- a/wifi/hostapd/aidl/lint-baseline.xml +++ b/wifi/hostapd/aidl/lint-baseline.xml @@ -1,5 +1,5 @@ - + @@ -18,8 +18,8 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> @@ -29,8 +29,8 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> @@ -40,8 +40,8 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> -- GitLab From 468341e6771e39c2c0c7c7028edf15605f24e18a Mon Sep 17 00:00:00 2001 From: Avichal Rakesh Date: Fri, 5 Jan 2024 13:29:09 -0800 Subject: [PATCH 157/418] camera: Make readoutTimestamp visible to HALs `readoutTimestamp` metadata key was previously only visible to SDK and the framework, and the camera framework force set the values based on if the HAL implemented the AIDL or the HIDL interface. This CL makes readoutTimestamp available to HALs and lets AIDL HALs choose if they can support sensor readout timestamp or not. Bug: 309543399 Test: External Camera HAL now sets this value and passes VTS Change-Id: Ifee2b4020b7630383dc32ef7590f8a9ccdaf49d2 --- camera/device/aidl/Android.bp | 2 +- .../camera/metadata/CameraMetadataTag.aidl | 1 + .../metadata/SensorReadoutTimestamp.aidl | 43 +++++++++++++++++++ .../camera/metadata/CameraMetadataTag.aidl | 7 +++ .../metadata/SensorReadoutTimestamp.aidl | 34 +++++++++++++++ camera/provider/aidl/vts/Android.bp | 2 +- 6 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl create mode 100644 camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl diff --git a/camera/device/aidl/Android.bp b/camera/device/aidl/Android.bp index 4115c651d8..0104636f8c 100644 --- a/camera/device/aidl/Android.bp +++ b/camera/device/aidl/Android.bp @@ -17,7 +17,7 @@ aidl_interface { "android.hardware.common-V2", "android.hardware.common.fmq-V1", "android.hardware.camera.common-V1", - "android.hardware.camera.metadata-V2", + "android.hardware.camera.metadata-V3", "android.hardware.graphics.common-V5", ], backend: { diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl index 542b296272..9321ec0e37 100644 --- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl @@ -246,6 +246,7 @@ enum CameraMetadataTag { ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION, ANDROID_SENSOR_PIXEL_MODE, ANDROID_SENSOR_RAW_BINNING_FACTOR_USED, + ANDROID_SENSOR_READOUT_TIMESTAMP, ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SENSOR_INFO_START /* 983040 */, ANDROID_SENSOR_INFO_SENSITIVITY_RANGE, ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT, diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl new file mode 100644 index 0000000000..35dc1a976f --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorReadoutTimestamp { + ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED, + ANDROID_SENSOR_READOUT_TIMESTAMP_HARDWARE, +} diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/CameraMetadataTag.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/CameraMetadataTag.aidl index 03cfba150a..f1333728c2 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/CameraMetadataTag.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/CameraMetadataTag.aidl @@ -1590,6 +1590,13 @@ enum CameraMetadataTag { * @see ANDROID_SENSOR_INFO_BINNING_FACTOR */ ANDROID_SENSOR_RAW_BINNING_FACTOR_USED, + /** + * android.sensor.readoutTimestamp [static, enum, java_public] + * + *

Whether or not the camera device supports readout timestamp and + * {@code onReadoutStarted} callback.

+ */ + ANDROID_SENSOR_READOUT_TIMESTAMP, /** * android.sensor.info.activeArraySize [static, int32[], public] * diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl new file mode 100644 index 0000000000..1678515a69 --- /dev/null +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ + +package android.hardware.camera.metadata; + +/** + * android.sensor.readoutTimestamp enumeration values + * @see ANDROID_SENSOR_READOUT_TIMESTAMP + */ +@VintfStability +@Backing(type="int") +enum SensorReadoutTimestamp { + ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED, + ANDROID_SENSOR_READOUT_TIMESTAMP_HARDWARE, +} diff --git a/camera/provider/aidl/vts/Android.bp b/camera/provider/aidl/vts/Android.bp index f9305bbe10..1c106f60bd 100644 --- a/camera/provider/aidl/vts/Android.bp +++ b/camera/provider/aidl/vts/Android.bp @@ -61,7 +61,7 @@ cc_test { "android.hardware.camera.common@1.0-helper", "android.hardware.camera.common-V1-ndk", "android.hardware.camera.device-V3-ndk", - "android.hardware.camera.metadata-V2-ndk", + "android.hardware.camera.metadata-V3-ndk", "android.hardware.camera.provider-V3-ndk", "android.hidl.allocator@1.0", "libgrallocusage", -- GitLab From 1fb9ba494c43ee7c2fd4d09a3513f0f98ed5c01f Mon Sep 17 00:00:00 2001 From: Avichal Rakesh Date: Wed, 13 Dec 2023 13:09:57 -0800 Subject: [PATCH 158/418] ExternalCameraHAL: Add ANDROID_SENSOR_READOUT_TIMESTAMP key. As ExternalCameraHAL does not support sensor readout timestamp, it should set ANDROID_SENSOR_READOUT_TIMESTAMP to ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED in CameraDevice characteristics. This CL adds the CameraMetadata entry to ExternalCameraDevice. Bug: 309543399 Test: ReadoutTimestampTest#testReadoutTimestamp passes for ExternalCameraHAL Change-Id: I12203f0832416b4ca325380e671675ddc1d788d4 --- camera/device/default/ExternalCameraDevice.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/camera/device/default/ExternalCameraDevice.cpp b/camera/device/default/ExternalCameraDevice.cpp index 649bf43f49..8e8474800f 100644 --- a/camera/device/default/ExternalCameraDevice.cpp +++ b/camera/device/default/ExternalCameraDevice.cpp @@ -497,6 +497,9 @@ status_t ExternalCameraDevice::initDefaultCharsKeys( const int32_t maxLatency = ANDROID_SYNC_MAX_LATENCY_UNKNOWN; UPDATE(ANDROID_SYNC_MAX_LATENCY, &maxLatency, 1); + const uint8_t sensorReadoutTimestamp = ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED; + UPDATE(ANDROID_SENSOR_READOUT_TIMESTAMP, &sensorReadoutTimestamp, 1); + /* Other sensor/RAW related keys: * android.sensor.info.colorFilterArrangement -> no need if we don't do RAW * android.sensor.info.physicalSize -> not available @@ -1002,4 +1005,4 @@ binder_status_t ExternalCameraDevice::dump(int fd, const char** args, uint32_t n } // namespace device } // namespace camera } // namespace hardware -} // namespace android \ No newline at end of file +} // namespace android -- GitLab From 6633a8573267d5fbb293daf7161d8d8e5f710cf2 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Wed, 13 Dec 2023 16:08:04 -0800 Subject: [PATCH 159/418] Add DAB unit test for bcradio utils lib Added unit tests for utils method related to DAB radio in AIDL broadcast radio utils library. Bug: 310708886 Test: atest broadcastradio_utils_aidl_test Change-Id: I7c7333c11898665ae7e5184bd3022a7019f862ca --- .../test/BroadcastRadioUtilsTest.cpp | 141 +++++++++++++++--- 1 file changed, 117 insertions(+), 24 deletions(-) diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp index 07509495a4..b2dc94ac77 100644 --- a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp @@ -21,7 +21,12 @@ namespace aidl::android::hardware::broadcastradio { namespace { constexpr int64_t kFmFrequencyKHz = 97900; -constexpr uint64_t kDabSidExt = 0x0E10000C221u; +constexpr uint32_t kDabSid = 0x0000C221u; +constexpr int kDabEccCode = 0xE1u; +constexpr int kDabSCIdS = 0x1u; +constexpr uint64_t kDabSidExt = static_cast(kDabSid) | + (static_cast(kDabEccCode) << 32) | + (static_cast(kDabSCIdS) << 40); constexpr uint32_t kDabEnsemble = 0xCE15u; constexpr uint64_t kDabFrequencyKhz = 225648u; constexpr uint64_t kHdStationId = 0xA0000001u; @@ -29,87 +34,175 @@ constexpr uint64_t kHdSubChannel = 1u; constexpr uint64_t kHdFrequency = 97700u; } // namespace -TEST(BroadcastRadioUtilsTest, hasIdWithPrimaryIdType) { +TEST(BroadcastRadioUtilsTest, HasIdWithPrimaryIdType) { ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); ASSERT_TRUE(utils::hasId(sel, IdentifierType::AMFM_FREQUENCY_KHZ)); } -TEST(BroadcastRadioUtilsTest, makeIdentifier) { +TEST(BroadcastRadioUtilsTest, HasIdWithSecondaryIdType) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::hasId(sel, IdentifierType::DAB_FREQUENCY_KHZ)); +} + +TEST(BroadcastRadioUtilsTest, HasIdWithIdNotInSelector) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::hasId(sel, IdentifierType::AMFM_FREQUENCY_KHZ)); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithPrimaryIdType) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::DAB_SID_EXT), static_cast(kDabSidExt)); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithSecondaryIdType) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::DAB_ENSEMBLE), static_cast(kDabEnsemble)); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithIdNotFound) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::AMFM_FREQUENCY_KHZ), 0); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithIdFoundAndDefaultValue) { + int64_t defaultValue = 0x0E10000C222u; + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::DAB_SID_EXT, defaultValue), + static_cast(kDabSidExt)); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithIdNotFoundAndDefaultValue) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + static_cast(kFmFrequencyKHz)); +} + +TEST(BroadcastRadioUtilsTest, MakeIdentifier) { ProgramIdentifier id = utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz); - ASSERT_EQ(id.type, IdentifierType::AMFM_FREQUENCY_KHZ); - ASSERT_EQ(id.value, kFmFrequencyKHz); + EXPECT_EQ(id.type, IdentifierType::AMFM_FREQUENCY_KHZ); + EXPECT_EQ(id.value, kFmFrequencyKHz); } -TEST(BroadcastRadioUtilsTest, makeSelectorAmfm) { +TEST(BroadcastRadioUtilsTest, MakeSelectorAmfm) { ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); - ASSERT_EQ(sel.primaryId.type, IdentifierType::AMFM_FREQUENCY_KHZ); - ASSERT_EQ(sel.primaryId.value, kFmFrequencyKHz); - ASSERT_TRUE(sel.secondaryIds.empty()); + EXPECT_EQ(sel.primaryId.type, IdentifierType::AMFM_FREQUENCY_KHZ); + EXPECT_EQ(sel.primaryId.value, kFmFrequencyKHz); + EXPECT_TRUE(sel.secondaryIds.empty()); } -TEST(BroadcastRadioUtilsTest, makeSelectorHd) { +TEST(BroadcastRadioUtilsTest, MakeSelectorHd) { ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); - ASSERT_EQ(sel.primaryId.type, IdentifierType::HD_STATION_ID_EXT); - ASSERT_TRUE(sel.secondaryIds.empty()); - ASSERT_EQ(utils::getHdSubchannel(sel), static_cast(kHdSubChannel)); - ASSERT_EQ(utils::getHdFrequency(sel), static_cast(kHdFrequency)); + EXPECT_EQ(sel.primaryId.type, IdentifierType::HD_STATION_ID_EXT); + EXPECT_TRUE(sel.secondaryIds.empty()); + EXPECT_EQ(utils::getHdSubchannel(sel), static_cast(kHdSubChannel)); + EXPECT_EQ(utils::getHdFrequency(sel), static_cast(kHdFrequency)); } -TEST(BroadcastRadioUtilsTest, makeHdRadioStationName) { +TEST(BroadcastRadioUtilsTest, MakeHdRadioStationName) { std::string stationName = "aB1-FM"; int64_t expectedIdValue = 0x4D46314241; ProgramIdentifier stationNameId = utils::makeHdRadioStationName(stationName); - ASSERT_EQ(stationNameId.type, IdentifierType::HD_STATION_NAME); - ASSERT_EQ(stationNameId.value, expectedIdValue); + EXPECT_EQ(stationNameId.type, IdentifierType::HD_STATION_NAME); + EXPECT_EQ(stationNameId.value, expectedIdValue); } -TEST(BroadcastRadioUtilsTest, getHdFrequencyWithoutHdId) { +TEST(BroadcastRadioUtilsTest, GetHdFrequencyWithoutHdId) { ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); ASSERT_EQ(utils::getHdFrequency(sel), 0u); } -TEST(BroadcastRadioUtilsTest, hasAmFmFrequencyWithAmFmSelector) { +TEST(BroadcastRadioUtilsTest, HasAmFmFrequencyWithAmFmSelector) { ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); ASSERT_TRUE(utils::hasAmFmFrequency(sel)); } -TEST(BroadcastRadioUtilsTest, hasAmFmFrequencyWithHdSelector) { +TEST(BroadcastRadioUtilsTest, HasAmFmFrequencyWithHdSelector) { ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); ASSERT_TRUE(utils::hasAmFmFrequency(sel)); } -TEST(BroadcastRadioUtilsTest, hasAmFmFrequencyWithNonAmFmHdSelector) { +TEST(BroadcastRadioUtilsTest, HasAmFmFrequencyWithNonAmFmHdSelector) { ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); ASSERT_FALSE(utils::hasAmFmFrequency(sel)); } -TEST(BroadcastRadioUtilsTest, getAmFmFrequencyWithAmFmSelector) { +TEST(BroadcastRadioUtilsTest, GetAmFmFrequencyWithAmFmSelector) { ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); ASSERT_EQ(utils::getAmFmFrequency(sel), static_cast(kFmFrequencyKHz)); } -TEST(BroadcastRadioUtilsTest, getAmFmFrequencyWithHdSelector) { +TEST(BroadcastRadioUtilsTest, GetAmFmFrequencyWithHdSelector) { ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); ASSERT_EQ(utils::getAmFmFrequency(sel), static_cast(kHdFrequency)); } -TEST(BroadcastRadioUtilsTest, getAmFmFrequencyWithNonAmFmHdSelector) { +TEST(BroadcastRadioUtilsTest, GetAmFmFrequencyWithNonAmFmHdSelector) { ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); ASSERT_EQ(utils::getAmFmFrequency(sel), 0u); } +TEST(BroadcastRadioUtilsTest, MakeSelectorDabWithOnlySidExt) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt); + + EXPECT_EQ(sel.primaryId.type, IdentifierType::DAB_SID_EXT); + EXPECT_EQ(sel.primaryId.value, static_cast(kDabSidExt)); + EXPECT_TRUE(sel.secondaryIds.empty()); +} + +TEST(BroadcastRadioUtilsTest, MakeSelectorDab) { + ProgramIdentifier ensembleIdExpected = + utils::makeIdentifier(IdentifierType::DAB_ENSEMBLE, kDabEnsemble); + ProgramIdentifier frequencyIdExpected = + utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, kDabFrequencyKhz); + + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + EXPECT_EQ(sel.primaryId.type, IdentifierType::DAB_SID_EXT); + EXPECT_EQ(sel.primaryId.value, static_cast(kDabSidExt)); + EXPECT_EQ(sel.secondaryIds.size(), 2u); + EXPECT_NE(std::find(sel.secondaryIds.begin(), sel.secondaryIds.end(), ensembleIdExpected), + sel.secondaryIds.end()); + EXPECT_NE(std::find(sel.secondaryIds.begin(), sel.secondaryIds.end(), frequencyIdExpected), + sel.secondaryIds.end()); +} + +TEST(BroadcastRadioUtilsTest, GetDabSId) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getDabSId(sel), kDabSid); +} + +TEST(BroadcastRadioUtilsTest, GetDabEccCode) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getDabEccCode(sel), kDabEccCode); +} + +TEST(BroadcastRadioUtilsTest, GetDabSCIdS) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getDabSCIdS(sel), kDabSCIdS); +} + } // namespace aidl::android::hardware::broadcastradio -- GitLab From ff52e4fcbab0ffeb41ff0261f81751f452ee79f6 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 10 Jan 2024 13:47:57 -0800 Subject: [PATCH 160/418] audio: Add libaudioclient tests to postsubmit for the AIDL HAL These framework-side tests are helpful in detecting breakages caused by changes in the HAL code. Add to postsubmit first because the presubmit check does not allow adding to presubmit without accumulating some history first. Bug: 311830316 Test: atest Change-Id: I1f946c71a89117d25f39fde34877988ea7e1d466 --- audio/aidl/TEST_MAPPING | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/audio/aidl/TEST_MAPPING b/audio/aidl/TEST_MAPPING index 2b6207eb06..36c88dbad5 100644 --- a/audio/aidl/TEST_MAPPING +++ b/audio/aidl/TEST_MAPPING @@ -55,6 +55,21 @@ "postsubmit": [ { "name": "VtsHalSpatializerTargetTest" + }, + { + "name": "audiorecord_tests" + }, + { + "name": "audioeffect_tests" + }, + { + "name": "audiorouting_tests" + }, + { + "name": "trackplayerbase_tests" + }, + { + "name": "audiosystem_tests" } ] } -- GitLab From 9e2546bda50260373edc01dfb7bb9eaef44d127c Mon Sep 17 00:00:00 2001 From: yomna Date: Wed, 10 Jan 2024 19:04:23 +0000 Subject: [PATCH 161/418] Include SOS enums in ConnectionEvent, IPsec enums in SecurityAlgorithm Bug: b/319272663 Test: m Change-Id: Ifdfc4da8a93485f4f39beb57d60910f2905eb4ad --- .../hardware/radio/network/ConnectionEvent.aidl | 14 +++++++++----- .../radio/network/SecurityAlgorithm.aidl | 2 ++ .../hardware/radio/network/ConnectionEvent.aidl | 16 +++++++++++----- .../radio/network/SecurityAlgorithm.aidl | 9 ++++++++- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/ConnectionEvent.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/ConnectionEvent.aidl index eedb8edefa..1529512695 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/ConnectionEvent.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/ConnectionEvent.aidl @@ -42,9 +42,13 @@ enum ConnectionEvent { NAS_SIGNALLING_LTE = 4, AS_SIGNALLING_LTE = 5, VOLTE_SIP = 6, - VOLTE_RTP = 7, - NAS_SIGNALLING_5G = 8, - AS_SIGNALLING_5G = 9, - VONR_SIP = 10, - VONR_RTP = 11, + VOLTE_SIP_SOS = 7, + VOLTE_RTP = 8, + VOLTE_RTP_SOS = 9, + NAS_SIGNALLING_5G = 10, + AS_SIGNALLING_5G = 11, + VONR_SIP = 12, + VONR_SIP_SOS = 13, + VONR_RTP = 14, + VONR_RTP_SOS = 15, } diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl index c590d2bede..c3333bf190 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -57,6 +57,7 @@ enum SecurityAlgorithm { NEA1 = 56, NEA2 = 57, NEA3 = 58, + SIP_NO_IPSEC_CONFIG = 66, IMS_NULL = 67, SIP_NULL = 68, AES_GCM = 69, @@ -66,6 +67,7 @@ enum SecurityAlgorithm { AES_EDE3_CBC = 73, HMAC_SHA1_96 = 74, HMAC_MD5_96 = 75, + RTP = 85, SRTP_NULL = 86, SRTP_AES_COUNTER = 87, SRTP_AES_F8 = 88, diff --git a/radio/aidl/android/hardware/radio/network/ConnectionEvent.aidl b/radio/aidl/android/hardware/radio/network/ConnectionEvent.aidl index 2e39ebf791..d5f367f646 100644 --- a/radio/aidl/android/hardware/radio/network/ConnectionEvent.aidl +++ b/radio/aidl/android/hardware/radio/network/ConnectionEvent.aidl @@ -42,14 +42,20 @@ enum ConnectionEvent { AS_SIGNALLING_LTE = 5, // VoLTE + // Note: emergency calls could use either normal or SOS (emergency) PDN in practice VOLTE_SIP = 6, - VOLTE_RTP = 7, + VOLTE_SIP_SOS = 7, + VOLTE_RTP = 8, + VOLTE_RTP_SOS = 9, // 5G packet services - NAS_SIGNALLING_5G = 8, - AS_SIGNALLING_5G = 9, + NAS_SIGNALLING_5G = 10, + AS_SIGNALLING_5G = 11, // VoNR - VONR_SIP = 10, - VONR_RTP = 11, + // Note: emergency calls could use either normal or SOS (emergency) PDN in practice + VONR_SIP = 12, + VONR_SIP_SOS = 13, + VONR_RTP = 14, + VONR_RTP_SOS = 15 } diff --git a/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl index 19feeeff59..01f732738b 100644 --- a/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl +++ b/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -60,7 +60,11 @@ enum SecurityAlgorithm { NEA3 = 58, // IMS and SIP layer security (See 3GPP TS 33.203) + // No IPsec config + SIP_NO_IPSEC_CONFIG = 66, IMS_NULL = 67, + + // Has IPsec config SIP_NULL = 68, AES_GCM = 69, AES_GMAC = 70, @@ -70,7 +74,10 @@ enum SecurityAlgorithm { HMAC_SHA1_96 = 74, HMAC_MD5_96 = 75, - // RTP (see 3GPP TS 33.328) + // RTP and SRTP (see 3GPP TS 33.328) + // When SRTP is not being used + RTP = 85, + // When SRTP is available and used SRTP_NULL = 86, SRTP_AES_COUNTER = 87, SRTP_AES_F8 = 88, -- GitLab From a4ab299db4433766ce407f8e1ed7fb40d4ff58c8 Mon Sep 17 00:00:00 2001 From: Aishwarya Mallampati Date: Wed, 10 Jan 2024 20:57:24 +0000 Subject: [PATCH 162/418] Fix enum number in RegistrationFailCause Bug: 317689758 Test: build Change-Id: Ie35226fae05054dfe2ec92a4e19a8a6396aa6f25 --- .../hardware/radio/network/RegistrationFailCause.aidl | 4 ++++ .../hardware/radio/network/RegistrationFailCause.aidl | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/RegistrationFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/RegistrationFailCause.aidl index 56f516d532..fcc079ec0f 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/RegistrationFailCause.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/RegistrationFailCause.aidl @@ -50,7 +50,11 @@ enum RegistrationFailCause { ROAMING_NOT_ALLOWED = 13, GPRS_SERVICES_NOT_ALLOWED_IN_PLMN = 14, NO_SUITABLE_CELLS = 15, + /** + * @deprecated MSC_TEMPORARILY_NOT_REACHABLE value is wrong and should not be used. Use MSC_TEMP_NOT_REACHABLE instead. + */ MSC_TEMPORARILY_NOT_REACHABLE = 15, + MSC_TEMP_NOT_REACHABLE = 16, NETWORK_FAILURE = 17, MAC_FAILURE = 20, SYNC_FAILURE = 21, diff --git a/radio/aidl/android/hardware/radio/network/RegistrationFailCause.aidl b/radio/aidl/android/hardware/radio/network/RegistrationFailCause.aidl index 2955f9658d..11fd8c5ec9 100644 --- a/radio/aidl/android/hardware/radio/network/RegistrationFailCause.aidl +++ b/radio/aidl/android/hardware/radio/network/RegistrationFailCause.aidl @@ -86,9 +86,14 @@ enum RegistrationFailCause { */ NO_SUITABLE_CELLS = 15, /** - * 16 - MSC temporarily not reachable + * @deprecated MSC_TEMPORARILY_NOT_REACHABLE value is wrong and should not be used. + * Use MSC_TEMP_NOT_REACHABLE instead. */ MSC_TEMPORARILY_NOT_REACHABLE = 15, + /** + * 16 - MSC temporarily not reachable + */ + MSC_TEMP_NOT_REACHABLE = 16, /** * 17 - Network Failure */ -- GitLab From 81bfcda77a4c0776012098b8f9d00f15b2415348 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Tue, 9 Jan 2024 20:50:53 +0000 Subject: [PATCH 163/418] Effect AIDL: implement IEffect.reopen - add IEffect.reopen implementation - now data MQs can update at runtime, sync EffectContext access - add clang thread annotation Bug: 302036943 Test: atest VtsHalAudioEffectTargetTest Test: build and test audio effect on Pixel Change-Id: I3e9fdc2d5eb50b8c1377e0da75573f0eba7ea3f1 --- audio/aidl/default/Android.bp | 1 + audio/aidl/default/EffectContext.cpp | 227 ++++++++++++++++++ audio/aidl/default/EffectImpl.cpp | 157 +++++++++--- audio/aidl/default/EffectThread.cpp | 55 +---- .../AcousticEchoCancelerSw.cpp | 4 - .../AcousticEchoCancelerSw.h | 18 +- .../AutomaticGainControlV1Sw.cpp | 4 - .../AutomaticGainControlV1Sw.h | 21 +- .../AutomaticGainControlV2Sw.cpp | 4 - .../AutomaticGainControlV2Sw.h | 21 +- audio/aidl/default/bassboost/BassBoostSw.cpp | 4 - audio/aidl/default/bassboost/BassBoostSw.h | 20 +- audio/aidl/default/downmix/DownmixSw.cpp | 4 - audio/aidl/default/downmix/DownmixSw.h | 21 +- .../DynamicsProcessingSw.cpp | 7 +- .../dynamicProcessing/DynamicsProcessingSw.h | 21 +- audio/aidl/default/envReverb/EnvReverbSw.cpp | 4 - audio/aidl/default/envReverb/EnvReverbSw.h | 18 +- audio/aidl/default/equalizer/EqualizerSw.cpp | 4 - audio/aidl/default/equalizer/EqualizerSw.h | 18 +- .../default/extension/ExtensionEffect.cpp | 4 - .../aidl/default/extension/ExtensionEffect.h | 18 +- .../hapticGenerator/HapticGeneratorSw.cpp | 4 - .../hapticGenerator/HapticGeneratorSw.h | 21 +- .../include/effect-impl/EffectContext.h | 137 ++++------- .../default/include/effect-impl/EffectImpl.h | 50 +++- .../include/effect-impl/EffectThread.h | 35 +-- .../default/include/effect-impl/EffectTypes.h | 5 +- .../loudnessEnhancer/LoudnessEnhancerSw.cpp | 4 - .../loudnessEnhancer/LoudnessEnhancerSw.h | 21 +- .../noiseSuppression/NoiseSuppressionSw.cpp | 4 - .../noiseSuppression/NoiseSuppressionSw.h | 21 +- .../default/presetReverb/PresetReverbSw.cpp | 4 - .../default/presetReverb/PresetReverbSw.h | 20 +- .../default/spatializer/SpatializerSw.cpp | 4 - .../aidl/default/spatializer/SpatializerSw.h | 18 +- .../default/virtualizer/VirtualizerSw.cpp | 4 - .../aidl/default/virtualizer/VirtualizerSw.h | 19 +- .../aidl/default/visualizer/VisualizerSw.cpp | 4 - audio/aidl/default/visualizer/VisualizerSw.h | 20 +- audio/aidl/default/volume/VolumeSw.cpp | 4 - audio/aidl/default/volume/VolumeSw.h | 21 +- audio/aidl/vts/EffectHelper.h | 11 + .../aidl/vts/VtsHalAudioEffectTargetTest.cpp | 96 ++++++++ 44 files changed, 735 insertions(+), 447 deletions(-) create mode 100644 audio/aidl/default/EffectContext.cpp diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp index 7e06c2c461..bfa2783970 100644 --- a/audio/aidl/default/Android.bp +++ b/audio/aidl/default/Android.bp @@ -230,6 +230,7 @@ cc_defaults { filegroup { name: "effectCommonFile", srcs: [ + "EffectContext.cpp", "EffectThread.cpp", "EffectImpl.cpp", ], diff --git a/audio/aidl/default/EffectContext.cpp b/audio/aidl/default/EffectContext.cpp new file mode 100644 index 0000000000..2e1291822a --- /dev/null +++ b/audio/aidl/default/EffectContext.cpp @@ -0,0 +1,227 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#define LOG_TAG "AHAL_EffectContext" +#include "effect-impl/EffectContext.h" +#include "include/effect-impl/EffectTypes.h" + +using aidl::android::hardware::audio::common::getChannelCount; +using aidl::android::hardware::audio::common::getFrameSizeInBytes; +using aidl::android::hardware::audio::effect::IEffect; +using aidl::android::media::audio::common::PcmType; +using ::android::hardware::EventFlag; + +namespace aidl::android::hardware::audio::effect { + +EffectContext::EffectContext(size_t statusDepth, const Parameter::Common& common) { + LOG_ALWAYS_FATAL_IF(RetCode::SUCCESS != setCommon(common), "illegalCommonParameter"); + + // in/outBuffer size in float (FMQ data format defined for DataMQ) + size_t inBufferSizeInFloat = common.input.frameCount * mInputFrameSize / sizeof(float); + size_t outBufferSizeInFloat = common.output.frameCount * mOutputFrameSize / sizeof(float); + + // only status FMQ use the EventFlag + mStatusMQ = std::make_shared(statusDepth, true /*configureEventFlagWord*/); + mInputMQ = std::make_shared(inBufferSizeInFloat); + mOutputMQ = std::make_shared(outBufferSizeInFloat); + + if (!mStatusMQ->isValid() || !mInputMQ->isValid() || !mOutputMQ->isValid()) { + LOG(ERROR) << __func__ << " created invalid FMQ"; + } + + ::android::status_t status = + EventFlag::createEventFlag(mStatusMQ->getEventFlagWord(), &mEfGroup); + LOG_ALWAYS_FATAL_IF(status != ::android::OK || !mEfGroup, " create EventFlagGroup failed "); + mWorkBuffer.reserve(std::max(inBufferSizeInFloat, outBufferSizeInFloat)); +} + +// reset buffer status by abandon input data in FMQ +void EffectContext::resetBuffer() { + auto buffer = static_cast(mWorkBuffer.data()); + std::vector status(mStatusMQ->availableToRead()); + if (mInputMQ) { + mInputMQ->read(buffer, mInputMQ->availableToRead()); + } +} + +void EffectContext::dupeFmqWithReopen(IEffect::OpenEffectReturn* effectRet) { + if (!mInputMQ) { + mInputMQ = std::make_shared(mCommon.input.frameCount * mInputFrameSize / + sizeof(float)); + } + if (!mOutputMQ) { + mOutputMQ = std::make_shared(mCommon.output.frameCount * mOutputFrameSize / + sizeof(float)); + } + dupeFmq(effectRet); +} + +void EffectContext::dupeFmq(IEffect::OpenEffectReturn* effectRet) { + if (effectRet) { + effectRet->statusMQ = mStatusMQ->dupeDesc(); + effectRet->inputDataMQ = mInputMQ->dupeDesc(); + effectRet->outputDataMQ = mOutputMQ->dupeDesc(); + } +} + +float* EffectContext::getWorkBuffer() { + return static_cast(mWorkBuffer.data()); +} + +std::shared_ptr EffectContext::getStatusFmq() const { + return mStatusMQ; +} + +std::shared_ptr EffectContext::getInputDataFmq() const { + return mInputMQ; +} + +std::shared_ptr EffectContext::getOutputDataFmq() const { + return mOutputMQ; +} + +size_t EffectContext::getInputFrameSize() const { + return mInputFrameSize; +} + +size_t EffectContext::getOutputFrameSize() const { + return mOutputFrameSize; +} + +int EffectContext::getSessionId() const { + return mCommon.session; +} + +int EffectContext::getIoHandle() const { + return mCommon.ioHandle; +} + +RetCode EffectContext::setOutputDevice( + const std::vector& device) { + mOutputDevice = device; + return RetCode::SUCCESS; +} + +std::vector +EffectContext::getOutputDevice() { + return mOutputDevice; +} + +RetCode EffectContext::setAudioMode(const aidl::android::media::audio::common::AudioMode& mode) { + mMode = mode; + return RetCode::SUCCESS; +} +aidl::android::media::audio::common::AudioMode EffectContext::getAudioMode() { + return mMode; +} + +RetCode EffectContext::setAudioSource( + const aidl::android::media::audio::common::AudioSource& source) { + mSource = source; + return RetCode::SUCCESS; +} + +aidl::android::media::audio::common::AudioSource EffectContext::getAudioSource() { + return mSource; +} + +RetCode EffectContext::setVolumeStereo(const Parameter::VolumeStereo& volumeStereo) { + mVolumeStereo = volumeStereo; + return RetCode::SUCCESS; +} + +Parameter::VolumeStereo EffectContext::getVolumeStereo() { + return mVolumeStereo; +} + +RetCode EffectContext::setCommon(const Parameter::Common& common) { + LOG(VERBOSE) << __func__ << common.toString(); + auto& input = common.input; + auto& output = common.output; + + if (input.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT || + output.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT) { + LOG(ERROR) << __func__ << " illegal IO, input " + << ::android::internal::ToString(input.base.format) << ", output " + << ::android::internal::ToString(output.base.format); + return RetCode::ERROR_ILLEGAL_PARAMETER; + } + + if (auto ret = updateIOFrameSize(common); ret != RetCode::SUCCESS) { + return ret; + } + + mInputChannelCount = getChannelCount(input.base.channelMask); + mOutputChannelCount = getChannelCount(output.base.channelMask); + if (mInputChannelCount == 0 || mOutputChannelCount == 0) { + LOG(ERROR) << __func__ << " illegal channel count input " << mInputChannelCount + << ", output " << mOutputChannelCount; + return RetCode::ERROR_ILLEGAL_PARAMETER; + } + + mCommon = common; + return RetCode::SUCCESS; +} + +Parameter::Common EffectContext::getCommon() { + LOG(VERBOSE) << __func__ << mCommon.toString(); + return mCommon; +} + +EventFlag* EffectContext::getStatusEventFlag() { + return mEfGroup; +} + +RetCode EffectContext::updateIOFrameSize(const Parameter::Common& common) { + const auto iFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( + common.input.base.format, common.input.base.channelMask); + const auto oFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( + common.output.base.format, common.output.base.channelMask); + + bool needUpdateMq = false; + if (mInputMQ && + (mInputFrameSize != iFrameSize || mCommon.input.frameCount != common.input.frameCount)) { + mInputMQ.reset(); + needUpdateMq = true; + } + if (mOutputMQ && + (mOutputFrameSize != oFrameSize || mCommon.output.frameCount != common.output.frameCount)) { + mOutputMQ.reset(); + needUpdateMq = true; + } + mInputFrameSize = iFrameSize; + mOutputFrameSize = oFrameSize; + if (needUpdateMq) { + return notifyDataMqUpdate(); + } + return RetCode::SUCCESS; +} + +RetCode EffectContext::notifyDataMqUpdate() { + if (!mEfGroup) { + LOG(ERROR) << __func__ << ": invalid EventFlag group"; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + + if (const auto ret = mEfGroup->wake(kEventFlagDataMqUpdate); ret != ::android::OK) { + LOG(ERROR) << __func__ << ": wake failure with ret " << ret; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + LOG(DEBUG) << __func__ << " : signal client for reopen"; + return RetCode::SUCCESS; +} +} // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp index 3c12f83e0f..b76269aa52 100644 --- a/audio/aidl/default/EffectImpl.cpp +++ b/audio/aidl/default/EffectImpl.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#include #define LOG_TAG "AHAL_EffectImpl" #include "effect-impl/EffectImpl.h" #include "effect-impl/EffectTypes.h" @@ -22,6 +23,7 @@ using aidl::android::hardware::audio::effect::IEffect; using aidl::android::hardware::audio::effect::State; using aidl::android::media::audio::common::PcmType; +using ::android::hardware::EventFlag; extern "C" binder_exception_t destroyEffect(const std::shared_ptr& instanceSp) { State state; @@ -45,50 +47,62 @@ ndk::ScopedAStatus EffectImpl::open(const Parameter::Common& common, RETURN_IF(common.input.base.format.pcm != common.output.base.format.pcm || common.input.base.format.pcm != PcmType::FLOAT_32_BIT, EX_ILLEGAL_ARGUMENT, "dataMustBe32BitsFloat"); + std::lock_guard lg(mImplMutex); RETURN_OK_IF(mState != State::INIT); - auto context = createContext(common); - RETURN_IF(!context, EX_NULL_POINTER, "createContextFailed"); + mImplContext = createContext(common); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); + mEventFlag = mImplContext->getStatusEventFlag(); if (specific.has_value()) { RETURN_IF_ASTATUS_NOT_OK(setParameterSpecific(specific.value()), "setSpecParamErr"); } mState = State::IDLE; - context->dupeFmq(ret); - RETURN_IF(createThread(context, getEffectName()) != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, + mImplContext->dupeFmq(ret); + RETURN_IF(createThread(getEffectName()) != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, "FailedToCreateWorker"); return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::reopen(OpenEffectReturn* ret) { + std::lock_guard lg(mImplMutex); RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "alreadyClosed"); // TODO: b/302036943 add reopen implementation - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); - context->dupeFmq(ret); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); + mImplContext->dupeFmqWithReopen(ret); return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::close() { - RETURN_OK_IF(mState == State::INIT); - RETURN_IF(mState == State::PROCESSING, EX_ILLEGAL_STATE, "closeAtProcessing"); + { + std::lock_guard lg(mImplMutex); + RETURN_OK_IF(mState == State::INIT); + RETURN_IF(mState == State::PROCESSING, EX_ILLEGAL_STATE, "closeAtProcessing"); + mState = State::INIT; + } + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); // stop the worker thread, ignore the return code RETURN_IF(destroyThread() != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, "FailedToDestroyWorker"); - mState = State::INIT; - RETURN_IF(releaseContext() != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, - "FailedToCreateWorker"); + + { + std::lock_guard lg(mImplMutex); + releaseContext(); + mImplContext.reset(); + } LOG(DEBUG) << getEffectName() << __func__; return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::setParameter(const Parameter& param) { + std::lock_guard lg(mImplMutex); LOG(VERBOSE) << getEffectName() << __func__ << " with: " << param.toString(); - const auto tag = param.getTag(); + const auto& tag = param.getTag(); switch (tag) { case Parameter::common: case Parameter::deviceDescription: @@ -110,8 +124,8 @@ ndk::ScopedAStatus EffectImpl::setParameter(const Parameter& param) { } ndk::ScopedAStatus EffectImpl::getParameter(const Parameter::Id& id, Parameter* param) { - auto tag = id.getTag(); - switch (tag) { + std::lock_guard lg(mImplMutex); + switch (id.getTag()) { case Parameter::Id::commonTag: { RETURN_IF_ASTATUS_NOT_OK(getParameterCommon(id.get(), param), "CommonParamNotSupported"); @@ -131,30 +145,30 @@ ndk::ScopedAStatus EffectImpl::getParameter(const Parameter::Id& id, Parameter* } ndk::ScopedAStatus EffectImpl::setParameterCommon(const Parameter& param) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); - auto tag = param.getTag(); + const auto& tag = param.getTag(); switch (tag) { case Parameter::common: - RETURN_IF(context->setCommon(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setCommon(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setCommFailed"); break; case Parameter::deviceDescription: - RETURN_IF(context->setOutputDevice(param.get()) != + RETURN_IF(mImplContext->setOutputDevice(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setDeviceFailed"); break; case Parameter::mode: - RETURN_IF(context->setAudioMode(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setAudioMode(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setModeFailed"); break; case Parameter::source: - RETURN_IF(context->setAudioSource(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setAudioSource(param.get()) != + RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setSourceFailed"); break; case Parameter::volumeStereo: - RETURN_IF(context->setVolumeStereo(param.get()) != + RETURN_IF(mImplContext->setVolumeStereo(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setVolumeStereoFailed"); break; @@ -169,28 +183,27 @@ ndk::ScopedAStatus EffectImpl::setParameterCommon(const Parameter& param) { } ndk::ScopedAStatus EffectImpl::getParameterCommon(const Parameter::Tag& tag, Parameter* param) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); switch (tag) { case Parameter::common: { - param->set(context->getCommon()); + param->set(mImplContext->getCommon()); break; } case Parameter::deviceDescription: { - param->set(context->getOutputDevice()); + param->set(mImplContext->getOutputDevice()); break; } case Parameter::mode: { - param->set(context->getAudioMode()); + param->set(mImplContext->getAudioMode()); break; } case Parameter::source: { - param->set(context->getAudioSource()); + param->set(mImplContext->getAudioSource()); break; } case Parameter::volumeStereo: { - param->set(context->getVolumeStereo()); + param->set(mImplContext->getVolumeStereo()); break; } default: { @@ -202,30 +215,34 @@ ndk::ScopedAStatus EffectImpl::getParameterCommon(const Parameter::Tag& tag, Par return ndk::ScopedAStatus::ok(); } -ndk::ScopedAStatus EffectImpl::getState(State* state) { +ndk::ScopedAStatus EffectImpl::getState(State* state) NO_THREAD_SAFETY_ANALYSIS { *state = mState; return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::command(CommandId command) { - RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "CommandStateError"); + std::lock_guard lg(mImplMutex); + RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "instanceNotOpen"); LOG(DEBUG) << getEffectName() << __func__ << ": receive command: " << toString(command) << " at state " << toString(mState); switch (command) { case CommandId::START: - RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "instanceNotOpen"); RETURN_OK_IF(mState == State::PROCESSING); RETURN_IF_ASTATUS_NOT_OK(commandImpl(command), "commandImplFailed"); - startThread(); mState = State::PROCESSING; + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); + startThread(); break; case CommandId::STOP: case CommandId::RESET: RETURN_OK_IF(mState == State::IDLE); + mState = State::IDLE; + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); stopThread(); RETURN_IF_ASTATUS_NOT_OK(commandImpl(command), "commandImplFailed"); - mState = State::IDLE; break; default: LOG(ERROR) << getEffectName() << __func__ << " instance still processing"; @@ -237,19 +254,41 @@ ndk::ScopedAStatus EffectImpl::command(CommandId command) { } ndk::ScopedAStatus EffectImpl::commandImpl(CommandId command) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); if (command == CommandId::RESET) { - context->resetBuffer(); + mImplContext->resetBuffer(); } return ndk::ScopedAStatus::ok(); } +std::shared_ptr EffectImpl::createContext(const Parameter::Common& common) { + return std::make_shared(1 /* statusMqDepth */, common); +} + +RetCode EffectImpl::releaseContext() { + if (mImplContext) { + mImplContext.reset(); + } + return RetCode::SUCCESS; +} + void EffectImpl::cleanUp() { command(CommandId::STOP); close(); } +RetCode EffectImpl::notifyEventFlag(uint32_t flag) { + if (!mEventFlag) { + LOG(ERROR) << getEffectName() << __func__ << ": StatusEventFlag invalid"; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + if (const auto ret = mEventFlag->wake(flag); ret != ::android::OK) { + LOG(ERROR) << getEffectName() << __func__ << ": wake failure with ret " << ret; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + return RetCode::SUCCESS; +} + IEffect::Status EffectImpl::status(binder_status_t status, size_t consumed, size_t produced) { IEffect::Status ret; ret.status = status; @@ -258,6 +297,48 @@ IEffect::Status EffectImpl::status(binder_status_t status, size_t consumed, size return ret; } +void EffectImpl::process() { + /** + * wait for the EventFlag without lock, it's ok because the mEfGroup pointer will not change + * in the life cycle of workerThread (threadLoop). + */ + uint32_t efState = 0; + if (!mEventFlag || + ::android::OK != mEventFlag->wait(kEventFlagNotEmpty, &efState, 0 /* no timeout */, + true /* retry */) || + !(efState & kEventFlagNotEmpty)) { + LOG(ERROR) << getEffectName() << __func__ << ": StatusEventFlag - " << mEventFlag + << " efState - " << std::hex << efState; + return; + } + + { + std::lock_guard lg(mImplMutex); + if (mState != State::PROCESSING) { + LOG(DEBUG) << getEffectName() << " skip process in state: " << toString(mState); + return; + } + RETURN_VALUE_IF(!mImplContext, void(), "nullContext"); + auto statusMQ = mImplContext->getStatusFmq(); + auto inputMQ = mImplContext->getInputDataFmq(); + auto outputMQ = mImplContext->getOutputDataFmq(); + auto buffer = mImplContext->getWorkBuffer(); + if (!inputMQ || !outputMQ) { + return; + } + + auto processSamples = inputMQ->availableToRead(); + if (processSamples) { + inputMQ->read(buffer, processSamples); + IEffect::Status status = effectProcessImpl(buffer, buffer, processSamples); + outputMQ->write(buffer, status.fmqProduced); + statusMQ->writeBlocking(&status, 1); + LOG(VERBOSE) << getEffectName() << __func__ << ": done processing, effect consumed " + << status.fmqConsumed << " produced " << status.fmqProduced; + } + } +} + // A placeholder processing implementation to copy samples from input to output IEffect::Status EffectImpl::effectProcessImpl(float* in, float* out, int samples) { for (int i = 0; i < samples; i++) { diff --git a/audio/aidl/default/EffectThread.cpp b/audio/aidl/default/EffectThread.cpp index 47ba9f44cb..fdd48034e8 100644 --- a/audio/aidl/default/EffectThread.cpp +++ b/audio/aidl/default/EffectThread.cpp @@ -25,8 +25,6 @@ #include "effect-impl/EffectThread.h" #include "effect-impl/EffectTypes.h" -using ::android::hardware::EventFlag; - namespace aidl::android::hardware::audio::effect { EffectThread::EffectThread() { @@ -38,31 +36,18 @@ EffectThread::~EffectThread() { LOG(DEBUG) << __func__ << " done"; } -RetCode EffectThread::createThread(std::shared_ptr context, const std::string& name, - int priority) { +RetCode EffectThread::createThread(const std::string& name, int priority) { if (mThread.joinable()) { LOG(WARNING) << mName << __func__ << " thread already created, no-op"; return RetCode::SUCCESS; } + mName = name; mPriority = priority; { std::lock_guard lg(mThreadMutex); mStop = true; mExit = false; - mThreadContext = std::move(context); - auto statusMQ = mThreadContext->getStatusFmq(); - EventFlag* efGroup = nullptr; - ::android::status_t status = - EventFlag::createEventFlag(statusMQ->getEventFlagWord(), &efGroup); - if (status != ::android::OK || !efGroup) { - LOG(ERROR) << mName << __func__ << " create EventFlagGroup failed " << status - << " efGroup " << efGroup; - return RetCode::ERROR_THREAD; - } - mEfGroup.reset(efGroup); - // kickoff and wait for commands (CommandId::START/STOP) or IEffect.close from client - mEfGroup->wake(kEventFlagNotEmpty); } mThread = std::thread(&EffectThread::threadLoop, this); @@ -75,16 +60,12 @@ RetCode EffectThread::destroyThread() { std::lock_guard lg(mThreadMutex); mStop = mExit = true; } - mCv.notify_one(); + mCv.notify_one(); if (mThread.joinable()) { mThread.join(); } - { - std::lock_guard lg(mThreadMutex); - mThreadContext.reset(); - } LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -96,7 +77,6 @@ RetCode EffectThread::startThread() { mCv.notify_one(); } - mEfGroup->wake(kEventFlagNotEmpty); LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -108,7 +88,6 @@ RetCode EffectThread::stopThread() { mCv.notify_one(); } - mEfGroup->wake(kEventFlagNotEmpty); LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -117,13 +96,6 @@ void EffectThread::threadLoop() { pthread_setname_np(pthread_self(), mName.substr(0, kMaxTaskNameLen - 1).c_str()); setpriority(PRIO_PROCESS, 0, mPriority); while (true) { - /** - * wait for the EventFlag without lock, it's ok because the mEfGroup pointer will not change - * in the life cycle of workerThread (threadLoop). - */ - uint32_t efState = 0; - mEfGroup->wait(kEventFlagNotEmpty, &efState); - { std::unique_lock l(mThreadMutex); ::android::base::ScopedLockAssertion lock_assertion(mThreadMutex); @@ -132,27 +104,8 @@ void EffectThread::threadLoop() { LOG(INFO) << __func__ << " EXIT!"; return; } - process_l(); } - } -} - -void EffectThread::process_l() { - RETURN_VALUE_IF(!mThreadContext, void(), "nullContext"); - - auto statusMQ = mThreadContext->getStatusFmq(); - auto inputMQ = mThreadContext->getInputDataFmq(); - auto outputMQ = mThreadContext->getOutputDataFmq(); - auto buffer = mThreadContext->getWorkBuffer(); - - auto processSamples = inputMQ->availableToRead(); - if (processSamples) { - inputMQ->read(buffer, processSamples); - IEffect::Status status = effectProcessImpl(buffer, buffer, processSamples); - outputMQ->write(buffer, status.fmqProduced); - statusMQ->writeBlocking(&status, 1); - LOG(VERBOSE) << mName << __func__ << ": done processing, effect consumed " - << status.fmqConsumed << " produced " << status.fmqProduced; + process(); } } diff --git a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp index 5e18f1b12f..be0927c457 100644 --- a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp +++ b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp @@ -168,10 +168,6 @@ std::shared_ptr AcousticEchoCancelerSw::createContext( return mContext; } -std::shared_ptr AcousticEchoCancelerSw::getContext() { - return mContext; -} - RetCode AcousticEchoCancelerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h index 73cf42b17a..95738f8dd1 100644 --- a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h +++ b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h @@ -52,21 +52,23 @@ class AcousticEchoCancelerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterAcousticEchoCanceler(const AcousticEchoCanceler::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp index ce10ae1674..d865b7e95a 100644 --- a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp +++ b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp @@ -177,10 +177,6 @@ std::shared_ptr AutomaticGainControlV1Sw::createContext( return mContext; } -std::shared_ptr AutomaticGainControlV1Sw::getContext() { - return mContext; -} - RetCode AutomaticGainControlV1Sw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h index 7d2a69f9d5..76b91aef31 100644 --- a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h +++ b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h @@ -53,21 +53,24 @@ class AutomaticGainControlV1Sw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterAutomaticGainControlV1(const AutomaticGainControlV1::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp index 1e336ac012..3ff6e38cdd 100644 --- a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp +++ b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp @@ -180,10 +180,6 @@ std::shared_ptr AutomaticGainControlV2Sw::createContext( return mContext; } -std::shared_ptr AutomaticGainControlV2Sw::getContext() { - return mContext; -} - RetCode AutomaticGainControlV2Sw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h index 9aa60eab60..863d470f90 100644 --- a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h +++ b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h @@ -59,21 +59,24 @@ class AutomaticGainControlV2Sw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterAutomaticGainControlV2(const AutomaticGainControlV2::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/bassboost/BassBoostSw.cpp b/audio/aidl/default/bassboost/BassBoostSw.cpp index 6072d896d9..60adc3014d 100644 --- a/audio/aidl/default/bassboost/BassBoostSw.cpp +++ b/audio/aidl/default/bassboost/BassBoostSw.cpp @@ -151,10 +151,6 @@ std::shared_ptr BassBoostSw::createContext(const Parameter::Commo return mContext; } -std::shared_ptr BassBoostSw::getContext() { - return mContext; -} - RetCode BassBoostSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/bassboost/BassBoostSw.h b/audio/aidl/default/bassboost/BassBoostSw.h index 11324727a7..901e4551b8 100644 --- a/audio/aidl/default/bassboost/BassBoostSw.h +++ b/audio/aidl/default/bassboost/BassBoostSw.h @@ -51,21 +51,23 @@ class BassBoostSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterBassBoost(const BassBoost::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/downmix/DownmixSw.cpp b/audio/aidl/default/downmix/DownmixSw.cpp index ce5fe20817..19ab2e8f6a 100644 --- a/audio/aidl/default/downmix/DownmixSw.cpp +++ b/audio/aidl/default/downmix/DownmixSw.cpp @@ -144,10 +144,6 @@ std::shared_ptr DownmixSw::createContext(const Parameter::Common& return mContext; } -std::shared_ptr DownmixSw::getContext() { - return mContext; -} - RetCode DownmixSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/downmix/DownmixSw.h b/audio/aidl/default/downmix/DownmixSw.h index 3f8a09b16c..1a9f0f01b0 100644 --- a/audio/aidl/default/downmix/DownmixSw.h +++ b/audio/aidl/default/downmix/DownmixSw.h @@ -55,20 +55,23 @@ class DownmixSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int sample) override; + IEffect::Status effectProcessImpl(float* in, float* out, int sample) + REQUIRES(mImplMutex) override; private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); - ndk::ScopedAStatus getParameterDownmix(const Downmix::Tag& tag, Parameter::Specific* specific); + ndk::ScopedAStatus getParameterDownmix(const Downmix::Tag& tag, Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp index e8f90b216b..36face148b 100644 --- a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp +++ b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp @@ -260,10 +260,6 @@ std::shared_ptr DynamicsProcessingSw::createContext( return mContext; } -std::shared_ptr DynamicsProcessingSw::getContext() { - return mContext; -} - RetCode DynamicsProcessingSw::releaseContext() { if (mContext) { mContext.reset(); @@ -282,6 +278,9 @@ IEffect::Status DynamicsProcessingSw::effectProcessImpl(float* in, float* out, i } RetCode DynamicsProcessingSwContext::setCommon(const Parameter::Common& common) { + if (auto ret = updateIOFrameSize(common); ret != RetCode::SUCCESS) { + return ret; + } mCommon = common; mChannelCount = ::aidl::android::hardware::audio::common::getChannelCount( common.input.base.channelMask); diff --git a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h index 641cf71f68..98edca088c 100644 --- a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h +++ b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h @@ -113,15 +113,17 @@ class DynamicsProcessingSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; private: @@ -130,9 +132,10 @@ class DynamicsProcessingSw final : public EffectImpl { static const Range::DynamicsProcessingRange kPreEqBandRange; static const Range::DynamicsProcessingRange kPostEqBandRange; static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterDynamicsProcessing(const DynamicsProcessing::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; // DynamicsProcessingSw diff --git a/audio/aidl/default/envReverb/EnvReverbSw.cpp b/audio/aidl/default/envReverb/EnvReverbSw.cpp index 73975c6996..7937a6a247 100644 --- a/audio/aidl/default/envReverb/EnvReverbSw.cpp +++ b/audio/aidl/default/envReverb/EnvReverbSw.cpp @@ -267,10 +267,6 @@ std::shared_ptr EnvReverbSw::createContext(const Parameter::Commo return mContext; } -std::shared_ptr EnvReverbSw::getContext() { - return mContext; -} - RetCode EnvReverbSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/envReverb/EnvReverbSw.h b/audio/aidl/default/envReverb/EnvReverbSw.h index 5e31e2f8b2..367462b7da 100644 --- a/audio/aidl/default/envReverb/EnvReverbSw.h +++ b/audio/aidl/default/envReverb/EnvReverbSw.h @@ -100,21 +100,23 @@ class EnvReverbSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; std::string getEffectName() override { return kEffectName; } private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterEnvironmentalReverb(const EnvironmentalReverb::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/equalizer/EqualizerSw.cpp b/audio/aidl/default/equalizer/EqualizerSw.cpp index b2add3113c..640b3ba95e 100644 --- a/audio/aidl/default/equalizer/EqualizerSw.cpp +++ b/audio/aidl/default/equalizer/EqualizerSw.cpp @@ -198,10 +198,6 @@ std::shared_ptr EqualizerSw::createContext(const Parameter::Commo return mContext; } -std::shared_ptr EqualizerSw::getContext() { - return mContext; -} - RetCode EqualizerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/equalizer/EqualizerSw.h b/audio/aidl/default/equalizer/EqualizerSw.h index 56af3b5821..caaa129501 100644 --- a/audio/aidl/default/equalizer/EqualizerSw.h +++ b/audio/aidl/default/equalizer/EqualizerSw.h @@ -97,15 +97,17 @@ class EqualizerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: @@ -113,7 +115,7 @@ class EqualizerSw final : public EffectImpl { static const std::vector kPresets; static const std::vector kRanges; ndk::ScopedAStatus getParameterEqualizer(const Equalizer::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); std::shared_ptr mContext; }; diff --git a/audio/aidl/default/extension/ExtensionEffect.cpp b/audio/aidl/default/extension/ExtensionEffect.cpp index 4a4d71b687..11916c88d2 100644 --- a/audio/aidl/default/extension/ExtensionEffect.cpp +++ b/audio/aidl/default/extension/ExtensionEffect.cpp @@ -123,10 +123,6 @@ std::shared_ptr ExtensionEffect::createContext(const Parameter::C return mContext; } -std::shared_ptr ExtensionEffect::getContext() { - return mContext; -} - RetCode ExtensionEffect::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/extension/ExtensionEffect.h b/audio/aidl/default/extension/ExtensionEffect.h index e7a068ba46..b56086068c 100644 --- a/audio/aidl/default/extension/ExtensionEffect.h +++ b/audio/aidl/default/extension/ExtensionEffect.h @@ -54,18 +54,20 @@ class ExtensionEffect final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp index 27cdac8086..7469ab930e 100644 --- a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp +++ b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp @@ -158,10 +158,6 @@ std::shared_ptr HapticGeneratorSw::createContext(const Parameter: return mContext; } -std::shared_ptr HapticGeneratorSw::getContext() { - return mContext; -} - RetCode HapticGeneratorSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h index 3bbe41ad29..47f3848796 100644 --- a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h +++ b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h @@ -67,21 +67,24 @@ class HapticGeneratorSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterHapticGenerator(const HapticGenerator::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/include/effect-impl/EffectContext.h b/audio/aidl/default/include/effect-impl/EffectContext.h index 89d0c7cf3c..24f3b5dcf2 100644 --- a/audio/aidl/default/include/effect-impl/EffectContext.h +++ b/audio/aidl/default/include/effect-impl/EffectContext.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "EffectTypes.h" @@ -36,127 +37,73 @@ class EffectContext { float, ::aidl::android::hardware::common::fmq::SynchronizedReadWrite> DataMQ; - EffectContext(size_t statusDepth, const Parameter::Common& common) { - auto& input = common.input; - auto& output = common.output; - - LOG_ALWAYS_FATAL_IF( - input.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT, - "inputFormatNotFloat"); - LOG_ALWAYS_FATAL_IF(output.base.format.pcm != - aidl::android::media::audio::common::PcmType::FLOAT_32_BIT, - "outputFormatNotFloat"); - - size_t inputChannelCount = - ::aidl::android::hardware::audio::common::getChannelCount(input.base.channelMask); - LOG_ALWAYS_FATAL_IF(inputChannelCount == 0, "inputChannelCountNotValid"); - size_t outputChannelCount = - ::aidl::android::hardware::audio::common::getChannelCount(output.base.channelMask); - LOG_ALWAYS_FATAL_IF(outputChannelCount == 0, "outputChannelCountNotValid"); - - mInputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( - input.base.format, input.base.channelMask); - mOutputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( - output.base.format, output.base.channelMask); - // in/outBuffer size in float (FMQ data format defined for DataMQ) - size_t inBufferSizeInFloat = input.frameCount * mInputFrameSize / sizeof(float); - size_t outBufferSizeInFloat = output.frameCount * mOutputFrameSize / sizeof(float); - - // only status FMQ use the EventFlag - mStatusMQ = std::make_shared(statusDepth, true /*configureEventFlagWord*/); - mInputMQ = std::make_shared(inBufferSizeInFloat); - mOutputMQ = std::make_shared(outBufferSizeInFloat); - - if (!mStatusMQ->isValid() || !mInputMQ->isValid() || !mOutputMQ->isValid()) { - LOG(ERROR) << __func__ << " created invalid FMQ"; + EffectContext(size_t statusDepth, const Parameter::Common& common); + virtual ~EffectContext() { + if (mEfGroup) { + ::android::hardware::EventFlag::deleteEventFlag(&mEfGroup); } - mWorkBuffer.reserve(std::max(inBufferSizeInFloat, outBufferSizeInFloat)); - mCommon = common; } - virtual ~EffectContext() {} - std::shared_ptr getStatusFmq() { return mStatusMQ; } - std::shared_ptr getInputDataFmq() { return mInputMQ; } - std::shared_ptr getOutputDataFmq() { return mOutputMQ; } + std::shared_ptr getStatusFmq() const; + std::shared_ptr getInputDataFmq() const; + std::shared_ptr getOutputDataFmq() const; - float* getWorkBuffer() { return static_cast(mWorkBuffer.data()); } + float* getWorkBuffer(); // reset buffer status by abandon input data in FMQ - void resetBuffer() { - auto buffer = static_cast(mWorkBuffer.data()); - std::vector status(mStatusMQ->availableToRead()); - mInputMQ->read(buffer, mInputMQ->availableToRead()); - } + void resetBuffer(); + void dupeFmq(IEffect::OpenEffectReturn* effectRet); + size_t getInputFrameSize() const; + size_t getOutputFrameSize() const; + int getSessionId() const; + int getIoHandle() const; - void dupeFmq(IEffect::OpenEffectReturn* effectRet) { - if (effectRet) { - effectRet->statusMQ = mStatusMQ->dupeDesc(); - effectRet->inputDataMQ = mInputMQ->dupeDesc(); - effectRet->outputDataMQ = mOutputMQ->dupeDesc(); - } - } - size_t getInputFrameSize() { return mInputFrameSize; } - size_t getOutputFrameSize() { return mOutputFrameSize; } - int getSessionId() { return mCommon.session; } - int getIoHandle() { return mCommon.ioHandle; } + virtual void dupeFmqWithReopen(IEffect::OpenEffectReturn* effectRet); virtual RetCode setOutputDevice( - const std::vector& - device) { - mOutputDevice = device; - return RetCode::SUCCESS; - } + const std::vector& device); virtual std::vector - getOutputDevice() { - return mOutputDevice; - } + getOutputDevice(); - virtual RetCode setAudioMode(const aidl::android::media::audio::common::AudioMode& mode) { - mMode = mode; - return RetCode::SUCCESS; - } - virtual aidl::android::media::audio::common::AudioMode getAudioMode() { return mMode; } + virtual RetCode setAudioMode(const aidl::android::media::audio::common::AudioMode& mode); + virtual aidl::android::media::audio::common::AudioMode getAudioMode(); - virtual RetCode setAudioSource(const aidl::android::media::audio::common::AudioSource& source) { - mSource = source; - return RetCode::SUCCESS; - } - virtual aidl::android::media::audio::common::AudioSource getAudioSource() { return mSource; } + virtual RetCode setAudioSource(const aidl::android::media::audio::common::AudioSource& source); + virtual aidl::android::media::audio::common::AudioSource getAudioSource(); - virtual RetCode setVolumeStereo(const Parameter::VolumeStereo& volumeStereo) { - mVolumeStereo = volumeStereo; - return RetCode::SUCCESS; - } - virtual Parameter::VolumeStereo getVolumeStereo() { return mVolumeStereo; } + virtual RetCode setVolumeStereo(const Parameter::VolumeStereo& volumeStereo); + virtual Parameter::VolumeStereo getVolumeStereo(); - virtual RetCode setCommon(const Parameter::Common& common) { - mCommon = common; - LOG(VERBOSE) << __func__ << mCommon.toString(); - return RetCode::SUCCESS; - } - virtual Parameter::Common getCommon() { - LOG(VERBOSE) << __func__ << mCommon.toString(); - return mCommon; - } + virtual RetCode setCommon(const Parameter::Common& common); + virtual Parameter::Common getCommon(); + + virtual ::android::hardware::EventFlag* getStatusEventFlag(); protected: - // common parameters size_t mInputFrameSize; size_t mOutputFrameSize; - Parameter::Common mCommon; - std::vector mOutputDevice; - aidl::android::media::audio::common::AudioMode mMode; - aidl::android::media::audio::common::AudioSource mSource; - Parameter::VolumeStereo mVolumeStereo; + size_t mInputChannelCount; + size_t mOutputChannelCount; + Parameter::Common mCommon = {}; + std::vector mOutputDevice = {}; + aidl::android::media::audio::common::AudioMode mMode = + aidl::android::media::audio::common::AudioMode::SYS_RESERVED_INVALID; + aidl::android::media::audio::common::AudioSource mSource = + aidl::android::media::audio::common::AudioSource::SYS_RESERVED_INVALID; + Parameter::VolumeStereo mVolumeStereo = {}; + RetCode updateIOFrameSize(const Parameter::Common& common); + RetCode notifyDataMqUpdate(); private: // fmq and buffers std::shared_ptr mStatusMQ; std::shared_ptr mInputMQ; std::shared_ptr mOutputMQ; - // TODO handle effect process input and output + // std::shared_ptr mRet; // work buffer set by effect instances, the access and update are in same thread std::vector mWorkBuffer; + + ::android::hardware::EventFlag* mEfGroup; }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/include/effect-impl/EffectImpl.h b/audio/aidl/default/include/effect-impl/EffectImpl.h index 242a268912..21f6502385 100644 --- a/audio/aidl/default/include/effect-impl/EffectImpl.h +++ b/audio/aidl/default/include/effect-impl/EffectImpl.h @@ -49,33 +49,54 @@ class EffectImpl : public BnEffect, public EffectThread { virtual ndk::ScopedAStatus setParameter(const Parameter& param) override; virtual ndk::ScopedAStatus getParameter(const Parameter::Id& id, Parameter* param) override; - virtual ndk::ScopedAStatus setParameterCommon(const Parameter& param); - virtual ndk::ScopedAStatus getParameterCommon(const Parameter::Tag& tag, Parameter* param); + virtual ndk::ScopedAStatus setParameterCommon(const Parameter& param) REQUIRES(mImplMutex); + virtual ndk::ScopedAStatus getParameterCommon(const Parameter::Tag& tag, Parameter* param) + REQUIRES(mImplMutex); /* Methods MUST be implemented by each effect instances */ virtual ndk::ScopedAStatus getDescriptor(Descriptor* desc) = 0; - virtual ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) = 0; + virtual ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) = 0; virtual ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) = 0; + Parameter::Specific* specific) + REQUIRES(mImplMutex) = 0; virtual std::string getEffectName() = 0; - virtual IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + virtual std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex); + virtual RetCode releaseContext() REQUIRES(mImplMutex) = 0; /** - * Effect context methods must be implemented by each effect. - * Each effect can derive from EffectContext and define its own context, but must upcast to - * EffectContext for EffectImpl to use. + * @brief effectProcessImpl is running in worker thread which created in EffectThread. + * + * EffectThread will make sure effectProcessImpl only be called after startThread() successful + * and before stopThread() successful. + * + * effectProcessImpl implementation must not call any EffectThread interface, otherwise it will + * cause deadlock. + * + * @param in address of input float buffer. + * @param out address of output float buffer. + * @param samples number of samples to process. + * @return IEffect::Status */ - virtual std::shared_ptr createContext(const Parameter::Common& common) = 0; - virtual std::shared_ptr getContext() = 0; - virtual RetCode releaseContext() = 0; + virtual IEffect::Status effectProcessImpl(float* in, float* out, int samples) = 0; + + /** + * process() get data from data MQs, and call effectProcessImpl() for effect data processing. + * Its important for the implementation to use mImplMutex for context synchronization. + */ + void process() override; protected: - State mState = State::INIT; + State mState GUARDED_BY(mImplMutex) = State::INIT; IEffect::Status status(binder_status_t status, size_t consumed, size_t produced); void cleanUp(); + std::mutex mImplMutex; + std::shared_ptr mImplContext GUARDED_BY(mImplMutex); + /** * Optional CommandId handling methods for effects to override. * For CommandId::START, EffectImpl call commandImpl before starting the EffectThread @@ -83,6 +104,9 @@ class EffectImpl : public BnEffect, public EffectThread { * For CommandId::STOP and CommandId::RESET, EffectImpl call commandImpl after stop the * EffectThread processing. */ - virtual ndk::ScopedAStatus commandImpl(CommandId id); + virtual ndk::ScopedAStatus commandImpl(CommandId id) REQUIRES(mImplMutex); + + RetCode notifyEventFlag(uint32_t flag); + ::android::hardware::EventFlag* mEventFlag; }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/include/effect-impl/EffectThread.h b/audio/aidl/default/include/effect-impl/EffectThread.h index ae51ef70ab..3dbb0e6798 100644 --- a/audio/aidl/default/include/effect-impl/EffectThread.h +++ b/audio/aidl/default/include/effect-impl/EffectThread.h @@ -36,8 +36,7 @@ class EffectThread { virtual ~EffectThread(); // called by effect implementation. - RetCode createThread(std::shared_ptr context, const std::string& name, - int priority = ANDROID_PRIORITY_URGENT_AUDIO); + RetCode createThread(const std::string& name, int priority = ANDROID_PRIORITY_URGENT_AUDIO); RetCode destroyThread(); RetCode startThread(); RetCode stopThread(); @@ -45,33 +44,12 @@ class EffectThread { // Will call process() in a loop if the thread is running. void threadLoop(); - /** - * @brief effectProcessImpl is running in worker thread which created in EffectThread. - * - * Effect implementation should think about concurrency in the implementation if necessary. - * Parameter setting usually implemented in context (derived from EffectContext), and some - * parameter maybe used in the processing, then effect implementation should consider using a - * mutex to protect these parameter. - * - * EffectThread will make sure effectProcessImpl only be called after startThread() successful - * and before stopThread() successful. - * - * effectProcessImpl implementation must not call any EffectThread interface, otherwise it will - * cause deadlock. - * - * @param in address of input float buffer. - * @param out address of output float buffer. - * @param samples number of samples to process. - * @return IEffect::Status - */ - virtual IEffect::Status effectProcessImpl(float* in, float* out, int samples) = 0; - /** * process() call effectProcessImpl() for effect data processing, it is necessary for the * processing to be called under Effect thread mutex mThreadMutex, to avoid the effect state * change before/during data processing, and keep the thread and effect state consistent. */ - virtual void process_l() REQUIRES(mThreadMutex); + virtual void process() = 0; private: static constexpr int kMaxTaskNameLen = 15; @@ -80,16 +58,7 @@ class EffectThread { std::condition_variable mCv; bool mStop GUARDED_BY(mThreadMutex) = true; bool mExit GUARDED_BY(mThreadMutex) = false; - std::shared_ptr mThreadContext GUARDED_BY(mThreadMutex); - struct EventFlagDeleter { - void operator()(::android::hardware::EventFlag* flag) const { - if (flag) { - ::android::hardware::EventFlag::deleteEventFlag(&flag); - } - } - }; - std::unique_ptr<::android::hardware::EventFlag, EventFlagDeleter> mEfGroup; std::thread mThread; int mPriority; std::string mName; diff --git a/audio/aidl/default/include/effect-impl/EffectTypes.h b/audio/aidl/default/include/effect-impl/EffectTypes.h index 4bda7bea21..9740d6ee9c 100644 --- a/audio/aidl/default/include/effect-impl/EffectTypes.h +++ b/audio/aidl/default/include/effect-impl/EffectTypes.h @@ -46,7 +46,8 @@ enum class RetCode { ERROR_NULL_POINTER, /* NULL pointer */ ERROR_ALIGNMENT_ERROR, /* Memory alignment error */ ERROR_BLOCK_SIZE_EXCEED, /* Maximum block size exceeded */ - ERROR_EFFECT_LIB_ERROR + ERROR_EFFECT_LIB_ERROR, /* Effect implementation library error */ + ERROR_EVENT_FLAG_ERROR /* Error with effect event flags */ }; static const int INVALID_AUDIO_SESSION_ID = -1; @@ -67,6 +68,8 @@ inline std::ostream& operator<<(std::ostream& out, const RetCode& code) { return out << "ERROR_BLOCK_SIZE_EXCEED"; case RetCode::ERROR_EFFECT_LIB_ERROR: return out << "ERROR_EFFECT_LIB_ERROR"; + case RetCode::ERROR_EVENT_FLAG_ERROR: + return out << "ERROR_EVENT_FLAG_ERROR"; } return out << "EnumError: " << code; diff --git a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp index 7954316654..1e70716a96 100644 --- a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp +++ b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp @@ -147,10 +147,6 @@ std::shared_ptr LoudnessEnhancerSw::createContext(const Parameter return mContext; } -std::shared_ptr LoudnessEnhancerSw::getContext() { - return mContext; -} - RetCode LoudnessEnhancerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h index 25824f20d5..cf71a5f03f 100644 --- a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h +++ b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h @@ -54,20 +54,23 @@ class LoudnessEnhancerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterLoudnessEnhancer(const LoudnessEnhancer::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp index a3208df865..d304416dff 100644 --- a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp +++ b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp @@ -155,10 +155,6 @@ std::shared_ptr NoiseSuppressionSw::createContext(const Parameter return mContext; } -std::shared_ptr NoiseSuppressionSw::getContext() { - return mContext; -} - RetCode NoiseSuppressionSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h index fc1e028808..acef8ee135 100644 --- a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h +++ b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h @@ -55,20 +55,23 @@ class NoiseSuppressionSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterNoiseSuppression(const NoiseSuppression::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/presetReverb/PresetReverbSw.cpp b/audio/aidl/default/presetReverb/PresetReverbSw.cpp index 3f02eb7382..2ac201038d 100644 --- a/audio/aidl/default/presetReverb/PresetReverbSw.cpp +++ b/audio/aidl/default/presetReverb/PresetReverbSw.cpp @@ -161,10 +161,6 @@ std::shared_ptr PresetReverbSw::createContext(const Parameter::Co return mContext; } -std::shared_ptr PresetReverbSw::getContext() { - return mContext; -} - RetCode PresetReverbSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/presetReverb/PresetReverbSw.h b/audio/aidl/default/presetReverb/PresetReverbSw.h index 9ceee7cca9..61fc88c079 100644 --- a/audio/aidl/default/presetReverb/PresetReverbSw.h +++ b/audio/aidl/default/presetReverb/PresetReverbSw.h @@ -56,21 +56,23 @@ class PresetReverbSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterPresetReverb(const PresetReverb::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/spatializer/SpatializerSw.cpp b/audio/aidl/default/spatializer/SpatializerSw.cpp index 434ed5ac38..6d3c4bd16e 100644 --- a/audio/aidl/default/spatializer/SpatializerSw.cpp +++ b/audio/aidl/default/spatializer/SpatializerSw.cpp @@ -141,10 +141,6 @@ std::shared_ptr SpatializerSw::createContext(const Parameter::Com return mContext; } -std::shared_ptr SpatializerSw::getContext() { - return mContext; -} - RetCode SpatializerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/spatializer/SpatializerSw.h b/audio/aidl/default/spatializer/SpatializerSw.h index b205704cb1..b321e83b9a 100644 --- a/audio/aidl/default/spatializer/SpatializerSw.h +++ b/audio/aidl/default/spatializer/SpatializerSw.h @@ -50,19 +50,21 @@ class SpatializerSw final : public EffectImpl { ~SpatializerSw(); ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: static const std::vector kRanges; - std::shared_ptr mContext = nullptr; + std::shared_ptr mContext GUARDED_BY(mImplMutex) = nullptr; }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/virtualizer/VirtualizerSw.cpp b/audio/aidl/default/virtualizer/VirtualizerSw.cpp index 0e8435ef82..091b0b72c4 100644 --- a/audio/aidl/default/virtualizer/VirtualizerSw.cpp +++ b/audio/aidl/default/virtualizer/VirtualizerSw.cpp @@ -203,10 +203,6 @@ std::shared_ptr VirtualizerSw::createContext(const Parameter::Com return mContext; } -std::shared_ptr VirtualizerSw::getContext() { - return mContext; -} - RetCode VirtualizerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/virtualizer/VirtualizerSw.h b/audio/aidl/default/virtualizer/VirtualizerSw.h index 5e114d9abd..9287838083 100644 --- a/audio/aidl/default/virtualizer/VirtualizerSw.h +++ b/audio/aidl/default/virtualizer/VirtualizerSw.h @@ -59,24 +59,25 @@ class VirtualizerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; std::string getEffectName() override { return kEffectName; } private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterVirtualizer(const Virtualizer::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); ndk::ScopedAStatus getSpeakerAngles(const Virtualizer::SpeakerAnglesPayload payload, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/visualizer/VisualizerSw.cpp b/audio/aidl/default/visualizer/VisualizerSw.cpp index 285c102b6b..54f7f1c52e 100644 --- a/audio/aidl/default/visualizer/VisualizerSw.cpp +++ b/audio/aidl/default/visualizer/VisualizerSw.cpp @@ -190,10 +190,6 @@ std::shared_ptr VisualizerSw::createContext(const Parameter::Comm return mContext; } -std::shared_ptr VisualizerSw::getContext() { - return mContext; -} - RetCode VisualizerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/visualizer/VisualizerSw.h b/audio/aidl/default/visualizer/VisualizerSw.h index 995774e197..4b87b04298 100644 --- a/audio/aidl/default/visualizer/VisualizerSw.h +++ b/audio/aidl/default/visualizer/VisualizerSw.h @@ -72,21 +72,23 @@ class VisualizerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterVisualizer(const Visualizer::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/volume/VolumeSw.cpp b/audio/aidl/default/volume/VolumeSw.cpp index 890258457f..dd019f6c93 100644 --- a/audio/aidl/default/volume/VolumeSw.cpp +++ b/audio/aidl/default/volume/VolumeSw.cpp @@ -160,10 +160,6 @@ std::shared_ptr VolumeSw::createContext(const Parameter::Common& return mContext; } -std::shared_ptr VolumeSw::getContext() { - return mContext; -} - RetCode VolumeSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/volume/VolumeSw.h b/audio/aidl/default/volume/VolumeSw.h index 1432b2be0d..3fc0d97320 100644 --- a/audio/aidl/default/volume/VolumeSw.h +++ b/audio/aidl/default/volume/VolumeSw.h @@ -57,21 +57,24 @@ class VolumeSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); - ndk::ScopedAStatus getParameterVolume(const Volume::Tag& tag, Parameter::Specific* specific); + ndk::ScopedAStatus getParameterVolume(const Volume::Tag& tag, Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/vts/EffectHelper.h b/audio/aidl/vts/EffectHelper.h index 4a5c537dd5..9fa7f9f74a 100644 --- a/audio/aidl/vts/EffectHelper.h +++ b/audio/aidl/vts/EffectHelper.h @@ -43,6 +43,7 @@ using namespace android; using aidl::android::hardware::audio::effect::CommandId; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::IEffect; +using aidl::android::hardware::audio::effect::kEventFlagDataMqUpdate; using aidl::android::hardware::audio::effect::kEventFlagNotEmpty; using aidl::android::hardware::audio::effect::Parameter; using aidl::android::hardware::audio::effect::Range; @@ -191,6 +192,16 @@ class EffectHelper { ASSERT_TRUE(dataMq->read(buffer.data(), expectFloats)); } } + static void expectDataMqUpdateEventFlag(std::unique_ptr& statusMq) { + EventFlag* efGroup; + ASSERT_EQ(::android::OK, + EventFlag::createEventFlag(statusMq->getEventFlagWord(), &efGroup)); + ASSERT_NE(nullptr, efGroup); + uint32_t efState = 0; + EXPECT_EQ(::android::OK, efGroup->wait(kEventFlagDataMqUpdate, &efState, 1'000'000 /*1ms*/, + true /* retry */)); + EXPECT_TRUE(efState & kEventFlagDataMqUpdate); + } static Parameter::Common createParamCommon( int session = 0, int ioHandle = -1, int iSampleRate = 48000, int oSampleRate = 48000, long iFrameCount = 0x100, long oFrameCount = 0x100, diff --git a/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp b/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp index 418fedbcb3..01cdd816f5 100644 --- a/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp @@ -609,6 +609,49 @@ TEST_P(AudioEffectTest, SetAndGetParameterVolume) { ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); } +// Verify Parameters kept after reset. +TEST_P(AudioEffectTest, SetCommonParameterAndReopen) { + ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); + + Parameter::Common common = EffectHelper::createParamCommon( + 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, + kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); + IEffect::OpenEffectReturn ret; + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, std::nullopt /* specific */, &ret, EX_NONE)); + auto statusMQ = std::make_unique(ret.statusMQ); + ASSERT_TRUE(statusMQ->isValid()); + auto inputMQ = std::make_unique(ret.inputDataMQ); + ASSERT_TRUE(inputMQ->isValid()); + auto outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(outputMQ->isValid()); + + Parameter::Id id = Parameter::Id::make(Parameter::common); + common.input.frameCount++; + ASSERT_NO_FATAL_FAILURE(setAndGetParameter(id, Parameter::make(common))); + ASSERT_TRUE(statusMQ->isValid()); + expectDataMqUpdateEventFlag(statusMQ); + EXPECT_IS_OK(mEffect->reopen(&ret)); + inputMQ = std::make_unique(ret.inputDataMQ); + outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(statusMQ->isValid()); + ASSERT_TRUE(inputMQ->isValid()); + ASSERT_TRUE(outputMQ->isValid()); + + common.output.frameCount++; + ASSERT_NO_FATAL_FAILURE(setAndGetParameter(id, Parameter::make(common))); + ASSERT_TRUE(statusMQ->isValid()); + expectDataMqUpdateEventFlag(statusMQ); + EXPECT_IS_OK(mEffect->reopen(&ret)); + inputMQ = std::make_unique(ret.inputDataMQ); + outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(statusMQ->isValid()); + ASSERT_TRUE(inputMQ->isValid()); + ASSERT_TRUE(outputMQ->isValid()); + + ASSERT_NO_FATAL_FAILURE(close(mEffect)); + ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); +} + /// Data processing test // Send data to effects and expect it to be consumed by checking statusMQ. // Effects exposing bypass flags or operating in offload mode will be skipped. @@ -684,6 +727,59 @@ TEST_P(AudioEffectDataPathTest, ConsumeDataAfterRestart) { ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); } +// Send data to effects and expect it to be consumed after effect reopen (IO AudioConfig change). +// Effects exposing bypass flags or operating in offload mode will be skipped. +TEST_P(AudioEffectDataPathTest, ConsumeDataAfterReopen) { + ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); + + Parameter::Common common = EffectHelper::createParamCommon( + 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, + kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); + IEffect::OpenEffectReturn ret; + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, std::nullopt /* specific */, &ret, EX_NONE)); + auto statusMQ = std::make_unique(ret.statusMQ); + ASSERT_TRUE(statusMQ->isValid()); + auto inputMQ = std::make_unique(ret.inputDataMQ); + ASSERT_TRUE(inputMQ->isValid()); + auto outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(outputMQ->isValid()); + + std::vector buffer; + ASSERT_NO_FATAL_FAILURE(command(mEffect, CommandId::START)); + ASSERT_NO_FATAL_FAILURE(expectState(mEffect, State::PROCESSING)); + EXPECT_NO_FATAL_FAILURE(EffectHelper::allocateInputData(common, inputMQ, buffer)); + EXPECT_NO_FATAL_FAILURE(EffectHelper::writeToFmq(statusMQ, inputMQ, buffer)); + EXPECT_NO_FATAL_FAILURE( + EffectHelper::readFromFmq(statusMQ, 1, outputMQ, buffer.size(), buffer)); + + // set a new common parameter with different IO frameCount, reopen + Parameter::Id id = Parameter::Id::make(Parameter::common); + common.input.frameCount += 4; + common.output.frameCount += 4; + ASSERT_NO_FATAL_FAILURE(setAndGetParameter(id, Parameter::make(common))); + ASSERT_TRUE(statusMQ->isValid()); + expectDataMqUpdateEventFlag(statusMQ); + EXPECT_IS_OK(mEffect->reopen(&ret)); + inputMQ = std::make_unique(ret.inputDataMQ); + outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(statusMQ->isValid()); + ASSERT_TRUE(inputMQ->isValid()); + ASSERT_TRUE(outputMQ->isValid()); + + // verify data consume again + EXPECT_NO_FATAL_FAILURE(EffectHelper::allocateInputData(common, inputMQ, buffer)); + EXPECT_NO_FATAL_FAILURE(EffectHelper::writeToFmq(statusMQ, inputMQ, buffer)); + EXPECT_NO_FATAL_FAILURE( + EffectHelper::readFromFmq(statusMQ, 1, outputMQ, buffer.size(), buffer)); + + ASSERT_NO_FATAL_FAILURE(command(mEffect, CommandId::STOP)); + ASSERT_NO_FATAL_FAILURE(expectState(mEffect, State::IDLE)); + EXPECT_NO_FATAL_FAILURE(EffectHelper::readFromFmq(statusMQ, 0, outputMQ, 0, buffer)); + + ASSERT_NO_FATAL_FAILURE(close(mEffect)); + ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); +} + // Send data to IDLE effects and expect it to be consumed after effect start. // Effects exposing bypass flags or operating in offload mode will be skipped. TEST_P(AudioEffectDataPathTest, SendDataAtIdleAndConsumeDataInProcessing) { -- GitLab From 0fbc17f23cf4414c636ccc939c9b828e401459b3 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Tue, 26 Dec 2023 15:57:47 -0800 Subject: [PATCH 164/418] Make remoteaccess HAL pass VTS. The reference remote access HAL should still pass CTS even when the grpc remote access server does not exist. The reference remote access HAL now allows GRPC_SERVICE_ADDRESS not to be defined. If it is not defined, it will not try to connect a remote server and will work in a fake mode. Test: VtsHalAutomotiveRemoteAccess_TargetTest with an without grpc server running. Bug: 277967402 Change-Id: I89509ac8f8ebe9a268d3a338d6e80c24e39dc512 --- .../remoteaccess/hal/default/Android.bp | 4 +- .../hal/default/include/RemoteAccessService.h | 7 +- .../hal/default/src/RemoteAccessImpl.cpp | 18 +++-- .../hal/default/src/RemoteAccessService.cpp | 68 +++++++++++++++++-- 4 files changed, 81 insertions(+), 16 deletions(-) diff --git a/automotive/remoteaccess/hal/default/Android.bp b/automotive/remoteaccess/hal/default/Android.bp index 97ed2c12f0..be6a425485 100644 --- a/automotive/remoteaccess/hal/default/Android.bp +++ b/automotive/remoteaccess/hal/default/Android.bp @@ -53,7 +53,9 @@ cc_binary { vintf_fragments: ["remoteaccess-default-service.xml"], init_rc: ["remoteaccess-default-service.rc"], cflags: [ - "-DGRPC_SERVICE_ADDRESS=\"10.0.2.2:50051\"", + // Uncomment this if running on emulator and connecting to a local grpc server + // running on host 127.0.0.1:50051 (TestWakeupClientServerHost) + // "-DGRPC_SERVICE_ADDRESS=\"10.0.2.2:50051\"", ], } diff --git a/automotive/remoteaccess/hal/default/include/RemoteAccessService.h b/automotive/remoteaccess/hal/default/include/RemoteAccessService.h index 6266de8419..8716e48bb9 100644 --- a/automotive/remoteaccess/hal/default/include/RemoteAccessService.h +++ b/automotive/remoteaccess/hal/default/include/RemoteAccessService.h @@ -111,6 +111,8 @@ class RemoteAccessService WakeupClient::StubInterface* mGrpcStub; std::thread mThread; + // Whether the GRPC server exists. Only checked and set during init. + bool mGrpcServerExist = false; std::mutex mLock; std::condition_variable mCv; std::shared_ptr @@ -121,7 +123,7 @@ class RemoteAccessService // A mutex to make sure startTaskLoop does not overlap with stopTaskLoop. std::mutex mStartStopTaskLoopLock; bool mTaskLoopRunning GUARDED_BY(mStartStopTaskLoopLock) = false; - bool mGrpcConnected GUARDED_BY(mLock) = false; + bool mGrpcReadChannelOpen GUARDED_BY(mLock) = false; std::unordered_map mClientIdToTaskCount GUARDED_BY(mLock); // Default wait time before retry connecting to remote access client is 10s. @@ -143,9 +145,10 @@ class RemoteAccessService void debugInjectTask(int fd, std::string_view clientId, std::string_view taskData); void debugInjectTaskNextReboot(int fd, std::string_view clientId, std::string_view taskData, const char* latencyInSecStr); - void updateGrpcConnected(bool connected); + void updateGrpcReadChannelOpen(bool grpcReadChannelOpen); android::base::Result deliverRemoteTaskThroughCallback(const std::string& clientId, std::string_view taskData); + bool isTaskScheduleSupported(); }; } // namespace remoteaccess diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp index d4ba8641b7..28c5cd5cf2 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp @@ -30,10 +30,9 @@ constexpr char SERVICE_NAME[] = "android.hardware.automotive.remoteaccess.IRemoteAccess/default"; int main(int /* argc */, char* /* argv */[]) { -#ifndef GRPC_SERVICE_ADDRESS - LOG(ERROR) << "GRPC_SERVICE_ADDRESS is not defined, exiting"; - exit(1); -#endif + android::hardware::automotive::remoteaccess::WakeupClient::StubInterface* grpcStub = nullptr; + +#ifdef GRPC_SERVICE_ADDRESS LOG(INFO) << "Registering RemoteAccessService as service, server: " << GRPC_SERVICE_ADDRESS << "..."; grpc::ChannelArguments grpcargs = {}; @@ -47,11 +46,18 @@ int main(int /* argc */, char* /* argv */[]) { android::netdevice::waitFor({GRPC_SERVICE_IFNAME}, android::netdevice::WaitCondition::PRESENT_AND_UP); LOG(INFO) << "Waiting for interface: " << GRPC_SERVICE_IFNAME << " done"; -#endif +#endif // #ifdef GRPC_SERVICE_IFNAME auto channel = grpc::CreateChannel(GRPC_SERVICE_ADDRESS, grpc::InsecureChannelCredentials()); auto clientStub = android::hardware::automotive::remoteaccess::WakeupClient::NewStub(channel); + + grpcStub = clientStub.get(); + +#else + LOG(INFO) << "GRPC_SERVICE_ADDRESS is not defined, work in fake mode"; +#endif // #ifdef GRPC_SERVICE_ADDRESS + auto service = ndk::SharedRefBase::make< - android::hardware::automotive::remoteaccess::RemoteAccessService>(clientStub.get()); + android::hardware::automotive::remoteaccess::RemoteAccessService>(grpcStub); binder_exception_t err = AServiceManager_addService(service->asBinder().get(), SERVICE_NAME); if (err != EX_NONE) { diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp index 1b42a1f091..dbd5bed7df 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp @@ -103,6 +103,10 @@ std::string boolToString(bool x) { RemoteAccessService::RemoteAccessService(WakeupClient::StubInterface* grpcStub) : mGrpcStub(grpcStub) { + if (mGrpcStub != nullptr) { + mGrpcServerExist = true; + } + std::ifstream debugTaskFile; debugTaskFile.open(DEBUG_TASK_FILE, std::ios::in); if (!debugTaskFile.is_open()) { @@ -177,9 +181,9 @@ void RemoteAccessService::maybeStopTaskLoop() { mTaskLoopRunning = false; } -void RemoteAccessService::updateGrpcConnected(bool connected) { +void RemoteAccessService::updateGrpcReadChannelOpen(bool grpcReadChannelOpen) { std::lock_guard lockGuard(mLock); - mGrpcConnected = connected; + mGrpcReadChannelOpen = grpcReadChannelOpen; } Result RemoteAccessService::deliverRemoteTaskThroughCallback(const std::string& clientId, @@ -213,7 +217,7 @@ void RemoteAccessService::runTaskLoop() { mGetRemoteTasksContext.reset(new ClientContext()); reader = mGrpcStub->GetRemoteTasks(mGetRemoteTasksContext.get(), request); } - updateGrpcConnected(true); + updateGrpcReadChannelOpen(true); GetRemoteTasksResponse response; while (reader->Read(&response)) { ALOGI("Receiving one task from remote task client"); @@ -225,7 +229,7 @@ void RemoteAccessService::runTaskLoop() { continue; } } - updateGrpcConnected(false); + updateGrpcReadChannelOpen(false); Status status = reader->Finish(); mGetRemoteTasksContext.reset(); @@ -298,6 +302,11 @@ ScopedAStatus RemoteAccessService::clearRemoteTaskCallback() { } ScopedAStatus RemoteAccessService::notifyApStateChange(const ApState& newState) { + if (!mGrpcServerExist) { + ALOGW("GRPC server does not exist, do nothing"); + return ScopedAStatus::ok(); + } + ClientContext context; NotifyWakeupRequiredRequest request = {}; request.set_iswakeuprequired(newState.isWakeupRequired); @@ -315,19 +324,40 @@ ScopedAStatus RemoteAccessService::notifyApStateChange(const ApState& newState) return ScopedAStatus::ok(); } +bool RemoteAccessService::isTaskScheduleSupported() { + if (!mGrpcServerExist) { + ALOGW("GRPC server does not exist, task scheduling not supported"); + return false; + } + + return true; +} + ScopedAStatus RemoteAccessService::isTaskScheduleSupported(bool* out) { - *out = true; + *out = isTaskScheduleSupported(); return ScopedAStatus::ok(); } ndk::ScopedAStatus RemoteAccessService::getSupportedTaskTypesForScheduling( std::vector* out) { + out->clear(); + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, return empty task types"); + return ScopedAStatus::ok(); + } + // TODO(b/316233421): support ENTER_GARAGE_MODE type. out->push_back(TaskType::CUSTOM); return ScopedAStatus::ok(); } ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, return exception"); + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "task scheduling is not supported"); + } + ClientContext context; ScheduleTaskRequest request = {}; ScheduleTaskResponse response = {}; @@ -379,6 +409,11 @@ ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo ScopedAStatus RemoteAccessService::unscheduleTask(const std::string& clientId, const std::string& scheduleId) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, do nothing"); + return ScopedAStatus::ok(); + } + ClientContext context; UnscheduleTaskRequest request = {}; UnscheduleTaskResponse response = {}; @@ -392,6 +427,11 @@ ScopedAStatus RemoteAccessService::unscheduleTask(const std::string& clientId, } ScopedAStatus RemoteAccessService::unscheduleAllTasks(const std::string& clientId) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, do nothing"); + return ScopedAStatus::ok(); + } + ClientContext context; UnscheduleAllTasksRequest request = {}; UnscheduleAllTasksResponse response = {}; @@ -405,6 +445,12 @@ ScopedAStatus RemoteAccessService::unscheduleAllTasks(const std::string& clientI ScopedAStatus RemoteAccessService::isTaskScheduled(const std::string& clientId, const std::string& scheduleId, bool* out) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, return false"); + *out = false; + return ScopedAStatus::ok(); + } + ClientContext context; IsTaskScheduledRequest request = {}; IsTaskScheduledResponse response = {}; @@ -420,6 +466,12 @@ ScopedAStatus RemoteAccessService::isTaskScheduled(const std::string& clientId, ScopedAStatus RemoteAccessService::getAllPendingScheduledTasks(const std::string& clientId, std::vector* out) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, return empty array"); + out->clear(); + return ScopedAStatus::ok(); + } + ClientContext context; GetAllPendingScheduledTasksRequest request = {}; GetAllPendingScheduledTasksResponse response = {}; @@ -560,9 +612,11 @@ void RemoteAccessService::printCurrentStatus(int fd) { dprintf(fd, "\nRemoteAccess HAL status \n" "Remote task callback registered: %s\n" - "Task receiving GRPC connection established: %s\n" + "GRPC server exist: %s\n" + "GRPC read channel for receiving tasks open: %s\n" "Received task count by clientId: \n%s\n", - boolToString(mRemoteTaskCallback.get()).c_str(), boolToString(mGrpcConnected).c_str(), + boolToString(mRemoteTaskCallback.get()).c_str(), boolToString(mGrpcServerExist).c_str(), + boolToString(mGrpcReadChannelOpen).c_str(), clientIdToTaskCountToStringLocked().c_str()); } -- GitLab From 7d96d9e0ff955fabc723d60b7715a64494738e3c Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Thu, 11 Jan 2024 00:39:13 +0000 Subject: [PATCH 165/418] Effect VTS: update VtsHalDownmixTargetTest for data validation For downmix, the output buffer size can be diff with input Bug: 318926783 Bug: 317946442 Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit Change-Id: I0dc0009e1779b842a4f3cdcc047d225310a304f9 --- audio/aidl/vts/VtsHalDownmixTargetTest.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp index b82bde114b..360bf2671f 100644 --- a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp +++ b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp @@ -138,7 +138,6 @@ class DownmixEffectHelper : public EffectHelper { void setDataTestParams(int32_t layoutType) { mInputBuffer.resize(kBufferSize); - mOutputBuffer.resize(kBufferSize); // Get the number of channels used mInputChannelCount = getChannelCount( @@ -146,6 +145,7 @@ class DownmixEffectHelper : public EffectHelper { // In case of downmix, output is always configured to stereo layout. mOutputBufferSize = (mInputBuffer.size() / mInputChannelCount) * kOutputChannelCount; + mOutputBuffer.resize(mOutputBufferSize); } // Generate mInputBuffer values between -kMaxDownmixSample to kMaxDownmixSample @@ -262,13 +262,13 @@ class DownmixFoldDataTest : public ::testing::TestWithParam Date: Wed, 10 Jan 2024 21:43:58 -0500 Subject: [PATCH 166/418] Don't query unused values lock() will be removing these params in the future and they are unused anyway, so remove them Test: make Change-Id: I339c3b9ffa8e7a9cef50d1d80c8cd1a7d0950d82 --- .../evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp | 3 +-- .../video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp b/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp index 8181e4733e..42b80088a8 100644 --- a/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp +++ b/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp @@ -222,10 +222,9 @@ void EvsVideoEmulatedCamera::onCodecOutputAvailable(const int32_t index, // Lock our output buffer for writing uint8_t* pixels = nullptr; - int32_t bytesPerStride = 0; auto& mapper = ::android::GraphicBufferMapper::get(); mapper.lock(renderBufferHandle, GRALLOC_USAGE_SW_WRITE_OFTEN | GRALLOC_USAGE_SW_READ_NEVER, - ::android::Rect(mWidth, mHeight), (void**)&pixels, nullptr, &bytesPerStride); + ::android::Rect(mWidth, mHeight), (void**)&pixels); // If we failed to lock the pixel buffer, we're about to crash, but log it first if (!pixels) { diff --git a/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp b/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp index f24c6d1be2..9a75e6ed83 100644 --- a/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp +++ b/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp @@ -630,10 +630,7 @@ int colorFormatConversion(BufferInfo* buffer, buffer_handle_t buff, PixelFormat if (error != android::NO_ERROR) return 1; } else { void* data; - int32_t outBytesPerPixel; - int32_t outBytesPerStride; - error = gbmapper.lock(buff, buffer->omxBuffer.attr.anwBuffer.usage, rect, &data, - &outBytesPerPixel, &outBytesPerStride); + error = gbmapper.lock(buff, buffer->omxBuffer.attr.anwBuffer.usage, rect, &data); EXPECT_EQ(error, android::NO_ERROR); if (error != android::NO_ERROR) return 1; -- GitLab From 7c53bb314475fa41f666b52a079a62244181051b Mon Sep 17 00:00:00 2001 From: Shikha Panwar Date: Wed, 3 Jan 2024 17:58:11 +0000 Subject: [PATCH 167/418] Secretkeeper: VTS to use dice_chain as identity VTS (being the client of Sk) will use dice_chain as the identity. Consequently we can use the sealing policy constructed out of this identity & no more need to use HYPOTHETICAL_DICE_POLICY hack. For sample identity, we create dice_sample module which constructs an example dice chain (in Explicit key chain format), along with secrets. Test: Secretkeeper VTS Bug: 291224769 Change-Id: Ia1d1a92391d3ee455bf9fe254770b4a9bd08cb12 --- security/secretkeeper/aidl/vts/Android.bp | 3 + security/secretkeeper/aidl/vts/dice_sample.rs | 185 ++++++++++++++++++ .../aidl/vts/secretkeeper_test_client.rs | 97 ++++++--- 3 files changed, 256 insertions(+), 29 deletions(-) create mode 100644 security/secretkeeper/aidl/vts/dice_sample.rs diff --git a/security/secretkeeper/aidl/vts/Android.bp b/security/secretkeeper/aidl/vts/Android.bp index 1e01149086..720b8a2479 100644 --- a/security/secretkeeper/aidl/vts/Android.bp +++ b/security/secretkeeper/aidl/vts/Android.bp @@ -30,6 +30,8 @@ rust_test { ], test_config: "AndroidTest.xml", rustlibs: [ + "libdiced_open_dice", + "libdice_policy", "libsecretkeeper_client", "libsecretkeeper_comm_nostd", "libsecretkeeper_core_nostd", @@ -39,6 +41,7 @@ rust_test { "libcoset", "libauthgraph_vts_test", "libbinder_rs", + "libciborium", "libcoset", "liblog_rust", ], diff --git a/security/secretkeeper/aidl/vts/dice_sample.rs b/security/secretkeeper/aidl/vts/dice_sample.rs new file mode 100644 index 0000000000..db532b1d3c --- /dev/null +++ b/security/secretkeeper/aidl/vts/dice_sample.rs @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//! This module provides a set of sample DICE chains for testing purpose only. Note that this +//! module duplicates a large chunk of code in libdiced_sample_inputs. We avoid modifying the +//! latter for testing purposes because it is installed on device. + +use ciborium::{de, ser, value::Value}; +use core::ffi::CStr; +use coset::{iana, Algorithm, AsCborValue, CoseKey, KeyOperation, KeyType, Label}; +use diced_open_dice::{ + derive_cdi_private_key_seed, keypair_from_seed, retry_bcc_format_config_descriptor, + retry_bcc_main_flow, retry_dice_main_flow, Config, DiceArtifacts, DiceConfigValues, DiceError, + DiceMode, InputValues, OwnedDiceArtifacts, CDI_SIZE, HASH_SIZE, HIDDEN_SIZE, +}; +use log::error; +use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; + +/// Sample UDS used to perform the root DICE flow by `make_sample_bcc_and_cdis`. +const UDS: &[u8; CDI_SIZE] = &[ + 0x65, 0x4f, 0xab, 0xa9, 0xa5, 0xad, 0x0f, 0x5e, 0x15, 0xc3, 0x12, 0xf7, 0x77, 0x45, 0xfa, 0x55, + 0x18, 0x6a, 0xa6, 0x34, 0xb6, 0x7c, 0x82, 0x7b, 0x89, 0x4c, 0xc5, 0x52, 0xd3, 0x27, 0x35, 0x8e, +]; + +const CODE_HASH_ABL: [u8; HASH_SIZE] = [ + 0x16, 0x48, 0xf2, 0x55, 0x53, 0x23, 0xdd, 0x15, 0x2e, 0x83, 0x38, 0xc3, 0x64, 0x38, 0x63, 0x26, + 0x0f, 0xcf, 0x5b, 0xd1, 0x3a, 0xd3, 0x40, 0x3e, 0x23, 0xf8, 0x34, 0x4c, 0x6d, 0xa2, 0xbe, 0x25, + 0x1c, 0xb0, 0x29, 0xe8, 0xc3, 0xfb, 0xb8, 0x80, 0xdc, 0xb1, 0xd2, 0xb3, 0x91, 0x4d, 0xd3, 0xfb, + 0x01, 0x0f, 0xe4, 0xe9, 0x46, 0xa2, 0xc0, 0x26, 0x57, 0x5a, 0xba, 0x30, 0xf7, 0x15, 0x98, 0x14, +]; +const AUTHORITY_HASH_ABL: [u8; HASH_SIZE] = [ + 0xf9, 0x00, 0x9d, 0xc2, 0x59, 0x09, 0xe0, 0xb6, 0x98, 0xbd, 0xe3, 0x97, 0x4a, 0xcb, 0x3c, 0xe7, + 0x6b, 0x24, 0xc3, 0xe4, 0x98, 0xdd, 0xa9, 0x6a, 0x41, 0x59, 0x15, 0xb1, 0x23, 0xe6, 0xc8, 0xdf, + 0xfb, 0x52, 0xb4, 0x52, 0xc1, 0xb9, 0x61, 0xdd, 0xbc, 0x5b, 0x37, 0x0e, 0x12, 0x12, 0xb2, 0xfd, + 0xc1, 0x09, 0xb0, 0xcf, 0x33, 0x81, 0x4c, 0xc6, 0x29, 0x1b, 0x99, 0xea, 0xae, 0xfd, 0xaa, 0x0d, +]; +const HIDDEN_ABL: [u8; HIDDEN_SIZE] = [ + 0xa2, 0x01, 0xd0, 0xc0, 0xaa, 0x75, 0x3c, 0x06, 0x43, 0x98, 0x6c, 0xc3, 0x5a, 0xb5, 0x5f, 0x1f, + 0x0f, 0x92, 0x44, 0x3b, 0x0e, 0xd4, 0x29, 0x75, 0xe3, 0xdb, 0x36, 0xda, 0xc8, 0x07, 0x97, 0x4d, + 0xff, 0xbc, 0x6a, 0xa4, 0x8a, 0xef, 0xc4, 0x7f, 0xf8, 0x61, 0x7d, 0x51, 0x4d, 0x2f, 0xdf, 0x7e, + 0x8c, 0x3d, 0xa3, 0xfc, 0x63, 0xd4, 0xd4, 0x74, 0x8a, 0xc4, 0x14, 0x45, 0x83, 0x6b, 0x12, 0x7e, +]; +const CODE_HASH_AVB: [u8; HASH_SIZE] = [ + 0xa4, 0x0c, 0xcb, 0xc1, 0xbf, 0xfa, 0xcc, 0xfd, 0xeb, 0xf4, 0xfc, 0x43, 0x83, 0x7f, 0x46, 0x8d, + 0xd8, 0xd8, 0x14, 0xc1, 0x96, 0x14, 0x1f, 0x6e, 0xb3, 0xa0, 0xd9, 0x56, 0xb3, 0xbf, 0x2f, 0xfa, + 0x88, 0x70, 0x11, 0x07, 0x39, 0xa4, 0xd2, 0xa9, 0x6b, 0x18, 0x28, 0xe8, 0x29, 0x20, 0x49, 0x0f, + 0xbb, 0x8d, 0x08, 0x8c, 0xc6, 0x54, 0xe9, 0x71, 0xd2, 0x7e, 0xa4, 0xfe, 0x58, 0x7f, 0xd3, 0xc7, +]; +const AUTHORITY_HASH_AVB: [u8; HASH_SIZE] = [ + 0xb2, 0x69, 0x05, 0x48, 0x56, 0xb5, 0xfa, 0x55, 0x6f, 0xac, 0x56, 0xd9, 0x02, 0x35, 0x2b, 0xaa, + 0x4c, 0xba, 0x28, 0xdd, 0x82, 0x3a, 0x86, 0xf5, 0xd4, 0xc2, 0xf1, 0xf9, 0x35, 0x7d, 0xe4, 0x43, + 0x13, 0xbf, 0xfe, 0xd3, 0x36, 0xd8, 0x1c, 0x12, 0x78, 0x5c, 0x9c, 0x3e, 0xf6, 0x66, 0xef, 0xab, + 0x3d, 0x0f, 0x89, 0xa4, 0x6f, 0xc9, 0x72, 0xee, 0x73, 0x43, 0x02, 0x8a, 0xef, 0xbc, 0x05, 0x98, +]; +const HIDDEN_AVB: [u8; HIDDEN_SIZE] = [ + 0x5b, 0x3f, 0xc9, 0x6b, 0xe3, 0x95, 0x59, 0x40, 0x5e, 0x64, 0xe5, 0x64, 0x3f, 0xfd, 0x21, 0x09, + 0x9d, 0xf3, 0xcd, 0xc7, 0xa4, 0x2a, 0xe2, 0x97, 0xdd, 0xe2, 0x4f, 0xb0, 0x7d, 0x7e, 0xf5, 0x8e, + 0xd6, 0x4d, 0x84, 0x25, 0x54, 0x41, 0x3f, 0x8f, 0x78, 0x64, 0x1a, 0x51, 0x27, 0x9d, 0x55, 0x8a, + 0xe9, 0x90, 0x35, 0xab, 0x39, 0x80, 0x4b, 0x94, 0x40, 0x84, 0xa2, 0xfd, 0x73, 0xeb, 0x35, 0x7a, +]; +const AUTHORITY_HASH_ANDROID: [u8; HASH_SIZE] = [ + 0x04, 0x25, 0x5d, 0x60, 0x5f, 0x5c, 0x45, 0x0d, 0xf2, 0x9a, 0x6e, 0x99, 0x30, 0x03, 0xb8, 0xd6, + 0xe1, 0x99, 0x71, 0x1b, 0xf8, 0x44, 0xfa, 0xb5, 0x31, 0x79, 0x1c, 0x37, 0x68, 0x4e, 0x1d, 0xc0, + 0x24, 0x74, 0x68, 0xf8, 0x80, 0x20, 0x3e, 0x44, 0xb1, 0x43, 0xd2, 0x9c, 0xfc, 0x12, 0x9e, 0x77, + 0x0a, 0xde, 0x29, 0x24, 0xff, 0x2e, 0xfa, 0xc7, 0x10, 0xd5, 0x73, 0xd4, 0xc6, 0xdf, 0x62, 0x9f, +]; + +/// Encode the public key to CBOR Value. The input (raw 32 bytes) is wrapped into CoseKey. +fn ed25519_public_key_to_cbor_value(public_key: &[u8]) -> Value { + let key = CoseKey { + kty: KeyType::Assigned(iana::KeyType::OKP), + alg: Some(Algorithm::Assigned(iana::Algorithm::EdDSA)), + key_ops: vec![KeyOperation::Assigned(iana::KeyOperation::Verify)].into_iter().collect(), + params: vec![ + ( + Label::Int(iana::Ec2KeyParameter::Crv as i64), + Value::from(iana::EllipticCurve::Ed25519 as u64), + ), + (Label::Int(iana::Ec2KeyParameter::X as i64), Value::Bytes(public_key.to_vec())), + ], + ..Default::default() + }; + key.to_cbor_value().unwrap() +} + +/// Makes a DICE chain (BCC) from the sample input. +/// +/// The DICE chain is of the following format: +/// public key derived from UDS -> ABL certificate -> AVB certificate -> Android certificate +/// The `security_version` is included in the Android certificate. +pub fn make_explicit_owned_dice(security_version: u64) -> OwnedDiceArtifactsWithExplicitKey { + let dice = make_sample_bcc_and_cdis(security_version); + OwnedDiceArtifactsWithExplicitKey::from_owned_artifacts(dice).unwrap() +} + +fn make_sample_bcc_and_cdis(security_version: u64) -> OwnedDiceArtifacts { + let private_key_seed = derive_cdi_private_key_seed(UDS).unwrap(); + + // Gets the root public key in DICE chain (BCC). + let (public_key, _) = keypair_from_seed(private_key_seed.as_array()).unwrap(); + let ed25519_public_key_value = ed25519_public_key_to_cbor_value(&public_key); + + // Gets the ABL certificate to as the root certificate of DICE chain. + let config_values = DiceConfigValues { + component_name: Some(CStr::from_bytes_with_nul(b"ABL\0").unwrap()), + component_version: Some(1), + resettable: true, + ..Default::default() + }; + let config_descriptor = retry_bcc_format_config_descriptor(&config_values).unwrap(); + let input_values = InputValues::new( + CODE_HASH_ABL, + Config::Descriptor(config_descriptor.as_slice()), + AUTHORITY_HASH_ABL, + DiceMode::kDiceModeNormal, + HIDDEN_ABL, + ); + let (cdi_values, cert) = retry_dice_main_flow(UDS, UDS, &input_values).unwrap(); + let bcc_value = + Value::Array(vec![ed25519_public_key_value, de::from_reader(&cert[..]).unwrap()]); + let mut bcc: Vec = vec![]; + ser::into_writer(&bcc_value, &mut bcc).unwrap(); + + // Appends AVB certificate to DICE chain. + let config_values = DiceConfigValues { + component_name: Some(CStr::from_bytes_with_nul(b"AVB\0").unwrap()), + component_version: Some(1), + resettable: true, + ..Default::default() + }; + let config_descriptor = retry_bcc_format_config_descriptor(&config_values).unwrap(); + let input_values = InputValues::new( + CODE_HASH_AVB, + Config::Descriptor(config_descriptor.as_slice()), + AUTHORITY_HASH_AVB, + DiceMode::kDiceModeNormal, + HIDDEN_AVB, + ); + let dice_artifacts = + retry_bcc_main_flow(&cdi_values.cdi_attest, &cdi_values.cdi_seal, &bcc, &input_values) + .unwrap(); + + // Appends Android certificate to DICE chain. + let config_values = DiceConfigValues { + component_name: Some(CStr::from_bytes_with_nul(b"Android\0").unwrap()), + component_version: Some(12), + security_version: Some(security_version), + resettable: true, + ..Default::default() + }; + let config_descriptor = retry_bcc_format_config_descriptor(&config_values).unwrap(); + let input_values = InputValues::new( + [0u8; HASH_SIZE], // code_hash + Config::Descriptor(config_descriptor.as_slice()), + AUTHORITY_HASH_ANDROID, + DiceMode::kDiceModeNormal, + [0u8; HIDDEN_SIZE], // hidden + ); + retry_bcc_main_flow( + dice_artifacts.cdi_attest(), + dice_artifacts.cdi_seal(), + dice_artifacts + .bcc() + .ok_or_else(|| { + error!("bcc is none"); + DiceError::InvalidInput + }) + .unwrap(), + &input_values, + ) + .unwrap() +} diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index 37b280422d..a62546d779 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -15,6 +15,9 @@ */ #![cfg(test)] +mod dice_sample; + +use crate::dice_sample::make_explicit_owned_dice; use rdroidtest_macro::{ignore_if, rdroidtest}; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; @@ -23,6 +26,8 @@ use authgraph_vts_test as ag_vts; use authgraph_boringssl as boring; use authgraph_core::key; use coset::{CborSerializable, CoseEncrypt0}; +use dice_policy::{ConstraintSpec, ConstraintType, DicePolicy}; +use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; use secretkeeper_client::SkSession; use secretkeeper_core::cipher; use secretkeeper_comm::data_types::error::SecretkeeperError; @@ -37,16 +42,6 @@ use secretkeeper_comm::data_types::packet::{ResponsePacket, ResponseType}; const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; const CURRENT_VERSION: u64 = 1; -// TODO(b/291238565): This will change once libdice_policy switches to Explicit-key DiceCertChain -// This is generated by patching libdice_policy such that it dumps an example dice chain & -// a policy, such that the former matches the latter. -const HYPOTHETICAL_DICE_POLICY: [u8; 49] = [ - 0x84, 0x01, 0x81, 0x83, 0x01, 0x80, 0x01, 0x81, 0x83, 0x01, 0x80, 0x43, 0xa1, 0x01, 0x00, 0x82, - 0x83, 0x01, 0x81, 0x01, 0x73, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x63, - 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x83, 0x02, 0x82, 0x03, 0x18, 0x64, 0x19, 0xe9, - 0x75, -]; - // Random bytes (of ID_SIZE/SECRET_SIZE) generated for tests. const ID_EXAMPLE: Id = Id([ 0xF1, 0xB2, 0xED, 0x3B, 0xD1, 0xBD, 0xF0, 0x7D, 0xE1, 0xF0, 0x01, 0xFC, 0x61, 0x71, 0xD3, 0x42, @@ -89,6 +84,7 @@ fn get_connection(instance: &str) -> binder::Strong { struct SkClient { sk: binder::Strong, session: SkSession, + dice_artifacts: OwnedDiceArtifactsWithExplicitKey, } impl Drop for SkClient { @@ -99,9 +95,20 @@ impl Drop for SkClient { } impl SkClient { + /// Create an `SkClient` using the default `OwnedDiceArtifactsWithExplicitKey` for identity. fn new(instance: &str) -> Self { + let default_dice = make_explicit_owned_dice(/*Security version in a node */ 5); + Self::with_identity(instance, default_dice) + } + + /// Create an `SkClient` using the given `OwnedDiceArtifactsWithExplicitKey` for identity. + fn with_identity(instance: &str, dice_artifacts: OwnedDiceArtifactsWithExplicitKey) -> Self { let sk = get_connection(instance); - Self { sk: sk.clone(), session: SkSession::new(sk).unwrap() } + Self { + sk: sk.clone(), + session: SkSession::new(sk, &dice_artifacts).unwrap(), + dice_artifacts, + } } /// This method is wrapper that use `SkSession::secret_management_request` which handles @@ -144,13 +151,12 @@ impl SkClient { .unwrap() } - /// Helper method to store a secret. + /// Helper method to store a secret. This uses the default compatible sealing_policy on + /// dice_chain. fn store(&mut self, id: &Id, secret: &Secret) { - let store_request = StoreSecretRequest { - id: id.clone(), - secret: secret.clone(), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; + let sealing_policy = sealing_policy(self.dice_artifacts.explicit_key_dice_chain().unwrap()); + let store_request = + StoreSecretRequest { id: id.clone(), secret: secret.clone(), sealing_policy }; let store_request = store_request.serialize_to_packet().to_vec().unwrap(); let store_response = self.secret_management_request(&store_request); @@ -192,6 +198,34 @@ impl SkClient { } } +/// Construct a sealing policy on the dice chain. This method uses the following set of +/// constraints which are compatible with sample DICE chains used in VTS. +/// 1. ExactMatch on AUTHORITY_HASH (non-optional). +/// 2. ExactMatch on KEY_MODE (non-optional). +/// 3. GreaterOrEqual on SECURITY_VERSION (optional). +fn sealing_policy(dice: &[u8]) -> Vec { + let authority_hash: i64 = -4670549; + let key_mode: i64 = -4670551; + let config_desc: i64 = -4670548; + let security_version: i64 = -70005; + + let constraint_spec = [ + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![authority_hash], + /* Optional */ false, + ), + ConstraintSpec::new(ConstraintType::ExactMatch, vec![key_mode], false), + ConstraintSpec::new( + ConstraintType::GreaterOrEqual, + vec![config_desc, security_version], + true, + ), + ]; + + DicePolicy::from_dice_chain(dice, &constraint_spec).unwrap().to_vec().unwrap() +} + /// Perform AuthGraph key exchange, returning the session keys and session ID. fn authgraph_key_exchange(sk: binder::Strong) -> ([key::AesKey; 2], Vec) { let sink = sk.getAuthGraphKe().expect("failed to get AuthGraph"); @@ -370,9 +404,11 @@ fn secretkeeper_store_delete_all(instance: String) { // first few messages. #[rdroidtest(get_instances())] fn secret_management_replay_protection_seq_num(instance: String) { - let sk_client = SkClient::new(&instance); + let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); + let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); + let sk_client = SkClient::with_identity(&instance, dice_chain); // Construct encoded request packets for the test - let (req_1, req_2, req_3) = construct_secret_management_requests(); + let (req_1, req_2, req_3) = construct_secret_management_requests(sealing_policy); // Lets now construct the seq_numbers(in request & expected in response) let mut seq_a = SeqNum::new(); @@ -404,10 +440,12 @@ fn secret_management_replay_protection_seq_num(instance: String) { // for new sessions. #[rdroidtest(get_instances())] fn secret_management_replay_protection_seq_num_per_session(instance: String) { - let sk_client = SkClient::new(&instance); + let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); + let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); + let sk_client = SkClient::with_identity(&instance, dice_chain); // Construct encoded request packets for the test - let (req_1, _, _) = construct_secret_management_requests(); + let (req_1, _, _) = construct_secret_management_requests(sealing_policy); // Lets now construct the seq_number (in request & expected in response) let mut seq_a = SeqNum::new(); @@ -434,10 +472,12 @@ fn secret_management_replay_protection_seq_num_per_session(instance: String) { #[rdroidtest(get_instances())] #[ignore] fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: String) { - let sk_client = SkClient::new(&instance); + let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); + let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); + let sk_client = SkClient::with_identity(&instance, dice_chain); // Construct encoded request packets for the test - let (req_1, req_2, _) = construct_secret_management_requests(); + let (req_1, req_2, _) = construct_secret_management_requests(sealing_policy); // Lets now construct the seq_numbers(in request & expected in response) let mut seq_a = SeqNum::new(); @@ -451,14 +491,13 @@ fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: Str sk_client.secret_management_request_custom_aad(&req_2, /*Skipping seq_1*/ &seq_2, &seq_1); } -fn construct_secret_management_requests() -> (Vec, Vec, Vec) { +// Helper method that constructs 3 SecretManagement requests. Callers would usually not care about +// what each of the request concretely is. +fn construct_secret_management_requests(sealing_policy: Vec) -> (Vec, Vec, Vec) { let version_request = GetVersionRequest {}; let version_request = version_request.serialize_to_packet().to_vec().unwrap(); - let store_request = StoreSecretRequest { - id: ID_EXAMPLE, - secret: SECRET_EXAMPLE, - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; + let store_request = + StoreSecretRequest { id: ID_EXAMPLE, secret: SECRET_EXAMPLE, sealing_policy }; let store_request = store_request.serialize_to_packet().to_vec().unwrap(); let get_request = GetSecretRequest { id: ID_EXAMPLE, updated_sealing_policy: None }; let get_request = get_request.serialize_to_packet().to_vec().unwrap(); -- GitLab From f91d7adfc4d118e3f9b9f3cb2d7043863b41d5f1 Mon Sep 17 00:00:00 2001 From: Andres Schafhauser Date: Wed, 10 Jan 2024 12:20:09 -0800 Subject: [PATCH 168/418] APF exempt list for TVs to use hardware feature Instead of expecting MdnsOffloadManagerService to exist which is correct in principle but VTS fails as use of GSI is required. Bug: 318332352 Test: atest VtsHalWifiStaIfaceTargetTest Change-Id: I47453e7ad009b08aadf7c09fc144d2166ef9991b --- .../vts/functional/wifi_sta_iface_aidl_test.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) 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 1ea1237a2d..f09a26bbe6 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -69,18 +69,9 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { std::shared_ptr wifi_sta_iface_; - // Checks if the MdnsOffloadManagerService is installed. - bool isMdnsOffloadServicePresent() { - int status = - // --query-flags MATCH_SYSTEM_ONLY(1048576) will only return matched service - // installed on system or system_ext partition. The MdnsOffloadManagerService should - // be installed on system_ext partition. - // NOLINTNEXTLINE(cert-env33-c) - system("pm query-services --query-flags 1048576" - " com.android.tv.mdnsoffloadmanager/" - "com.android.tv.mdnsoffloadmanager.MdnsOffloadManagerService" - " | egrep -q mdnsoffloadmanager"); - return status == 0; + // Checks if the mDNS Offload is supported by any NIC. + bool isMdnsOffloadPresentInNIC() { + return testing::deviceSupportsFeature("android.hardware.mdns_offload"); } // Detected panel TV device by using ro.oem.key1 property. @@ -146,7 +137,7 @@ TEST_P(WifiStaIfaceAidlTest, GetFeatureSet) { TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi // chipset does not have sufficient RAM to do so. - if (isPanelTvDevice() && isMdnsOffloadServicePresent()) { + if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; } int vendor_api_level = property_get_int32("ro.vendor.api_level", 0); -- GitLab From 393ca9ffc2e9bd5f40910e220d139c726cbcea62 Mon Sep 17 00:00:00 2001 From: Andres Schafhauser Date: Wed, 10 Jan 2024 12:20:09 -0800 Subject: [PATCH 169/418] APF exempt list for TVs to use hardware feature Instead of expecting MdnsOffloadManagerService to exist which is correct in principle but VTS fails as use of GSI is required. Bug: 318332352 Test: atest VtsHalWifiStaIfaceTargetTest Merged-In: I47453e7ad009b08aadf7c09fc144d2166ef9991b Change-Id: I47453e7ad009b08aadf7c09fc144d2166ef9991b --- .../vts/functional/wifi_sta_iface_aidl_test.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) 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 1ea1237a2d..f09a26bbe6 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -69,18 +69,9 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { std::shared_ptr wifi_sta_iface_; - // Checks if the MdnsOffloadManagerService is installed. - bool isMdnsOffloadServicePresent() { - int status = - // --query-flags MATCH_SYSTEM_ONLY(1048576) will only return matched service - // installed on system or system_ext partition. The MdnsOffloadManagerService should - // be installed on system_ext partition. - // NOLINTNEXTLINE(cert-env33-c) - system("pm query-services --query-flags 1048576" - " com.android.tv.mdnsoffloadmanager/" - "com.android.tv.mdnsoffloadmanager.MdnsOffloadManagerService" - " | egrep -q mdnsoffloadmanager"); - return status == 0; + // Checks if the mDNS Offload is supported by any NIC. + bool isMdnsOffloadPresentInNIC() { + return testing::deviceSupportsFeature("android.hardware.mdns_offload"); } // Detected panel TV device by using ro.oem.key1 property. @@ -146,7 +137,7 @@ TEST_P(WifiStaIfaceAidlTest, GetFeatureSet) { TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi // chipset does not have sufficient RAM to do so. - if (isPanelTvDevice() && isMdnsOffloadServicePresent()) { + if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; } int vendor_api_level = property_get_int32("ro.vendor.api_level", 0); -- GitLab From 18fcb688bc3f1c8b426cc4060e0b4632e32de416 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Thu, 11 Jan 2024 09:54:50 -0800 Subject: [PATCH 170/418] Add android.virtualdevice.cts.VirtualAudioTest to postsubmit These tests exercise audio playback and capture on CF and are useful in spotting issues in the audio pipeline end-to-end. Bug: 316017930 Test: atest CtsVirtualDevicesTestCases Change-Id: If625cec5bc2d281f1e0d99b820f604f1bac7b621 --- audio/aidl/TEST_MAPPING | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/audio/aidl/TEST_MAPPING b/audio/aidl/TEST_MAPPING index 36c88dbad5..b5fcd86325 100644 --- a/audio/aidl/TEST_MAPPING +++ b/audio/aidl/TEST_MAPPING @@ -70,6 +70,14 @@ }, { "name": "audiosystem_tests" + }, + { + "name": "CtsVirtualDevicesTestCases", + "options" : [ + { + "include-filter": "android.virtualdevice.cts.VirtualAudioTest" + } + ] } ] } -- GitLab From 74e25d2decf72def35b098b77530f534b5747011 Mon Sep 17 00:00:00 2001 From: Jeff Pu Date: Mon, 8 Jan 2024 22:21:20 +0000 Subject: [PATCH 171/418] Fix Fingperint Virtual Hal cancellation while waiting finger touch Bug: 319146424 Test: atest BiometricsE2eTests:BiometricPromptAuthSuccessTest Test: atest android.hardware.biometrics.fingerprint.* Change-Id: I26a2dde01608177411cce3f9c68ee6fd1fd6aab8 --- .../aidl/default/FakeFingerprintEngine.cpp | 21 +++++++++++++++++++ .../fingerprint/aidl/default/Session.cpp | 1 + .../default/include/FakeFingerprintEngine.h | 3 +++ .../tests/FakeFingerprintEngineTest.cpp | 19 +++++++++++++++++ .../tests/FakeFingerprintEngineUdfpsTest.cpp | 3 +++ 5 files changed, 47 insertions(+) diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp index 4e8005214e..a7acf3d520 100644 --- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp +++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp @@ -62,12 +62,17 @@ void FakeFingerprintEngine::enrollImpl(ISessionCallback* cb, return; } + waitForFingerDown(cb, cancel); + updateContext(WorkMode::kEnroll, cb, const_cast&>(cancel), 0, hat); } void FakeFingerprintEngine::authenticateImpl(ISessionCallback* cb, int64_t operationId, const std::future& cancel) { BEGIN_OP(0); + + waitForFingerDown(cb, cancel); + updateContext(WorkMode::kAuthenticate, cb, const_cast&>(cancel), operationId, keymaster::HardwareAuthToken()); } @@ -84,6 +89,8 @@ void FakeFingerprintEngine::detectInteractionImpl(ISessionCallback* cb, return; } + waitForFingerDown(cb, cancel); + updateContext(WorkMode::kDetectInteract, cb, const_cast&>(cancel), 0, keymaster::HardwareAuthToken()); } @@ -398,6 +405,7 @@ ndk::ScopedAStatus FakeFingerprintEngine::onPointerDownImpl(int32_t /*pointerId* ndk::ScopedAStatus FakeFingerprintEngine::onPointerUpImpl(int32_t /*pointerId*/) { BEGIN_OP(0); + mFingerIsDown = false; return ndk::ScopedAStatus::ok(); } @@ -533,4 +541,17 @@ void FakeFingerprintEngine::lockoutTimerExpired(ISessionCallback* cb) { isLockoutTimerStarted = false; isLockoutTimerAborted = false; } + +void FakeFingerprintEngine::waitForFingerDown(ISessionCallback* cb, + const std::future& cancel) { + while (!mFingerIsDown) { + if (shouldCancel(cancel)) { + LOG(ERROR) << "waitForFingerDown, Fail: cancel"; + cb->onError(Error::CANCELED, 0 /* vendorCode */); + return; + } + SLEEP_MS(10); + } +} + } // namespace aidl::android::hardware::biometrics::fingerprint diff --git a/biometrics/fingerprint/aidl/default/Session.cpp b/biometrics/fingerprint/aidl/default/Session.cpp index c06c9317e8..0dd66032b6 100644 --- a/biometrics/fingerprint/aidl/default/Session.cpp +++ b/biometrics/fingerprint/aidl/default/Session.cpp @@ -249,6 +249,7 @@ ndk::ScopedAStatus Session::close() { ndk::ScopedAStatus Session::onPointerDown(int32_t pointerId, int32_t x, int32_t y, float minor, float major) { LOG(INFO) << "onPointerDown"; + mEngine->notifyFingerdown(); mWorker->schedule(Callable::from([this, pointerId, x, y, minor, major] { mEngine->onPointerDownImpl(pointerId, x, y, minor, major); enterIdling(); diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h index 15d83604d5..0d5357529d 100644 --- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h +++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h @@ -75,6 +75,7 @@ class FakeFingerprintEngine { enum class WorkMode : int8_t { kIdle = 0, kAuthenticate, kEnroll, kDetectInteract }; WorkMode getWorkMode() { return mWorkMode; } + void notifyFingerdown() { mFingerIsDown = true; } virtual std::string toString() const { std::ostringstream os; @@ -100,6 +101,7 @@ class FakeFingerprintEngine { keymaster::HardwareAuthToken mHat; std::future mCancel; int64_t mOperationId; + bool mFingerIsDown; private: static constexpr int32_t FINGERPRINT_ACQUIRED_VENDOR_BASE = 1000; @@ -109,6 +111,7 @@ class FakeFingerprintEngine { int32_t getRandomInRange(int32_t bound1, int32_t bound2); bool checkSensorLockout(ISessionCallback*); void clearLockout(ISessionCallback* cb); + void waitForFingerDown(ISessionCallback* cb, const std::future& cancel); FakeLockoutTracker mLockoutTracker; diff --git a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp index eedcae1a35..8b06c8ee50 100644 --- a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp +++ b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp @@ -185,6 +185,7 @@ TEST_F(FakeFingerprintEngineTest, Enroll) { FingerprintHalProperties::enrollments({}); FingerprintHalProperties::next_enrollment("4:0,0:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; + mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kEnroll); mEngine.fingerDownAction(); @@ -202,6 +203,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollCancel) { FingerprintHalProperties::next_enrollment(next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mCancel.set_value(); + mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); @@ -215,6 +217,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollFail) { auto next = "2:0,0:false"; FingerprintHalProperties::next_enrollment(next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; + mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::UNABLE_TO_PROCESS, mCallback->mError); @@ -228,6 +231,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { FingerprintHalProperties::next_enrollment("4:0,5-[12,1013]:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; int32_t prevCnt = mCallback->mLastAcquiredCount; + mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); @@ -242,6 +246,7 @@ TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { TEST_F(FakeFingerprintEngineTest, Authenticate) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kAuthenticate); mEngine.fingerDownAction(); @@ -255,6 +260,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { FingerprintHalProperties::enrollments({2}); FingerprintHalProperties::enrollment_hit(2); mCancel.set_value(); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); @@ -264,6 +270,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit({}); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); @@ -272,6 +279,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { TEST_F(FakeFingerprintEngineTest, AuthenticateNotEnrolled) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(3); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); @@ -282,6 +290,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { FingerprintHalProperties::enrollments({22, 2}); FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::lockout(true); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mLockoutPermanent); @@ -290,6 +299,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { FingerprintHalProperties::operation_authenticate_error(8); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(mCallback->mError, (Error)8); @@ -298,6 +308,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { FingerprintHalProperties::operation_authenticate_error(1009); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(mCallback->mError, (Error)7); @@ -306,6 +317,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { TEST_F(FakeFingerprintEngineTest, AuthenticateFails) { FingerprintHalProperties::operation_authenticate_fails(true); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); @@ -318,6 +330,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateAcquired) { FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_authenticate_acquired("4,1009"); int32_t prevCount = mCallback->mLastAcquiredCount; + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_FALSE(mCallback->mAuthenticateFailed); @@ -332,6 +345,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetect) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_detect_interaction_acquired(""); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kDetectInteract); mEngine.fingerDownAction(); @@ -345,6 +359,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectCancel) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(2); mCancel.set_value(); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); @@ -355,6 +370,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { FingerprintHalProperties::detect_interaction(true); FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit({}); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); @@ -363,6 +379,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { FingerprintHalProperties::enrollments({1, 2}); FingerprintHalProperties::enrollment_hit(25); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); @@ -371,6 +388,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { TEST_F(FakeFingerprintEngineTest, InteractionDetectError) { FingerprintHalProperties::detect_interaction(true); FingerprintHalProperties::operation_detect_interaction_error(8); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(0, mCallback->mInteractionDetectedCount); @@ -384,6 +402,7 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectAcquired) { FingerprintHalProperties::enrollment_hit(2); FingerprintHalProperties::operation_detect_interaction_acquired("4,1013"); int32_t prevCount = mCallback->mLastAcquiredCount; + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); diff --git a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp index f551899260..5a30db10e4 100644 --- a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp +++ b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp @@ -145,6 +145,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, initialization) { TEST_F(FakeFingerprintEngineUdfpsTest, authenticate) { std::shared_ptr cb = ndk::SharedRefBase::make(); std::promise cancel; + mEngine.notifyFingerdown(); mEngine.authenticateImpl(cb.get(), 1, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kAuthenticate); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); @@ -158,6 +159,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, enroll) { std::promise cancel; keymaster::HardwareAuthToken hat{.mac = {5, 6}}; FingerprintHalProperties::next_enrollment("5:0,0:true"); + mEngine.notifyFingerdown(); mEngine.enrollImpl(cb.get(), hat, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kEnroll); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); @@ -173,6 +175,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, detectInteraction) { FingerprintHalProperties::operation_detect_interaction_acquired(""); std::shared_ptr cb = ndk::SharedRefBase::make(); std::promise cancel; + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(cb.get(), cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kDetectInteract); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); -- GitLab From b8efced1a8e5daf9de45408d2b35e436309750d1 Mon Sep 17 00:00:00 2001 From: Maxim Pleshivenkov Date: Thu, 11 Jan 2024 19:08:30 +0000 Subject: [PATCH 172/418] Update comments for VehicleApPowerStateShutdownParam Comments for _IMMEDIATELY parameters stated that shutdown cannot be postponed. However it is possible that CPMS will send SHUTDOWN_POSTPONE if SHUTDOWN_PREPARE takes longer. Updated comments to remove that statement. Bug: 319670846 Change-Id: I0d172ba5d24b86c7f2403acae05961eca72b0c2d Test: manual build --- .../automotive/vehicle/VehicleApPowerStateShutdownParam.aidl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl index 966ff65d88..538b905671 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl @@ -20,7 +20,7 @@ package android.hardware.automotive.vehicle; @Backing(type="int") enum VehicleApPowerStateShutdownParam { /** - * AP must shutdown without Garage mode. Postponing is not allowed. + * AP must shutdown without Garage mode. * If AP need to shutdown as soon as possible, EMERGENCY_SHUTDOWN shall be used. */ SHUTDOWN_IMMEDIATELY = 1, @@ -36,13 +36,11 @@ enum VehicleApPowerStateShutdownParam { SHUTDOWN_ONLY = 3, /** * AP can enter deep sleep, without Garage mode. - * Postponing is not allowed. * Depending on the actual implementation, it may shut down immediately */ SLEEP_IMMEDIATELY = 4, /** * AP can hibernate (suspend to disk) without Garage mode. - * Postponing is not allowed. * Depending on the actual implementation, it may shut down immediately. */ HIBERNATE_IMMEDIATELY = 5, -- GitLab From da598226424472710e887e6f51bf560c4f871c3f Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Thu, 11 Jan 2024 20:41:44 +0000 Subject: [PATCH 173/418] Check for stream use case capability before stream use case test Bug: 299202800 Test: Vendor testing Change-Id: If30ead47072dc1f950b8fb6384072cc38cd51c58 Signed-off-by: Jayant Chowdhary --- camera/provider/aidl/vts/camera_aidl_test.cpp | 32 ++++++++++++------- camera/provider/aidl/vts/camera_aidl_test.h | 3 +- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index bb9068e725..e7847a2368 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -319,14 +319,7 @@ void CameraAidlTest::verifyStreamUseCaseCharacteristics(const camera_metadata_t* // Check capabilities int retcode = find_camera_metadata_ro_entry(metadata, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, &entry); - bool hasStreamUseCaseCap = false; - if ((0 == retcode) && (entry.count > 0)) { - if (std::find(entry.data.u8, entry.data.u8 + entry.count, - ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) != - entry.data.u8 + entry.count) { - hasStreamUseCaseCap = true; - } - } + bool hasStreamUseCaseCap = supportsStreamUseCaseCap(metadata); bool supportMandatoryUseCases = false; retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, @@ -2387,10 +2380,10 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres &cameraDevice /*out*/); camera_metadata_t* staticMeta = reinterpret_cast(meta.metadata.data()); - // Check if camera support depth only - if (isDepthOnly(staticMeta) || - (threshold.format == static_cast(PixelFormat::RAW16) && - !supportsCroppedRawUseCase(staticMeta))) { + // Check if camera support depth only or doesn't support stream use case capability + if (isDepthOnly(staticMeta) || !supportsStreamUseCaseCap(staticMeta) || + (threshold.format == static_cast(PixelFormat::RAW16) && + !supportsCroppedRawUseCase(staticMeta))) { ndk::ScopedAStatus ret = mSession->close(); mSession = nullptr; ASSERT_TRUE(ret.isOk()); @@ -3459,6 +3452,21 @@ bool CameraAidlTest::supportsCroppedRawUseCase(const camera_metadata_t *staticMe return false; } +bool CameraAidlTest::supportsStreamUseCaseCap(const camera_metadata_t* staticMeta) { + camera_metadata_ro_entry entry; + int retcode = find_camera_metadata_ro_entry(staticMeta, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, + &entry); + bool hasStreamUseCaseCap = false; + if ((0 == retcode) && (entry.count > 0)) { + if (std::find(entry.data.u8, entry.data.u8 + entry.count, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) != + entry.data.u8 + entry.count) { + hasStreamUseCaseCap = true; + } + } + return hasStreamUseCaseCap; +} + bool CameraAidlTest::isPerFrameControl(const camera_metadata_t* staticMeta) { camera_metadata_ro_entry syncLatencyEntry; int rc = find_camera_metadata_ro_entry(staticMeta, ANDROID_SYNC_MAX_LATENCY, diff --git a/camera/provider/aidl/vts/camera_aidl_test.h b/camera/provider/aidl/vts/camera_aidl_test.h index 86f0c9b849..f89239740d 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.h +++ b/camera/provider/aidl/vts/camera_aidl_test.h @@ -437,7 +437,8 @@ class CameraAidlTest : public ::testing::TestWithParam { int32_t frameCount, const bool *overrideSequence, const bool *expectedResults); bool supportZoomSettingsOverride(const camera_metadata_t* staticMeta); - bool supportsCroppedRawUseCase(const camera_metadata_t *staticMeta); + static bool supportsStreamUseCaseCap(const camera_metadata_t* staticMeta); + static bool supportsCroppedRawUseCase(const camera_metadata_t* staticMeta); bool isPerFrameControl(const camera_metadata_t* staticMeta); void getSupportedSizes(const camera_metadata_t* ch, uint32_t tag, int32_t format, -- GitLab From fda43ac86a7fe42379932e58d2858a4acac36e83 Mon Sep 17 00:00:00 2001 From: Sunil Ravi Date: Wed, 10 Jan 2024 23:22:42 +0000 Subject: [PATCH 174/418] Wifi: Modified API for addGroupWithConfig Deprecated the existing addGroupWithConfig API which is used to setup a P2P group owner or join a group as a group client with the specified configuration(SSID, password, band/group). Added a new modified API called addGroupWithConfigurationParams to include the authentication key management used to setup a connection. Bug: 297426719 Test: Build successfully Change-Id: Iafc692bbbaac9f4d98f5983951dc87dc4438988a --- .../wifi/supplicant/ISupplicantP2pIface.aidl | 4 ++ .../hardware/wifi/supplicant/KeyMgmtMask.aidl | 1 + .../P2pAddGroupConfigurationParams.aidl | 44 ++++++++++++ .../wifi/supplicant/ISupplicantP2pIface.aidl | 16 +++++ .../hardware/wifi/supplicant/KeyMgmtMask.aidl | 4 ++ .../P2pAddGroupConfigurationParams.aidl | 68 +++++++++++++++++++ 6 files changed, 137 insertions(+) create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl create mode 100644 wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl index 05a7548345..3babbe0c6b 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -36,6 +36,9 @@ package android.hardware.wifi.supplicant; interface ISupplicantP2pIface { void addBonjourService(in byte[] query, in byte[] response); void addGroup(in boolean persistent, in int persistentNetworkId); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use addGroupWithConfigurationParams. + */ void addGroupWithConfig(in byte[] ssid, in String pskPassphrase, in boolean persistent, in int freq, in byte[] peerAddress, in boolean joinExistingGroup); @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pNetwork addNetwork(); void addUpnpService(in int version, in String serviceName); @@ -115,4 +118,5 @@ interface ISupplicantP2pIface { String connectWithParams(in android.hardware.wifi.supplicant.P2pConnectInfo connectInfo); void findWithParams(in android.hardware.wifi.supplicant.P2pDiscoveryInfo discoveryInfo); void configureExtListenWithParams(in android.hardware.wifi.supplicant.P2pExtListenInfo extListenInfo); + void addGroupWithConfigurationParams(in android.hardware.wifi.supplicant.P2pAddGroupConfigurationParams groupConfigurationParams); } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/KeyMgmtMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/KeyMgmtMask.aidl index 35d51bc566..06c22cbde8 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/KeyMgmtMask.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/KeyMgmtMask.aidl @@ -51,4 +51,5 @@ enum KeyMgmtMask { WAPI_CERT = (1 << 13) /* 8192 */, FILS_SHA256 = (1 << 18) /* 262144 */, FILS_SHA384 = (1 << 19) /* 524288 */, + PASN = (1 << 25) /* 33554432 */, } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl new file mode 100644 index 0000000000..8e6c5a05e5 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pAddGroupConfigurationParams { + byte[] ssid; + String passphrase; + boolean isPersistent; + int frequencyMHzOrBand; + byte[6] goInterfaceAddress; + boolean joinExistingGroup; + int keyMgmtMask; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl index 8b78a4a286..96239097ea 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -22,6 +22,7 @@ import android.hardware.wifi.supplicant.ISupplicantP2pIfaceCallback; import android.hardware.wifi.supplicant.ISupplicantP2pNetwork; import android.hardware.wifi.supplicant.IfaceType; import android.hardware.wifi.supplicant.MiracastMode; +import android.hardware.wifi.supplicant.P2pAddGroupConfigurationParams; import android.hardware.wifi.supplicant.P2pConnectInfo; import android.hardware.wifi.supplicant.P2pDiscoveryInfo; import android.hardware.wifi.supplicant.P2pExtListenInfo; @@ -74,6 +75,9 @@ interface ISupplicantP2pIface { * whose network name and group owner's MAC address matches the specified SSID * and peer address without WPS process. If peerAddress is 00:00:00:00:00:00, the first found * group whose network name matches the specified SSID is joined. + *

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * addGroupWithConfigurationParams. * * @param ssid The SSID of this group. * @param pskPassphrase The passphrase of this group. @@ -903,4 +907,16 @@ interface ISupplicantP2pIface { * |SupplicantStatusCode.FAILURE_IFACE_INVALID| */ void configureExtListenWithParams(in P2pExtListenInfo extListenInfo); + + /** + * Set up a P2P group owner or join a group as a group client + * with the specified configuration. + * + * @param groupConfigurationParams Parameters associated with this add group operation. + * @throws ServiceSpecificException with one of the following values: + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + void addGroupWithConfigurationParams( + in P2pAddGroupConfigurationParams groupConfigurationParams); } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/KeyMgmtMask.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/KeyMgmtMask.aidl index f0c3345b93..8758645f1a 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/KeyMgmtMask.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/KeyMgmtMask.aidl @@ -71,4 +71,8 @@ enum KeyMgmtMask { * FILS shared key authentication with sha-384 */ FILS_SHA384 = 1 << 19, + /** + * Pre-Association Security Negotiation (PASN) Key management + */ + PASN = 1 << 25, } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl new file mode 100644 index 0000000000..1374f41ba6 --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.supplicant.KeyMgmtMask; + +/** + * Request parameters used for |ISupplicantP2pIface.addGroupWithConfigurationParams| + */ +@VintfStability +parcelable P2pAddGroupConfigurationParams { + /** The SSID of the group. */ + byte[] ssid; + + /** The passphrase used to secure the group. */ + String passphrase; + + /** Whether this group is persisted. Only applied on the group owner side */ + boolean isPersistent; + + /** + * The required frequency or band of the group. + * Only applied on the group owner side. + * The following values are supported: + * 0: automatic channel selection, + * 2: for 2.4GHz channels + * 5: for 5GHz channels + * 6: for 6GHz channels + * specific frequency in MHz, i.e., 2412, 5500, etc. + * If an invalid band or unsupported frequency are specified, + * |ISupplicantP2pIface.addGroupWithConfigurationParams| fails + */ + int frequencyMHzOrBand; + + /** + * The MAC Address of the P2P interface of the Peer GO device. + * This field is valid only for the group client side. + * If the MAC is "00:00:00:00:00:00", the device must try to find a peer GO device + * whose network name matches the specified SSID. + */ + byte[6] goInterfaceAddress; + + /* + * True if join a group as a group client; false to create a group as a group owner + */ + boolean joinExistingGroup; + + /** + * The authentication Key management mask for the connection. Combination of |KeyMgmtMask| + * values. The supported authentication key management types are WPA_PSK, SAE and PASN. + * + */ + int keyMgmtMask; +} -- GitLab From 46d9630125b3d1c6d7c0b62b0a63fbe9c08b2838 Mon Sep 17 00:00:00 2001 From: Alisher Alikhodjaev Date: Thu, 11 Jan 2024 16:24:26 -0800 Subject: [PATCH 175/418] Per NCI spec there is no need to wait for credits One case was missed in the previous fix. This is an update. Bug: 312911587 Test: no regressions Change-Id: I7fefa92d5a66581431288ec902a56ed61e9cf310 --- nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp index b36735f768..8210ff04cf 100644 --- a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp +++ b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp @@ -354,13 +354,6 @@ TEST_P(NfcHidlTest, Bandwidth) { res = nfc_cb_->WaitForCallback(kCallbackNameSendData); EXPECT_TRUE(res.no_timeout); EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); - if (nci_version == NCI_VERSION_2 && res.args->last_data_.size() > 13 && - res.args->last_data_[13] == 0x00) { - // Wait for CORE_CONN_CREDITS_NTF - res = nfc_cb_->WaitForCallback(kCallbackNameSendData); - EXPECT_TRUE(res.no_timeout); - } - cmd = CORE_CONN_CREATE_CMD; data = cmd; EXPECT_EQ(data.size(), nfc_->write(data)); -- GitLab From b487a859939ca9a3c3c1118cb173d048f03e7432 Mon Sep 17 00:00:00 2001 From: Bao Do Date: Mon, 25 Dec 2023 10:12:09 +0800 Subject: [PATCH 176/418] Fix test run for GSI GSI used mixed testing procedures, making some HFP session and LE Audio related functions unavailable when testing with the latest VTS. This fix enable HAL version checking when testing. Bug: 315338603 Test: atest VtsHalBluetoothAudioTargetTest Change-Id: Idb0a780a67857c76c93b13f7b3a64436f6fc647f --- .../vts/VtsHalBluetoothAudioTargetTest.cpp | 149 ++++++++++++++---- 1 file changed, 116 insertions(+), 33 deletions(-) diff --git a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp index b598044535..85bc48ad8d 100644 --- a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp +++ b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp @@ -120,6 +120,16 @@ static constexpr ChannelMode a2dp_channel_modes[] = { ChannelMode::UNKNOWN, ChannelMode::MONO, ChannelMode::STEREO}; static std::vector latency_modes = {LatencyMode::FREE}; +enum class BluetoothAudioHalVersion : int32_t { + VERSION_UNAVAILABLE = 0, + VERSION_2_0, + VERSION_2_1, + VERSION_AIDL_V1, + VERSION_AIDL_V2, + VERSION_AIDL_V3, + VERSION_AIDL_V4, +}; + // Some valid configs for HFP PCM configuration (software sessions) static constexpr int32_t hfp_sample_rates_[] = {8000, 16000, 32000}; static constexpr int8_t hfp_bits_per_samples_[] = {16}; @@ -221,7 +231,6 @@ class BluetoothAudioProviderFactoryAidl temp_provider_info_ = std::nullopt; auto aidl_reval = provider_factory_->getProviderInfo(session_type, &temp_provider_info_); - ASSERT_TRUE(aidl_reval.isOk()); } void GetProviderCapabilitiesHelper(const SessionType& session_type) { @@ -623,9 +632,38 @@ class BluetoothAudioProviderFactoryAidl SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH, SessionType::A2DP_SOFTWARE_DECODING_DATAPATH, SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH, + }; + + static constexpr SessionType kAndroidVSessionType[] = { SessionType::HFP_SOFTWARE_ENCODING_DATAPATH, SessionType::HFP_SOFTWARE_DECODING_DATAPATH, }; + + BluetoothAudioHalVersion GetProviderFactoryInterfaceVersion() { + int32_t aidl_version = 0; + if (provider_factory_ == nullptr) { + return BluetoothAudioHalVersion::VERSION_UNAVAILABLE; + } + + auto aidl_retval = provider_factory_->getInterfaceVersion(&aidl_version); + if (!aidl_retval.isOk()) { + return BluetoothAudioHalVersion::VERSION_UNAVAILABLE; + } + switch (aidl_version) { + case 1: + return BluetoothAudioHalVersion::VERSION_AIDL_V1; + case 2: + return BluetoothAudioHalVersion::VERSION_AIDL_V2; + case 3: + return BluetoothAudioHalVersion::VERSION_AIDL_V3; + case 4: + return BluetoothAudioHalVersion::VERSION_AIDL_V4; + default: + return BluetoothAudioHalVersion::VERSION_UNAVAILABLE; + } + + return BluetoothAudioHalVersion::VERSION_UNAVAILABLE; + } }; /** @@ -647,6 +685,15 @@ TEST_P(BluetoothAudioProviderFactoryAidl, EXPECT_TRUE(temp_provider_capabilities_.empty() || audio_provider_ != nullptr); } + if (GetProviderFactoryInterfaceVersion() >= + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + for (auto session_type : kAndroidVSessionType) { + GetProviderCapabilitiesHelper(session_type); + OpenProviderHelper(session_type); + EXPECT_TRUE(temp_provider_capabilities_.empty() || + audio_provider_ != nullptr); + } + } } /** @@ -1464,8 +1511,8 @@ TEST_P(BluetoothAudioProviderA2dpEncodingSoftwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_SOFTWARE_ENCODING_DATAPATH can be started and stopped with - * different PCM config + * SessionType::A2DP_SOFTWARE_ENCODING_DATAPATH can be started and stopped + * with different PCM config */ TEST_P(BluetoothAudioProviderA2dpEncodingSoftwareAidl, StartAndEndA2dpEncodingSoftwareSessionWithPossiblePcmConfig) { @@ -1502,6 +1549,10 @@ class BluetoothAudioProviderHfpSoftwareEncodingAidl public: virtual void SetUp() override { BluetoothAudioProviderFactoryAidl::SetUp(); + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } GetProviderCapabilitiesHelper(SessionType::HFP_SOFTWARE_ENCODING_DATAPATH); OpenProviderHelper(SessionType::HFP_SOFTWARE_ENCODING_DATAPATH); ASSERT_NE(audio_provider_, nullptr); @@ -1569,6 +1620,10 @@ class BluetoothAudioProviderHfpSoftwareDecodingAidl public: virtual void SetUp() override { BluetoothAudioProviderFactoryAidl::SetUp(); + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } GetProviderCapabilitiesHelper(SessionType::HFP_SOFTWARE_DECODING_DATAPATH); OpenProviderHelper(SessionType::HFP_SOFTWARE_DECODING_DATAPATH); ASSERT_NE(audio_provider_, nullptr); @@ -1657,8 +1712,8 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * SBC hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with SBC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpSbcEncodingHardwareSession) { @@ -1687,8 +1742,8 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * AAC hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with AAC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpAacEncodingHardwareSession) { @@ -1717,8 +1772,8 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * LDAC hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with LDAC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpLdacEncodingHardwareSession) { @@ -1747,8 +1802,8 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * Opus hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with Opus hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpOpusEncodingHardwareSession) { @@ -1777,8 +1832,8 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * AptX hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with AptX hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpAptxEncodingHardwareSession) { @@ -1813,8 +1868,8 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * an invalid codec config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with an invalid codec config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpEncodingHardwareSessionInvalidCodecConfig) { @@ -1885,6 +1940,10 @@ class BluetoothAudioProviderHfpHardwareAidl public: virtual void SetUp() override { BluetoothAudioProviderFactoryAidl::SetUp(); + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } OpenProviderHelper(SessionType::HFP_HARDWARE_OFFLOAD_DATAPATH); // Can open or empty capability ASSERT_TRUE(temp_provider_capabilities_.empty() || @@ -2418,6 +2477,10 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, TEST_P( BluetoothAudioProviderLeAudioOutputHardwareAidl, StartAndEndLeAudioOutputSessionWithPossibleUnicastConfigFromProviderInfo) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } if (!IsOffloadOutputProviderInfoSupported()) { GTEST_SKIP(); } @@ -2443,6 +2506,10 @@ TEST_P( TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetEmptyAseConfigurationEmptyCapability) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } std::vector> empty_capability; std::vector empty_requirement; std::vector configurations; @@ -2464,6 +2531,10 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetEmptyAseConfigurationMismatchedRequirement) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } std::vector> capabilities = { GetDefaultRemoteCapability()}; @@ -2488,6 +2559,10 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, } TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetQoSConfiguration) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } IBluetoothAudioProvider::LeAudioAseQosConfigurationRequirement requirement; std::vector QoSConfigurations; @@ -2862,16 +2937,16 @@ class BluetoothAudioProviderLeAudioBroadcastSoftwareAidl /** * Test whether each provider of type - * SessionType::LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH can be started and - * stopped + * SessionType::LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH can be started + * and stopped */ TEST_P(BluetoothAudioProviderLeAudioBroadcastSoftwareAidl, OpenLeAudioOutputSoftwareProvider) {} /** * Test whether each provider of type - * SessionType::LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH can be started and - * stopped with different PCM config + * SessionType::LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH can be started + * and stopped with different PCM config */ TEST_P(BluetoothAudioProviderLeAudioBroadcastSoftwareAidl, StartAndEndLeAudioOutputSessionWithPossiblePcmConfig) { @@ -3045,6 +3120,10 @@ TEST_P(BluetoothAudioProviderLeAudioBroadcastHardwareAidl, TEST_P( BluetoothAudioProviderLeAudioBroadcastHardwareAidl, StartAndEndLeAudioBroadcastSessionWithPossibleUnicastConfigFromProviderInfo) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } if (!IsBroadcastOffloadProviderInfoSupported()) { return; } @@ -3076,6 +3155,10 @@ TEST_P( TEST_P(BluetoothAudioProviderLeAudioBroadcastHardwareAidl, GetEmptyBroadcastConfigurationEmptyCapability) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } std::vector> empty_capability; IBluetoothAudioProvider::LeAudioBroadcastConfigurationRequirement empty_requirement; @@ -3190,8 +3273,8 @@ TEST_P(BluetoothAudioProviderA2dpDecodingSoftwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_SOFTWARE_DECODING_DATAPATH can be started and stopped with - * different PCM config + * SessionType::A2DP_SOFTWARE_DECODING_DATAPATH can be started and stopped + * with different PCM config */ TEST_P(BluetoothAudioProviderA2dpDecodingSoftwareAidl, StartAndEndA2dpDecodingSoftwareSessionWithPossiblePcmConfig) { @@ -3252,8 +3335,8 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * SBC hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with SBC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpSbcDecodingHardwareSession) { @@ -3282,8 +3365,8 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * AAC hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with AAC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpAacDecodingHardwareSession) { @@ -3312,8 +3395,8 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * LDAC hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with LDAC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpLdacDecodingHardwareSession) { @@ -3342,8 +3425,8 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * Opus hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with Opus hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpOpusDecodingHardwareSession) { @@ -3372,8 +3455,8 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * AptX hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with AptX hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpAptxDecodingHardwareSession) { @@ -3408,8 +3491,8 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * an invalid codec config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with an invalid codec config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpDecodingHardwareSessionInvalidCodecConfig) { -- GitLab From cb228e122c1af372b4127555a4a7c0eb87e9bb30 Mon Sep 17 00:00:00 2001 From: arunvoddu Date: Thu, 11 Jan 2024 16:50:08 +0000 Subject: [PATCH 177/418] Rename from ephlmn to ehplmn Bug: 314835886 Test: build successfully Change-Id: I9c335fb9628c7a9cfd38da64592c3a09d26f85a7 --- .../current/android/hardware/radio/sim/CarrierInfo.aidl | 2 +- radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CarrierInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CarrierInfo.aidl index 5838959fb5..7d4a54b242 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CarrierInfo.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CarrierInfo.aidl @@ -41,7 +41,7 @@ parcelable CarrierInfo { @nullable String gid1; @nullable String gid2; @nullable String imsiPrefix; - @nullable List ephlmn; + @nullable List ehplmn; @nullable String iccid; @nullable String impi; } diff --git a/radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl b/radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl index a8904978ac..74fe31bd9e 100644 --- a/radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl +++ b/radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl @@ -56,7 +56,7 @@ parcelable CarrierInfo { * Equivalent HPLMN of the SIM card of the Carrier. */ @nullable - List ephlmn; + List ehplmn; /** * ICCID (Integrated Circuit Card Identification) of the SIM card. */ -- GitLab From fc0dbfee704e95ae87f9020caa11ae3e0d841a51 Mon Sep 17 00:00:00 2001 From: Shikha Panwar Date: Thu, 11 Jan 2024 14:24:14 +0000 Subject: [PATCH 178/418] InitialPayload of ExplicitKeyDiceCertChain Change the spec for DiceCertChainInitialPayload, removing the map & directly equating it to bstr .cbor PubKey. Also mandate it to stick to Core Deterministic Encoding Requirements. The deterministic encoding is essential to ensure DicePolicies can be applied on the root key. Test: Builds Bug: 319613231 Change-Id: I5e12ecbcbae84ae608d784a12f8ae4afc49b5a9d --- .../security/authgraph/ExplicitKeyDiceCertChain.cddl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/security/authgraph/aidl/android/hardware/security/authgraph/ExplicitKeyDiceCertChain.cddl b/security/authgraph/aidl/android/hardware/security/authgraph/ExplicitKeyDiceCertChain.cddl index 3de5617028..2d6c69614a 100644 --- a/security/authgraph/aidl/android/hardware/security/authgraph/ExplicitKeyDiceCertChain.cddl +++ b/security/authgraph/aidl/android/hardware/security/authgraph/ExplicitKeyDiceCertChain.cddl @@ -19,11 +19,10 @@ ExplicitKeyDiceCertChain = [ * DiceChainEntry ] -DiceCertChainInitialPayload = { - -4670552 : bstr .cbor PubKeyEd25519 / - bstr .cbor PubKeyECDSA256 / - bstr .cbor PubKeyECDSA384 ; subjectPublicKey -} +; Encoded in accordance with Core Deterministic Encoding Requirements [RFC 8949 s4.2.1] +DiceCertChainInitialPayload = bstr .cbor PubKeyEd25519 + / bstr .cbor PubKeyECDSA256 + / bstr .cbor PubKeyECDSA384 ; subjectPublicKey ; INCLUDE generateCertificateRequestV2.cddl for: PubKeyEd25519, PubKeyECDSA256, PubKeyECDSA384, ; DiceChainEntry -- GitLab From 8877018da4fff6f1869608bedd606a2ec94a491a Mon Sep 17 00:00:00 2001 From: liuxiangjun Date: Wed, 20 Dec 2023 19:57:15 +0800 Subject: [PATCH 179/418] Remove the SIM card status condition check and add accepted possible errors For devices not in LTE service, the vts test returns MODEM_ERR is an expected result Bug:317314512 Test: VtsHalRadioTargetTest PerInstance/RadioNetworkTest#setNetworkSelectionModeManual/0_android_hardware_radio_network_IRadioNetwork_slot1 PerInstance/RadioNetworkTest#setNetworkSelectionModeManual/1_android_hardware_radio_network_IRadioNetwork_slot2 Change-Id: I75414ba18be93707310cace21b52508edfc33a20 Signed-off-by: liuxiangjun --- radio/aidl/vts/radio_network_test.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/radio/aidl/vts/radio_network_test.cpp b/radio/aidl/vts/radio_network_test.cpp index 6643c1e7ff..a48abb83b2 100644 --- a/radio/aidl/vts/radio_network_test.cpp +++ b/radio/aidl/vts/radio_network_test.cpp @@ -1167,19 +1167,12 @@ TEST_P(RadioNetworkTest, setNetworkSelectionModeManual) { EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type); EXPECT_EQ(serial, radioRsp_network->rspInfo.serial); - if (cardStatus.cardState == CardStatus::STATE_ABSENT) { - ASSERT_TRUE(CheckAnyOfErrors( - radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::ILLEGAL_SIM_OR_ME, RadioError::INVALID_ARGUMENTS, - RadioError::INVALID_STATE, RadioError::RADIO_NOT_AVAILABLE, RadioError::NO_MEMORY, - RadioError::INTERNAL_ERR, RadioError::SYSTEM_ERR, RadioError::CANCELLED})); - } else if (cardStatus.cardState == CardStatus::STATE_PRESENT) { - ASSERT_TRUE(CheckAnyOfErrors( - radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INVALID_ARGUMENTS, - RadioError::INVALID_STATE, RadioError::NO_MEMORY, RadioError::INTERNAL_ERR, - RadioError::SYSTEM_ERR, RadioError::CANCELLED})); - } + ASSERT_TRUE(CheckAnyOfErrors( + radioRsp_network->rspInfo.error, + {RadioError::NONE, RadioError::ILLEGAL_SIM_OR_ME, RadioError::RADIO_NOT_AVAILABLE, + RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::NO_MEMORY, + RadioError::INTERNAL_ERR, RadioError::SYSTEM_ERR, RadioError::CANCELLED, + RadioError::MODEM_ERR, RadioError::OPERATION_NOT_ALLOWED, RadioError::NO_RESOURCES})); } /* -- GitLab From 8a3a29dd5a79d6f697ab5b057455979b9d957431 Mon Sep 17 00:00:00 2001 From: Shikha Panwar Date: Wed, 10 Jan 2024 15:05:17 +0000 Subject: [PATCH 180/418] Sk VTS: Policy gating & Out of Seq req rejection 1. Add a test to check Access control in Secretkeeper HAL: Construct dice chains with different security version and check that the secret is accessible with upgraded dice chain && DicePolicyError is thrown when the access is requested using a dice chain with lower security version. 2. Re-enable test #replay_protection_out_of_seq_req_not_accepted - This was disabled because the method would not panic when run on devices without Sk HAL, causing test failure. Refactor the test to check the error instead of unwrapping. Many methods of SkClient struct are refactored to return Error (also introduced in this patch) instead of panicking on error. Test: atest VtsSecretkeeperTargetTest Bug: 291224769 Bug: 317416663 Change-Id: I646783e034064f81625a978a2bcacf143ff60c87 --- .../aidl/vts/secretkeeper_test_client.rs | 204 ++++++++++++------ 1 file changed, 136 insertions(+), 68 deletions(-) diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index a62546d779..4c0f659960 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -113,8 +113,8 @@ impl SkClient { /// This method is wrapper that use `SkSession::secret_management_request` which handles /// encryption and decryption. - fn secret_management_request(&mut self, req_data: &[u8]) -> Vec { - self.session.secret_management_request(req_data).unwrap() + fn secret_management_request(&mut self, req_data: &[u8]) -> Result, Error> { + Ok(self.session.secret_management_request(req_data)?) } /// Unlike the method [`secret_management_request`], this method directly uses @@ -125,7 +125,7 @@ impl SkClient { req_data: &[u8], req_aad: &[u8], expected_res_aad: &[u8], - ) -> Vec { + ) -> Result, Error> { let aes_gcm = boring::BoringAes; let rng = boring::BoringRng; let request_bytes = cipher::encrypt_message( @@ -136,53 +136,54 @@ impl SkClient { &req_data, req_aad, ) - .unwrap(); + .map_err(|e| secretkeeper_client::Error::CipherError(e))?; // Binder call! - let response_bytes = self.sk.processSecretManagementRequest(&request_bytes).unwrap(); + let response_bytes = self.sk.processSecretManagementRequest(&request_bytes)?; - let response_encrypt0 = CoseEncrypt0::from_slice(&response_bytes).unwrap(); - cipher::decrypt_message( + let response_encrypt0 = CoseEncrypt0::from_slice(&response_bytes)?; + Ok(cipher::decrypt_message( &aes_gcm, self.session.decryption_key(), &response_encrypt0, expected_res_aad, ) - .unwrap() + .map_err(|e| secretkeeper_client::Error::CipherError(e))?) } /// Helper method to store a secret. This uses the default compatible sealing_policy on /// dice_chain. - fn store(&mut self, id: &Id, secret: &Secret) { - let sealing_policy = sealing_policy(self.dice_artifacts.explicit_key_dice_chain().unwrap()); + fn store(&mut self, id: &Id, secret: &Secret) -> Result<(), Error> { + let sealing_policy = sealing_policy( + self.dice_artifacts.explicit_key_dice_chain().ok_or(Error::UnexpectedError)?, + ); let store_request = StoreSecretRequest { id: id.clone(), secret: secret.clone(), sealing_policy }; - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + let store_request = store_request.serialize_to_packet().to_vec()?; - let store_response = self.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); + let store_response = self.secret_management_request(&store_request)?; + let store_response = ResponsePacket::from_slice(&store_response)?; - assert_eq!(store_response.response_type().unwrap(), ResponseType::Success); + assert_eq!(store_response.response_type()?, ResponseType::Success); // Really just checking that the response is indeed StoreSecretResponse - let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + let _ = StoreSecretResponse::deserialize_from_packet(store_response)?; + Ok(()) } /// Helper method to get a secret. - fn get(&mut self, id: &Id) -> Option { + fn get(&mut self, id: &Id) -> Result { let get_request = GetSecretRequest { id: id.clone(), updated_sealing_policy: None }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + let get_request = get_request.serialize_to_packet().to_vec()?; - let get_response = self.secret_management_request(&get_request); - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); + let get_response = self.secret_management_request(&get_request)?; + let get_response = ResponsePacket::from_slice(&get_response)?; - if get_response.response_type().unwrap() == ResponseType::Success { - let get_response = *GetSecretResponse::deserialize_from_packet(get_response).unwrap(); - Some(Secret(get_response.secret.0)) + if get_response.response_type()? == ResponseType::Success { + let get_response = *GetSecretResponse::deserialize_from_packet(get_response)?; + Ok(Secret(get_response.secret.0)) } else { - // Only expect a not-found failure. - let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); - assert_eq!(err, SecretkeeperError::EntryNotFound); - None + let err = *SecretkeeperError::deserialize_from_packet(get_response)?; + Err(Error::SecretkeeperError(err)) } } @@ -198,6 +199,50 @@ impl SkClient { } } +#[derive(Debug)] +enum Error { + // Errors from Secretkeeper API errors. These are thrown by core SecretManagement and + // not visible without decryption. + SecretkeeperError(SecretkeeperError), + InfraError(secretkeeper_client::Error), + UnexpectedError, +} + +impl From for Error { + fn from(e: secretkeeper_client::Error) -> Self { + Self::InfraError(e) + } +} + +impl From for Error { + fn from(e: SecretkeeperError) -> Self { + Self::SecretkeeperError(e) + } +} + +impl From for Error { + fn from(e: coset::CoseError) -> Self { + Self::InfraError(secretkeeper_client::Error::from(e)) + } +} + +impl From for Error { + fn from(s: binder::Status) -> Self { + Self::InfraError(secretkeeper_client::Error::from(s)) + } +} + +impl From for Error { + fn from(e: secretkeeper_comm::data_types::error::Error) -> Self { + Self::InfraError(secretkeeper_client::Error::from(e)) + } +} + +// Assert that the error is EntryNotFound +fn assert_entry_not_found(res: Result) { + assert!(matches!(res.unwrap_err(), Error::SecretkeeperError(SecretkeeperError::EntryNotFound))) +} + /// Construct a sealing policy on the dice chain. This method uses the following set of /// constraints which are compatible with sample DICE chains used in VTS. /// 1. ExactMatch on AUTHORITY_HASH (non-optional). @@ -272,7 +317,7 @@ fn secret_management_get_version(instance: String) { let request_packet = request.serialize_to_packet(); let request_bytes = request_packet.to_vec().unwrap(); - let response_bytes = sk_client.secret_management_request(&request_bytes); + let response_bytes = sk_client.secret_management_request(&request_bytes).unwrap(); let response_packet = ResponsePacket::from_slice(&response_bytes).unwrap(); assert_eq!(response_packet.response_type().unwrap(), ResponseType::Success); @@ -292,7 +337,7 @@ fn secret_management_malformed_request(instance: String) { // Deform the request request_bytes[0] = !request_bytes[0]; - let response_bytes = sk_client.secret_management_request(&request_bytes); + let response_bytes = sk_client.secret_management_request(&request_bytes).unwrap(); let response_packet = ResponsePacket::from_slice(&response_bytes).unwrap(); assert_eq!(response_packet.response_type().unwrap(), ResponseType::Error); @@ -304,10 +349,10 @@ fn secret_management_malformed_request(instance: String) { fn secret_management_store_get_secret_found(instance: String) { let mut sk_client = SkClient::new(&instance); - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); // Get the secret that was just stored - assert_eq!(sk_client.get(&ID_EXAMPLE), Some(SECRET_EXAMPLE)); + assert_eq!(sk_client.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); } #[rdroidtest(get_instances())] @@ -315,64 +360,63 @@ fn secret_management_store_get_secret_not_found(instance: String) { let mut sk_client = SkClient::new(&instance); // Store a secret (corresponding to an id). - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); // Get the secret that was never stored - assert_eq!(sk_client.get(&ID_NOT_STORED), None); + assert_entry_not_found(sk_client.get(&ID_NOT_STORED)); } #[rdroidtest(get_instances())] fn secretkeeper_store_delete_ids(instance: String) { let mut sk_client = SkClient::new(&instance); - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); - sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); sk_client.delete(&[&ID_EXAMPLE]); - - assert_eq!(sk_client.get(&ID_EXAMPLE), None); - assert_eq!(sk_client.get(&ID_EXAMPLE_2), Some(SECRET_EXAMPLE)); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_eq!(sk_client.get(&ID_EXAMPLE_2).unwrap(), SECRET_EXAMPLE); sk_client.delete(&[&ID_EXAMPLE_2]); - assert_eq!(sk_client.get(&ID_EXAMPLE), None); - assert_eq!(sk_client.get(&ID_EXAMPLE_2), None); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE_2)); } #[rdroidtest(get_instances())] fn secretkeeper_store_delete_multiple_ids(instance: String) { let mut sk_client = SkClient::new(&instance); - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); - sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); sk_client.delete(&[&ID_EXAMPLE, &ID_EXAMPLE_2]); - assert_eq!(sk_client.get(&ID_EXAMPLE), None); - assert_eq!(sk_client.get(&ID_EXAMPLE_2), None); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE_2)); } #[rdroidtest(get_instances())] fn secretkeeper_store_delete_duplicate_ids(instance: String) { let mut sk_client = SkClient::new(&instance); - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); - sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); // Delete the same secret twice. sk_client.delete(&[&ID_EXAMPLE, &ID_EXAMPLE]); - assert_eq!(sk_client.get(&ID_EXAMPLE), None); - assert_eq!(sk_client.get(&ID_EXAMPLE_2), Some(SECRET_EXAMPLE)); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_eq!(sk_client.get(&ID_EXAMPLE_2).unwrap(), SECRET_EXAMPLE); } #[rdroidtest(get_instances())] fn secretkeeper_store_delete_nonexistent(instance: String) { let mut sk_client = SkClient::new(&instance); - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); - sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); sk_client.delete(&[&ID_NOT_STORED]); - assert_eq!(sk_client.get(&ID_EXAMPLE), Some(SECRET_EXAMPLE)); - assert_eq!(sk_client.get(&ID_EXAMPLE_2), Some(SECRET_EXAMPLE)); - assert_eq!(sk_client.get(&ID_NOT_STORED), None); + assert_eq!(sk_client.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); + assert_eq!(sk_client.get(&ID_EXAMPLE_2).unwrap(), SECRET_EXAMPLE); + assert_entry_not_found(sk_client.get(&ID_NOT_STORED)); } // Don't run deleteAll() on a secure device, as it might affect real secrets. @@ -381,22 +425,22 @@ fn secretkeeper_store_delete_nonexistent(instance: String) { fn secretkeeper_store_delete_all(instance: String) { let mut sk_client = SkClient::new(&instance); - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); - sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); sk_client.delete_all(); - assert_eq!(sk_client.get(&ID_EXAMPLE), None); - assert_eq!(sk_client.get(&ID_EXAMPLE_2), None); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE_2)); // Store a new secret (corresponding to an id). - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); // Get the restored secret. - assert_eq!(sk_client.get(&ID_EXAMPLE), Some(SECRET_EXAMPLE)); + assert_eq!(sk_client.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); // (Try to) Get the secret that was never stored - assert_eq!(sk_client.get(&ID_NOT_STORED), None); + assert_entry_not_found(sk_client.get(&ID_NOT_STORED)); } // This test checks that Secretkeeper uses the expected [`RequestSeqNum`] as aad while @@ -416,21 +460,21 @@ fn secret_management_replay_protection_seq_num(instance: String) { // Check first request/response is successful let res = ResponsePacket::from_slice( - &sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0), + &sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(), ) .unwrap(); assert_eq!(res.response_type().unwrap(), ResponseType::Success); // Check 2nd request/response is successful let res = ResponsePacket::from_slice( - &sk_client.secret_management_request_custom_aad(&req_2, &seq_1, &seq_1), + &sk_client.secret_management_request_custom_aad(&req_2, &seq_1, &seq_1).unwrap(), ) .unwrap(); assert_eq!(res.response_type().unwrap(), ResponseType::Success); // Check 3rd request/response is successful let res = ResponsePacket::from_slice( - &sk_client.secret_management_request_custom_aad(&req_3, &seq_2, &seq_2), + &sk_client.secret_management_request_custom_aad(&req_3, &seq_2, &seq_2).unwrap(), ) .unwrap(); assert_eq!(res.response_type().unwrap(), ResponseType::Success); @@ -452,7 +496,7 @@ fn secret_management_replay_protection_seq_num_per_session(instance: String) { let seq_0 = seq_a.get_then_increment().unwrap(); // Check first request/response is successful let res = ResponsePacket::from_slice( - &sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0), + &sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(), ) .unwrap(); assert_eq!(res.response_type().unwrap(), ResponseType::Success); @@ -461,7 +505,7 @@ fn secret_management_replay_protection_seq_num_per_session(instance: String) { let sk_client_diff = SkClient::new(&instance); // Check first request/response is with seq_0 is successful let res = ResponsePacket::from_slice( - &sk_client_diff.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0), + &sk_client_diff.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(), ) .unwrap(); assert_eq!(res.response_type().unwrap(), ResponseType::Success); @@ -470,7 +514,6 @@ fn secret_management_replay_protection_seq_num_per_session(instance: String) { // This test checks that Secretkeeper rejects requests with out of order [`RequestSeqNum`] // TODO(b/317416663): This test fails, when HAL is not present in the device. Refactor to fix this. #[rdroidtest(get_instances())] -#[ignore] fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: String) { let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); @@ -484,11 +527,36 @@ fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: Str let [seq_0, seq_1, seq_2] = std::array::from_fn(|_| seq_a.get_then_increment().unwrap()); // Assume First request/response is successful - sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0); + sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(); // Check 2nd request/response with skipped seq_num in request is a binder error - // This should panic! - sk_client.secret_management_request_custom_aad(&req_2, /*Skipping seq_1*/ &seq_2, &seq_1); + let res = sk_client + .secret_management_request_custom_aad(&req_2, /*Skipping seq_1*/ &seq_2, &seq_1); + let err = res.expect_err("Out of Seq messages accepted!"); + // Incorrect sequence numbers lead to failed decryption. The resultant error should be + // thrown in clear text & wrapped in Binder errors. + assert!(matches!(err, Error::InfraError(secretkeeper_client::Error::BinderStatus(_e)))); +} + +// This test checks DICE policy based access control of Secretkeeper. +#[rdroidtest(get_instances())] +fn secret_management_policy_gate(instance: String) { + let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 100); + let mut sk_client = SkClient::with_identity(&instance, dice_chain); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + + // Start a session with higher security_version & get the stored secret. + let dice_chain_upgraded = make_explicit_owned_dice(/*Security version in a node */ 101); + let mut sk_client_upgraded = SkClient::with_identity(&instance, dice_chain_upgraded); + assert_eq!(sk_client_upgraded.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); + + // Start a session with lower security_version (This should be denied access to the secret). + let dice_chain_downgraded = make_explicit_owned_dice(/*Security version in a node */ 99); + let mut sk_client_downgraded = SkClient::with_identity(&instance, dice_chain_downgraded); + assert!(matches!( + sk_client_downgraded.get(&ID_EXAMPLE).unwrap_err(), + Error::SecretkeeperError(SecretkeeperError::DicePolicyError) + )); } // Helper method that constructs 3 SecretManagement requests. Callers would usually not care about -- GitLab From 5b15e005a9f8d457d436ec3a508077c031bd5598 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Fri, 5 Jan 2024 02:33:47 +0000 Subject: [PATCH 181/418] Effect AIDL: add IEffect.reopen to update the effect instances data FMQ The effect instance may choose to reallocate the input data message queue under specific conditions. For example, when the input format changes, requiring an update to the data message queue allocated during the open time. In such cases, the effect instance can destroy the existing data message queue, when the audio framework see a valid status MQ and invalid data MQ, it call reopen to get the new data message queue. Bug: 302036943 Test: m android.hardware.audio.effect-update-api, m Change-Id: Ia245b154176f64bc3cc6e6049bca4f9c68ad482d Merged-In: Ia245b154176f64bc3cc6e6049bca4f9c68ad482d --- .../hardware/audio/effect/IEffect.aidl | 1 + .../hardware/audio/effect/IEffect.aidl | 37 +++++++++++++++++-- .../android/hardware/audio/effect/state.gv | 6 ++- audio/aidl/default/EffectImpl.cpp | 10 +++++ .../default/include/effect-impl/EffectImpl.h | 1 + 5 files changed, 49 insertions(+), 6 deletions(-) diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl index 8c196e7abf..a1b00be41f 100644 --- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl @@ -41,6 +41,7 @@ interface IEffect { android.hardware.audio.effect.State getState(); void setParameter(in android.hardware.audio.effect.Parameter param); android.hardware.audio.effect.Parameter getParameter(in android.hardware.audio.effect.Parameter.Id paramId); + android.hardware.audio.effect.IEffect.OpenEffectReturn reopen(); @FixedSize @VintfStability parcelable Status { int status; diff --git a/audio/aidl/android/hardware/audio/effect/IEffect.aidl b/audio/aidl/android/hardware/audio/effect/IEffect.aidl index 6097f34ead..266adecc5d 100644 --- a/audio/aidl/android/hardware/audio/effect/IEffect.aidl +++ b/audio/aidl/android/hardware/audio/effect/IEffect.aidl @@ -54,7 +54,16 @@ interface IEffect { } /** - * Return data structure of IEffect.open() interface. + * Return data structure of the IEffect.open() and IEffect.reopen() method. + * + * Contains Fast Message Queues (FMQs) for effect processing status and input/output data. + * The status FMQ remains valid and unchanged after opening, while input/output data FMQs can be + * modified with changes in input/output AudioConfig. If reallocation of data FMQ is necessary, + * the effect instance must release the existing data FMQs to signal the need to the audio + * framework. + * When the audio framework encounters a valid status FMQ and invalid input/output data FMQs, + * it must invoke the IEffect.reopen() method to request the effect instance to reallocate + * the FMQ and return to the audio framework. */ @VintfStability parcelable OpenEffectReturn { @@ -97,7 +106,7 @@ interface IEffect { * client responsibility to make sure all parameter/buffer is correct if client wants to reopen * a closed instance. * - * Effect instance close interface should always succeed unless: + * Effect instance close method should always succeed unless: * 1. The effect instance is not in a proper state to be closed, for example it's still in * State::PROCESSING state. * 2. There is system/hardware related failure when close. @@ -154,8 +163,8 @@ interface IEffect { /** * Get a parameter from the effect instance with parameter ID. * - * This interface must return the current parameter of the effect instance, if no parameter - * has been set by client yet, the default value must be returned. + * This method must return the current parameter of the effect instance, if no parameter has + * been set by client yet, the default value must be returned. * * Must be available for the effect instance after open(). * @@ -165,4 +174,24 @@ interface IEffect { * @throws EX_ILLEGAL_ARGUMENT if the effect instance receive unsupported parameter tag. */ Parameter getParameter(in Parameter.Id paramId); + + /** + * Reopen the effect instance, keeping all previous parameters unchanged, and reallocate only + * the Fast Message Queues (FMQs) allocated during the open time as needed. + * + * When the audio framework encounters a valid status FMQ and invalid data FMQ(s), it calls + * this method to reopen the effect and request the latest data FMQ. + * Upon receiving this call, if the effect instance's data FMQ(s) is invalid, it must reallocate + * the necessary data FMQ(s) and return them to the audio framework. All previous parameters and + * states keep unchanged. + * Once the audio framework successfully completes the call, it must validate the returned FMQs, + * deprecate all old FMQs, and exclusively use the FMQs returned from this method. + * + * @return The reallocated data FMQ and the original status FMQ. + * + * @throws EX_ILLEGAL_STATE if the effect instance is not in a proper state to reallocate FMQ. + * This may occur if the effect instance has already been closed or if there is no need to + * update any data FMQ. + */ + OpenEffectReturn reopen(); } diff --git a/audio/aidl/android/hardware/audio/effect/state.gv b/audio/aidl/android/hardware/audio/effect/state.gv index ce369ba5c8..22c70c8d8f 100644 --- a/audio/aidl/android/hardware/audio/effect/state.gv +++ b/audio/aidl/android/hardware/audio/effect/state.gv @@ -31,6 +31,8 @@ digraph effect_state_machine { IDLE -> INIT[label = "IEffect.close()"]; INIT -> INIT[label = "IEffect.getState\nIEffect.getDescriptor"]; - IDLE -> IDLE[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.command(RESET)"]; - PROCESSING -> PROCESSING[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor"]; + IDLE -> IDLE[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.command(RESET)\nIEffect.reopen"]; + PROCESSING + -> PROCESSING + [label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.reopen"]; } diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp index c81c731c43..3c12f83e0f 100644 --- a/audio/aidl/default/EffectImpl.cpp +++ b/audio/aidl/default/EffectImpl.cpp @@ -60,6 +60,16 @@ ndk::ScopedAStatus EffectImpl::open(const Parameter::Common& common, return ndk::ScopedAStatus::ok(); } +ndk::ScopedAStatus EffectImpl::reopen(OpenEffectReturn* ret) { + RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "alreadyClosed"); + + // TODO: b/302036943 add reopen implementation + auto context = getContext(); + RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + context->dupeFmq(ret); + return ndk::ScopedAStatus::ok(); +} + ndk::ScopedAStatus EffectImpl::close() { RETURN_OK_IF(mState == State::INIT); RETURN_IF(mState == State::PROCESSING, EX_ILLEGAL_STATE, "closeAtProcessing"); diff --git a/audio/aidl/default/include/effect-impl/EffectImpl.h b/audio/aidl/default/include/effect-impl/EffectImpl.h index e7d081f6fc..242a268912 100644 --- a/audio/aidl/default/include/effect-impl/EffectImpl.h +++ b/audio/aidl/default/include/effect-impl/EffectImpl.h @@ -43,6 +43,7 @@ class EffectImpl : public BnEffect, public EffectThread { OpenEffectReturn* ret) override; virtual ndk::ScopedAStatus close() override; virtual ndk::ScopedAStatus command(CommandId id) override; + virtual ndk::ScopedAStatus reopen(OpenEffectReturn* ret) override; virtual ndk::ScopedAStatus getState(State* state) override; virtual ndk::ScopedAStatus setParameter(const Parameter& param) override; -- GitLab From 65c7c7051d1f22dfde4520170af304807abf5293 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Tue, 9 Jan 2024 20:50:53 +0000 Subject: [PATCH 182/418] Effect AIDL: implement IEffect.reopen - add IEffect.reopen implementation - now data MQs can update at runtime, sync EffectContext access - add clang thread annotation Bug: 302036943 Test: atest VtsHalAudioEffectTargetTest Test: build and test audio effect on Pixel Change-Id: I3e9fdc2d5eb50b8c1377e0da75573f0eba7ea3f1 Merged-In: I3e9fdc2d5eb50b8c1377e0da75573f0eba7ea3f1 --- audio/aidl/default/Android.bp | 1 + audio/aidl/default/EffectContext.cpp | 227 ++++++++++++++++++ audio/aidl/default/EffectImpl.cpp | 157 +++++++++--- audio/aidl/default/EffectThread.cpp | 55 +---- .../AcousticEchoCancelerSw.cpp | 4 - .../AcousticEchoCancelerSw.h | 18 +- .../AutomaticGainControlV1Sw.cpp | 4 - .../AutomaticGainControlV1Sw.h | 21 +- .../AutomaticGainControlV2Sw.cpp | 4 - .../AutomaticGainControlV2Sw.h | 21 +- audio/aidl/default/bassboost/BassBoostSw.cpp | 4 - audio/aidl/default/bassboost/BassBoostSw.h | 20 +- audio/aidl/default/downmix/DownmixSw.cpp | 4 - audio/aidl/default/downmix/DownmixSw.h | 21 +- .../DynamicsProcessingSw.cpp | 7 +- .../dynamicProcessing/DynamicsProcessingSw.h | 21 +- audio/aidl/default/envReverb/EnvReverbSw.cpp | 4 - audio/aidl/default/envReverb/EnvReverbSw.h | 18 +- audio/aidl/default/equalizer/EqualizerSw.cpp | 4 - audio/aidl/default/equalizer/EqualizerSw.h | 18 +- .../default/extension/ExtensionEffect.cpp | 4 - .../aidl/default/extension/ExtensionEffect.h | 18 +- .../hapticGenerator/HapticGeneratorSw.cpp | 4 - .../hapticGenerator/HapticGeneratorSw.h | 21 +- .../include/effect-impl/EffectContext.h | 137 ++++------- .../default/include/effect-impl/EffectImpl.h | 50 +++- .../include/effect-impl/EffectThread.h | 35 +-- .../default/include/effect-impl/EffectTypes.h | 5 +- .../loudnessEnhancer/LoudnessEnhancerSw.cpp | 4 - .../loudnessEnhancer/LoudnessEnhancerSw.h | 21 +- .../noiseSuppression/NoiseSuppressionSw.cpp | 4 - .../noiseSuppression/NoiseSuppressionSw.h | 21 +- .../default/presetReverb/PresetReverbSw.cpp | 4 - .../default/presetReverb/PresetReverbSw.h | 20 +- .../default/spatializer/SpatializerSw.cpp | 4 - .../aidl/default/spatializer/SpatializerSw.h | 18 +- .../default/virtualizer/VirtualizerSw.cpp | 4 - .../aidl/default/virtualizer/VirtualizerSw.h | 19 +- .../aidl/default/visualizer/VisualizerSw.cpp | 4 - audio/aidl/default/visualizer/VisualizerSw.h | 20 +- audio/aidl/default/volume/VolumeSw.cpp | 4 - audio/aidl/default/volume/VolumeSw.h | 21 +- audio/aidl/vts/EffectHelper.h | 11 + .../aidl/vts/VtsHalAudioEffectTargetTest.cpp | 96 ++++++++ 44 files changed, 735 insertions(+), 447 deletions(-) create mode 100644 audio/aidl/default/EffectContext.cpp diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp index 6d0b95ef12..20682d6384 100644 --- a/audio/aidl/default/Android.bp +++ b/audio/aidl/default/Android.bp @@ -226,6 +226,7 @@ cc_defaults { filegroup { name: "effectCommonFile", srcs: [ + "EffectContext.cpp", "EffectThread.cpp", "EffectImpl.cpp", ], diff --git a/audio/aidl/default/EffectContext.cpp b/audio/aidl/default/EffectContext.cpp new file mode 100644 index 0000000000..2e1291822a --- /dev/null +++ b/audio/aidl/default/EffectContext.cpp @@ -0,0 +1,227 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#define LOG_TAG "AHAL_EffectContext" +#include "effect-impl/EffectContext.h" +#include "include/effect-impl/EffectTypes.h" + +using aidl::android::hardware::audio::common::getChannelCount; +using aidl::android::hardware::audio::common::getFrameSizeInBytes; +using aidl::android::hardware::audio::effect::IEffect; +using aidl::android::media::audio::common::PcmType; +using ::android::hardware::EventFlag; + +namespace aidl::android::hardware::audio::effect { + +EffectContext::EffectContext(size_t statusDepth, const Parameter::Common& common) { + LOG_ALWAYS_FATAL_IF(RetCode::SUCCESS != setCommon(common), "illegalCommonParameter"); + + // in/outBuffer size in float (FMQ data format defined for DataMQ) + size_t inBufferSizeInFloat = common.input.frameCount * mInputFrameSize / sizeof(float); + size_t outBufferSizeInFloat = common.output.frameCount * mOutputFrameSize / sizeof(float); + + // only status FMQ use the EventFlag + mStatusMQ = std::make_shared(statusDepth, true /*configureEventFlagWord*/); + mInputMQ = std::make_shared(inBufferSizeInFloat); + mOutputMQ = std::make_shared(outBufferSizeInFloat); + + if (!mStatusMQ->isValid() || !mInputMQ->isValid() || !mOutputMQ->isValid()) { + LOG(ERROR) << __func__ << " created invalid FMQ"; + } + + ::android::status_t status = + EventFlag::createEventFlag(mStatusMQ->getEventFlagWord(), &mEfGroup); + LOG_ALWAYS_FATAL_IF(status != ::android::OK || !mEfGroup, " create EventFlagGroup failed "); + mWorkBuffer.reserve(std::max(inBufferSizeInFloat, outBufferSizeInFloat)); +} + +// reset buffer status by abandon input data in FMQ +void EffectContext::resetBuffer() { + auto buffer = static_cast(mWorkBuffer.data()); + std::vector status(mStatusMQ->availableToRead()); + if (mInputMQ) { + mInputMQ->read(buffer, mInputMQ->availableToRead()); + } +} + +void EffectContext::dupeFmqWithReopen(IEffect::OpenEffectReturn* effectRet) { + if (!mInputMQ) { + mInputMQ = std::make_shared(mCommon.input.frameCount * mInputFrameSize / + sizeof(float)); + } + if (!mOutputMQ) { + mOutputMQ = std::make_shared(mCommon.output.frameCount * mOutputFrameSize / + sizeof(float)); + } + dupeFmq(effectRet); +} + +void EffectContext::dupeFmq(IEffect::OpenEffectReturn* effectRet) { + if (effectRet) { + effectRet->statusMQ = mStatusMQ->dupeDesc(); + effectRet->inputDataMQ = mInputMQ->dupeDesc(); + effectRet->outputDataMQ = mOutputMQ->dupeDesc(); + } +} + +float* EffectContext::getWorkBuffer() { + return static_cast(mWorkBuffer.data()); +} + +std::shared_ptr EffectContext::getStatusFmq() const { + return mStatusMQ; +} + +std::shared_ptr EffectContext::getInputDataFmq() const { + return mInputMQ; +} + +std::shared_ptr EffectContext::getOutputDataFmq() const { + return mOutputMQ; +} + +size_t EffectContext::getInputFrameSize() const { + return mInputFrameSize; +} + +size_t EffectContext::getOutputFrameSize() const { + return mOutputFrameSize; +} + +int EffectContext::getSessionId() const { + return mCommon.session; +} + +int EffectContext::getIoHandle() const { + return mCommon.ioHandle; +} + +RetCode EffectContext::setOutputDevice( + const std::vector& device) { + mOutputDevice = device; + return RetCode::SUCCESS; +} + +std::vector +EffectContext::getOutputDevice() { + return mOutputDevice; +} + +RetCode EffectContext::setAudioMode(const aidl::android::media::audio::common::AudioMode& mode) { + mMode = mode; + return RetCode::SUCCESS; +} +aidl::android::media::audio::common::AudioMode EffectContext::getAudioMode() { + return mMode; +} + +RetCode EffectContext::setAudioSource( + const aidl::android::media::audio::common::AudioSource& source) { + mSource = source; + return RetCode::SUCCESS; +} + +aidl::android::media::audio::common::AudioSource EffectContext::getAudioSource() { + return mSource; +} + +RetCode EffectContext::setVolumeStereo(const Parameter::VolumeStereo& volumeStereo) { + mVolumeStereo = volumeStereo; + return RetCode::SUCCESS; +} + +Parameter::VolumeStereo EffectContext::getVolumeStereo() { + return mVolumeStereo; +} + +RetCode EffectContext::setCommon(const Parameter::Common& common) { + LOG(VERBOSE) << __func__ << common.toString(); + auto& input = common.input; + auto& output = common.output; + + if (input.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT || + output.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT) { + LOG(ERROR) << __func__ << " illegal IO, input " + << ::android::internal::ToString(input.base.format) << ", output " + << ::android::internal::ToString(output.base.format); + return RetCode::ERROR_ILLEGAL_PARAMETER; + } + + if (auto ret = updateIOFrameSize(common); ret != RetCode::SUCCESS) { + return ret; + } + + mInputChannelCount = getChannelCount(input.base.channelMask); + mOutputChannelCount = getChannelCount(output.base.channelMask); + if (mInputChannelCount == 0 || mOutputChannelCount == 0) { + LOG(ERROR) << __func__ << " illegal channel count input " << mInputChannelCount + << ", output " << mOutputChannelCount; + return RetCode::ERROR_ILLEGAL_PARAMETER; + } + + mCommon = common; + return RetCode::SUCCESS; +} + +Parameter::Common EffectContext::getCommon() { + LOG(VERBOSE) << __func__ << mCommon.toString(); + return mCommon; +} + +EventFlag* EffectContext::getStatusEventFlag() { + return mEfGroup; +} + +RetCode EffectContext::updateIOFrameSize(const Parameter::Common& common) { + const auto iFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( + common.input.base.format, common.input.base.channelMask); + const auto oFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( + common.output.base.format, common.output.base.channelMask); + + bool needUpdateMq = false; + if (mInputMQ && + (mInputFrameSize != iFrameSize || mCommon.input.frameCount != common.input.frameCount)) { + mInputMQ.reset(); + needUpdateMq = true; + } + if (mOutputMQ && + (mOutputFrameSize != oFrameSize || mCommon.output.frameCount != common.output.frameCount)) { + mOutputMQ.reset(); + needUpdateMq = true; + } + mInputFrameSize = iFrameSize; + mOutputFrameSize = oFrameSize; + if (needUpdateMq) { + return notifyDataMqUpdate(); + } + return RetCode::SUCCESS; +} + +RetCode EffectContext::notifyDataMqUpdate() { + if (!mEfGroup) { + LOG(ERROR) << __func__ << ": invalid EventFlag group"; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + + if (const auto ret = mEfGroup->wake(kEventFlagDataMqUpdate); ret != ::android::OK) { + LOG(ERROR) << __func__ << ": wake failure with ret " << ret; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + LOG(DEBUG) << __func__ << " : signal client for reopen"; + return RetCode::SUCCESS; +} +} // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp index 3c12f83e0f..b76269aa52 100644 --- a/audio/aidl/default/EffectImpl.cpp +++ b/audio/aidl/default/EffectImpl.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#include #define LOG_TAG "AHAL_EffectImpl" #include "effect-impl/EffectImpl.h" #include "effect-impl/EffectTypes.h" @@ -22,6 +23,7 @@ using aidl::android::hardware::audio::effect::IEffect; using aidl::android::hardware::audio::effect::State; using aidl::android::media::audio::common::PcmType; +using ::android::hardware::EventFlag; extern "C" binder_exception_t destroyEffect(const std::shared_ptr& instanceSp) { State state; @@ -45,50 +47,62 @@ ndk::ScopedAStatus EffectImpl::open(const Parameter::Common& common, RETURN_IF(common.input.base.format.pcm != common.output.base.format.pcm || common.input.base.format.pcm != PcmType::FLOAT_32_BIT, EX_ILLEGAL_ARGUMENT, "dataMustBe32BitsFloat"); + std::lock_guard lg(mImplMutex); RETURN_OK_IF(mState != State::INIT); - auto context = createContext(common); - RETURN_IF(!context, EX_NULL_POINTER, "createContextFailed"); + mImplContext = createContext(common); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); + mEventFlag = mImplContext->getStatusEventFlag(); if (specific.has_value()) { RETURN_IF_ASTATUS_NOT_OK(setParameterSpecific(specific.value()), "setSpecParamErr"); } mState = State::IDLE; - context->dupeFmq(ret); - RETURN_IF(createThread(context, getEffectName()) != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, + mImplContext->dupeFmq(ret); + RETURN_IF(createThread(getEffectName()) != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, "FailedToCreateWorker"); return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::reopen(OpenEffectReturn* ret) { + std::lock_guard lg(mImplMutex); RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "alreadyClosed"); // TODO: b/302036943 add reopen implementation - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); - context->dupeFmq(ret); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); + mImplContext->dupeFmqWithReopen(ret); return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::close() { - RETURN_OK_IF(mState == State::INIT); - RETURN_IF(mState == State::PROCESSING, EX_ILLEGAL_STATE, "closeAtProcessing"); + { + std::lock_guard lg(mImplMutex); + RETURN_OK_IF(mState == State::INIT); + RETURN_IF(mState == State::PROCESSING, EX_ILLEGAL_STATE, "closeAtProcessing"); + mState = State::INIT; + } + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); // stop the worker thread, ignore the return code RETURN_IF(destroyThread() != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, "FailedToDestroyWorker"); - mState = State::INIT; - RETURN_IF(releaseContext() != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, - "FailedToCreateWorker"); + + { + std::lock_guard lg(mImplMutex); + releaseContext(); + mImplContext.reset(); + } LOG(DEBUG) << getEffectName() << __func__; return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::setParameter(const Parameter& param) { + std::lock_guard lg(mImplMutex); LOG(VERBOSE) << getEffectName() << __func__ << " with: " << param.toString(); - const auto tag = param.getTag(); + const auto& tag = param.getTag(); switch (tag) { case Parameter::common: case Parameter::deviceDescription: @@ -110,8 +124,8 @@ ndk::ScopedAStatus EffectImpl::setParameter(const Parameter& param) { } ndk::ScopedAStatus EffectImpl::getParameter(const Parameter::Id& id, Parameter* param) { - auto tag = id.getTag(); - switch (tag) { + std::lock_guard lg(mImplMutex); + switch (id.getTag()) { case Parameter::Id::commonTag: { RETURN_IF_ASTATUS_NOT_OK(getParameterCommon(id.get(), param), "CommonParamNotSupported"); @@ -131,30 +145,30 @@ ndk::ScopedAStatus EffectImpl::getParameter(const Parameter::Id& id, Parameter* } ndk::ScopedAStatus EffectImpl::setParameterCommon(const Parameter& param) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); - auto tag = param.getTag(); + const auto& tag = param.getTag(); switch (tag) { case Parameter::common: - RETURN_IF(context->setCommon(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setCommon(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setCommFailed"); break; case Parameter::deviceDescription: - RETURN_IF(context->setOutputDevice(param.get()) != + RETURN_IF(mImplContext->setOutputDevice(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setDeviceFailed"); break; case Parameter::mode: - RETURN_IF(context->setAudioMode(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setAudioMode(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setModeFailed"); break; case Parameter::source: - RETURN_IF(context->setAudioSource(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setAudioSource(param.get()) != + RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setSourceFailed"); break; case Parameter::volumeStereo: - RETURN_IF(context->setVolumeStereo(param.get()) != + RETURN_IF(mImplContext->setVolumeStereo(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setVolumeStereoFailed"); break; @@ -169,28 +183,27 @@ ndk::ScopedAStatus EffectImpl::setParameterCommon(const Parameter& param) { } ndk::ScopedAStatus EffectImpl::getParameterCommon(const Parameter::Tag& tag, Parameter* param) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); switch (tag) { case Parameter::common: { - param->set(context->getCommon()); + param->set(mImplContext->getCommon()); break; } case Parameter::deviceDescription: { - param->set(context->getOutputDevice()); + param->set(mImplContext->getOutputDevice()); break; } case Parameter::mode: { - param->set(context->getAudioMode()); + param->set(mImplContext->getAudioMode()); break; } case Parameter::source: { - param->set(context->getAudioSource()); + param->set(mImplContext->getAudioSource()); break; } case Parameter::volumeStereo: { - param->set(context->getVolumeStereo()); + param->set(mImplContext->getVolumeStereo()); break; } default: { @@ -202,30 +215,34 @@ ndk::ScopedAStatus EffectImpl::getParameterCommon(const Parameter::Tag& tag, Par return ndk::ScopedAStatus::ok(); } -ndk::ScopedAStatus EffectImpl::getState(State* state) { +ndk::ScopedAStatus EffectImpl::getState(State* state) NO_THREAD_SAFETY_ANALYSIS { *state = mState; return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::command(CommandId command) { - RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "CommandStateError"); + std::lock_guard lg(mImplMutex); + RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "instanceNotOpen"); LOG(DEBUG) << getEffectName() << __func__ << ": receive command: " << toString(command) << " at state " << toString(mState); switch (command) { case CommandId::START: - RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "instanceNotOpen"); RETURN_OK_IF(mState == State::PROCESSING); RETURN_IF_ASTATUS_NOT_OK(commandImpl(command), "commandImplFailed"); - startThread(); mState = State::PROCESSING; + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); + startThread(); break; case CommandId::STOP: case CommandId::RESET: RETURN_OK_IF(mState == State::IDLE); + mState = State::IDLE; + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); stopThread(); RETURN_IF_ASTATUS_NOT_OK(commandImpl(command), "commandImplFailed"); - mState = State::IDLE; break; default: LOG(ERROR) << getEffectName() << __func__ << " instance still processing"; @@ -237,19 +254,41 @@ ndk::ScopedAStatus EffectImpl::command(CommandId command) { } ndk::ScopedAStatus EffectImpl::commandImpl(CommandId command) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); if (command == CommandId::RESET) { - context->resetBuffer(); + mImplContext->resetBuffer(); } return ndk::ScopedAStatus::ok(); } +std::shared_ptr EffectImpl::createContext(const Parameter::Common& common) { + return std::make_shared(1 /* statusMqDepth */, common); +} + +RetCode EffectImpl::releaseContext() { + if (mImplContext) { + mImplContext.reset(); + } + return RetCode::SUCCESS; +} + void EffectImpl::cleanUp() { command(CommandId::STOP); close(); } +RetCode EffectImpl::notifyEventFlag(uint32_t flag) { + if (!mEventFlag) { + LOG(ERROR) << getEffectName() << __func__ << ": StatusEventFlag invalid"; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + if (const auto ret = mEventFlag->wake(flag); ret != ::android::OK) { + LOG(ERROR) << getEffectName() << __func__ << ": wake failure with ret " << ret; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + return RetCode::SUCCESS; +} + IEffect::Status EffectImpl::status(binder_status_t status, size_t consumed, size_t produced) { IEffect::Status ret; ret.status = status; @@ -258,6 +297,48 @@ IEffect::Status EffectImpl::status(binder_status_t status, size_t consumed, size return ret; } +void EffectImpl::process() { + /** + * wait for the EventFlag without lock, it's ok because the mEfGroup pointer will not change + * in the life cycle of workerThread (threadLoop). + */ + uint32_t efState = 0; + if (!mEventFlag || + ::android::OK != mEventFlag->wait(kEventFlagNotEmpty, &efState, 0 /* no timeout */, + true /* retry */) || + !(efState & kEventFlagNotEmpty)) { + LOG(ERROR) << getEffectName() << __func__ << ": StatusEventFlag - " << mEventFlag + << " efState - " << std::hex << efState; + return; + } + + { + std::lock_guard lg(mImplMutex); + if (mState != State::PROCESSING) { + LOG(DEBUG) << getEffectName() << " skip process in state: " << toString(mState); + return; + } + RETURN_VALUE_IF(!mImplContext, void(), "nullContext"); + auto statusMQ = mImplContext->getStatusFmq(); + auto inputMQ = mImplContext->getInputDataFmq(); + auto outputMQ = mImplContext->getOutputDataFmq(); + auto buffer = mImplContext->getWorkBuffer(); + if (!inputMQ || !outputMQ) { + return; + } + + auto processSamples = inputMQ->availableToRead(); + if (processSamples) { + inputMQ->read(buffer, processSamples); + IEffect::Status status = effectProcessImpl(buffer, buffer, processSamples); + outputMQ->write(buffer, status.fmqProduced); + statusMQ->writeBlocking(&status, 1); + LOG(VERBOSE) << getEffectName() << __func__ << ": done processing, effect consumed " + << status.fmqConsumed << " produced " << status.fmqProduced; + } + } +} + // A placeholder processing implementation to copy samples from input to output IEffect::Status EffectImpl::effectProcessImpl(float* in, float* out, int samples) { for (int i = 0; i < samples; i++) { diff --git a/audio/aidl/default/EffectThread.cpp b/audio/aidl/default/EffectThread.cpp index 47ba9f44cb..fdd48034e8 100644 --- a/audio/aidl/default/EffectThread.cpp +++ b/audio/aidl/default/EffectThread.cpp @@ -25,8 +25,6 @@ #include "effect-impl/EffectThread.h" #include "effect-impl/EffectTypes.h" -using ::android::hardware::EventFlag; - namespace aidl::android::hardware::audio::effect { EffectThread::EffectThread() { @@ -38,31 +36,18 @@ EffectThread::~EffectThread() { LOG(DEBUG) << __func__ << " done"; } -RetCode EffectThread::createThread(std::shared_ptr context, const std::string& name, - int priority) { +RetCode EffectThread::createThread(const std::string& name, int priority) { if (mThread.joinable()) { LOG(WARNING) << mName << __func__ << " thread already created, no-op"; return RetCode::SUCCESS; } + mName = name; mPriority = priority; { std::lock_guard lg(mThreadMutex); mStop = true; mExit = false; - mThreadContext = std::move(context); - auto statusMQ = mThreadContext->getStatusFmq(); - EventFlag* efGroup = nullptr; - ::android::status_t status = - EventFlag::createEventFlag(statusMQ->getEventFlagWord(), &efGroup); - if (status != ::android::OK || !efGroup) { - LOG(ERROR) << mName << __func__ << " create EventFlagGroup failed " << status - << " efGroup " << efGroup; - return RetCode::ERROR_THREAD; - } - mEfGroup.reset(efGroup); - // kickoff and wait for commands (CommandId::START/STOP) or IEffect.close from client - mEfGroup->wake(kEventFlagNotEmpty); } mThread = std::thread(&EffectThread::threadLoop, this); @@ -75,16 +60,12 @@ RetCode EffectThread::destroyThread() { std::lock_guard lg(mThreadMutex); mStop = mExit = true; } - mCv.notify_one(); + mCv.notify_one(); if (mThread.joinable()) { mThread.join(); } - { - std::lock_guard lg(mThreadMutex); - mThreadContext.reset(); - } LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -96,7 +77,6 @@ RetCode EffectThread::startThread() { mCv.notify_one(); } - mEfGroup->wake(kEventFlagNotEmpty); LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -108,7 +88,6 @@ RetCode EffectThread::stopThread() { mCv.notify_one(); } - mEfGroup->wake(kEventFlagNotEmpty); LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -117,13 +96,6 @@ void EffectThread::threadLoop() { pthread_setname_np(pthread_self(), mName.substr(0, kMaxTaskNameLen - 1).c_str()); setpriority(PRIO_PROCESS, 0, mPriority); while (true) { - /** - * wait for the EventFlag without lock, it's ok because the mEfGroup pointer will not change - * in the life cycle of workerThread (threadLoop). - */ - uint32_t efState = 0; - mEfGroup->wait(kEventFlagNotEmpty, &efState); - { std::unique_lock l(mThreadMutex); ::android::base::ScopedLockAssertion lock_assertion(mThreadMutex); @@ -132,27 +104,8 @@ void EffectThread::threadLoop() { LOG(INFO) << __func__ << " EXIT!"; return; } - process_l(); } - } -} - -void EffectThread::process_l() { - RETURN_VALUE_IF(!mThreadContext, void(), "nullContext"); - - auto statusMQ = mThreadContext->getStatusFmq(); - auto inputMQ = mThreadContext->getInputDataFmq(); - auto outputMQ = mThreadContext->getOutputDataFmq(); - auto buffer = mThreadContext->getWorkBuffer(); - - auto processSamples = inputMQ->availableToRead(); - if (processSamples) { - inputMQ->read(buffer, processSamples); - IEffect::Status status = effectProcessImpl(buffer, buffer, processSamples); - outputMQ->write(buffer, status.fmqProduced); - statusMQ->writeBlocking(&status, 1); - LOG(VERBOSE) << mName << __func__ << ": done processing, effect consumed " - << status.fmqConsumed << " produced " << status.fmqProduced; + process(); } } diff --git a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp index 5e18f1b12f..be0927c457 100644 --- a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp +++ b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp @@ -168,10 +168,6 @@ std::shared_ptr AcousticEchoCancelerSw::createContext( return mContext; } -std::shared_ptr AcousticEchoCancelerSw::getContext() { - return mContext; -} - RetCode AcousticEchoCancelerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h index 73cf42b17a..95738f8dd1 100644 --- a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h +++ b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h @@ -52,21 +52,23 @@ class AcousticEchoCancelerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterAcousticEchoCanceler(const AcousticEchoCanceler::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp index ce10ae1674..d865b7e95a 100644 --- a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp +++ b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp @@ -177,10 +177,6 @@ std::shared_ptr AutomaticGainControlV1Sw::createContext( return mContext; } -std::shared_ptr AutomaticGainControlV1Sw::getContext() { - return mContext; -} - RetCode AutomaticGainControlV1Sw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h index 7d2a69f9d5..76b91aef31 100644 --- a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h +++ b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h @@ -53,21 +53,24 @@ class AutomaticGainControlV1Sw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterAutomaticGainControlV1(const AutomaticGainControlV1::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp index 1e336ac012..3ff6e38cdd 100644 --- a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp +++ b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp @@ -180,10 +180,6 @@ std::shared_ptr AutomaticGainControlV2Sw::createContext( return mContext; } -std::shared_ptr AutomaticGainControlV2Sw::getContext() { - return mContext; -} - RetCode AutomaticGainControlV2Sw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h index 9aa60eab60..863d470f90 100644 --- a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h +++ b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h @@ -59,21 +59,24 @@ class AutomaticGainControlV2Sw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterAutomaticGainControlV2(const AutomaticGainControlV2::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/bassboost/BassBoostSw.cpp b/audio/aidl/default/bassboost/BassBoostSw.cpp index 6072d896d9..60adc3014d 100644 --- a/audio/aidl/default/bassboost/BassBoostSw.cpp +++ b/audio/aidl/default/bassboost/BassBoostSw.cpp @@ -151,10 +151,6 @@ std::shared_ptr BassBoostSw::createContext(const Parameter::Commo return mContext; } -std::shared_ptr BassBoostSw::getContext() { - return mContext; -} - RetCode BassBoostSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/bassboost/BassBoostSw.h b/audio/aidl/default/bassboost/BassBoostSw.h index 11324727a7..901e4551b8 100644 --- a/audio/aidl/default/bassboost/BassBoostSw.h +++ b/audio/aidl/default/bassboost/BassBoostSw.h @@ -51,21 +51,23 @@ class BassBoostSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterBassBoost(const BassBoost::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/downmix/DownmixSw.cpp b/audio/aidl/default/downmix/DownmixSw.cpp index ce5fe20817..19ab2e8f6a 100644 --- a/audio/aidl/default/downmix/DownmixSw.cpp +++ b/audio/aidl/default/downmix/DownmixSw.cpp @@ -144,10 +144,6 @@ std::shared_ptr DownmixSw::createContext(const Parameter::Common& return mContext; } -std::shared_ptr DownmixSw::getContext() { - return mContext; -} - RetCode DownmixSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/downmix/DownmixSw.h b/audio/aidl/default/downmix/DownmixSw.h index 3f8a09b16c..1a9f0f01b0 100644 --- a/audio/aidl/default/downmix/DownmixSw.h +++ b/audio/aidl/default/downmix/DownmixSw.h @@ -55,20 +55,23 @@ class DownmixSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int sample) override; + IEffect::Status effectProcessImpl(float* in, float* out, int sample) + REQUIRES(mImplMutex) override; private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); - ndk::ScopedAStatus getParameterDownmix(const Downmix::Tag& tag, Parameter::Specific* specific); + ndk::ScopedAStatus getParameterDownmix(const Downmix::Tag& tag, Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp index e8f90b216b..36face148b 100644 --- a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp +++ b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp @@ -260,10 +260,6 @@ std::shared_ptr DynamicsProcessingSw::createContext( return mContext; } -std::shared_ptr DynamicsProcessingSw::getContext() { - return mContext; -} - RetCode DynamicsProcessingSw::releaseContext() { if (mContext) { mContext.reset(); @@ -282,6 +278,9 @@ IEffect::Status DynamicsProcessingSw::effectProcessImpl(float* in, float* out, i } RetCode DynamicsProcessingSwContext::setCommon(const Parameter::Common& common) { + if (auto ret = updateIOFrameSize(common); ret != RetCode::SUCCESS) { + return ret; + } mCommon = common; mChannelCount = ::aidl::android::hardware::audio::common::getChannelCount( common.input.base.channelMask); diff --git a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h index 641cf71f68..98edca088c 100644 --- a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h +++ b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h @@ -113,15 +113,17 @@ class DynamicsProcessingSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; private: @@ -130,9 +132,10 @@ class DynamicsProcessingSw final : public EffectImpl { static const Range::DynamicsProcessingRange kPreEqBandRange; static const Range::DynamicsProcessingRange kPostEqBandRange; static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterDynamicsProcessing(const DynamicsProcessing::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; // DynamicsProcessingSw diff --git a/audio/aidl/default/envReverb/EnvReverbSw.cpp b/audio/aidl/default/envReverb/EnvReverbSw.cpp index 73975c6996..7937a6a247 100644 --- a/audio/aidl/default/envReverb/EnvReverbSw.cpp +++ b/audio/aidl/default/envReverb/EnvReverbSw.cpp @@ -267,10 +267,6 @@ std::shared_ptr EnvReverbSw::createContext(const Parameter::Commo return mContext; } -std::shared_ptr EnvReverbSw::getContext() { - return mContext; -} - RetCode EnvReverbSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/envReverb/EnvReverbSw.h b/audio/aidl/default/envReverb/EnvReverbSw.h index 5e31e2f8b2..367462b7da 100644 --- a/audio/aidl/default/envReverb/EnvReverbSw.h +++ b/audio/aidl/default/envReverb/EnvReverbSw.h @@ -100,21 +100,23 @@ class EnvReverbSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; std::string getEffectName() override { return kEffectName; } private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterEnvironmentalReverb(const EnvironmentalReverb::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/equalizer/EqualizerSw.cpp b/audio/aidl/default/equalizer/EqualizerSw.cpp index b2add3113c..640b3ba95e 100644 --- a/audio/aidl/default/equalizer/EqualizerSw.cpp +++ b/audio/aidl/default/equalizer/EqualizerSw.cpp @@ -198,10 +198,6 @@ std::shared_ptr EqualizerSw::createContext(const Parameter::Commo return mContext; } -std::shared_ptr EqualizerSw::getContext() { - return mContext; -} - RetCode EqualizerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/equalizer/EqualizerSw.h b/audio/aidl/default/equalizer/EqualizerSw.h index 56af3b5821..caaa129501 100644 --- a/audio/aidl/default/equalizer/EqualizerSw.h +++ b/audio/aidl/default/equalizer/EqualizerSw.h @@ -97,15 +97,17 @@ class EqualizerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: @@ -113,7 +115,7 @@ class EqualizerSw final : public EffectImpl { static const std::vector kPresets; static const std::vector kRanges; ndk::ScopedAStatus getParameterEqualizer(const Equalizer::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); std::shared_ptr mContext; }; diff --git a/audio/aidl/default/extension/ExtensionEffect.cpp b/audio/aidl/default/extension/ExtensionEffect.cpp index 4a4d71b687..11916c88d2 100644 --- a/audio/aidl/default/extension/ExtensionEffect.cpp +++ b/audio/aidl/default/extension/ExtensionEffect.cpp @@ -123,10 +123,6 @@ std::shared_ptr ExtensionEffect::createContext(const Parameter::C return mContext; } -std::shared_ptr ExtensionEffect::getContext() { - return mContext; -} - RetCode ExtensionEffect::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/extension/ExtensionEffect.h b/audio/aidl/default/extension/ExtensionEffect.h index e7a068ba46..b56086068c 100644 --- a/audio/aidl/default/extension/ExtensionEffect.h +++ b/audio/aidl/default/extension/ExtensionEffect.h @@ -54,18 +54,20 @@ class ExtensionEffect final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp index 27cdac8086..7469ab930e 100644 --- a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp +++ b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp @@ -158,10 +158,6 @@ std::shared_ptr HapticGeneratorSw::createContext(const Parameter: return mContext; } -std::shared_ptr HapticGeneratorSw::getContext() { - return mContext; -} - RetCode HapticGeneratorSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h index 3bbe41ad29..47f3848796 100644 --- a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h +++ b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h @@ -67,21 +67,24 @@ class HapticGeneratorSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterHapticGenerator(const HapticGenerator::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/include/effect-impl/EffectContext.h b/audio/aidl/default/include/effect-impl/EffectContext.h index 89d0c7cf3c..24f3b5dcf2 100644 --- a/audio/aidl/default/include/effect-impl/EffectContext.h +++ b/audio/aidl/default/include/effect-impl/EffectContext.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "EffectTypes.h" @@ -36,127 +37,73 @@ class EffectContext { float, ::aidl::android::hardware::common::fmq::SynchronizedReadWrite> DataMQ; - EffectContext(size_t statusDepth, const Parameter::Common& common) { - auto& input = common.input; - auto& output = common.output; - - LOG_ALWAYS_FATAL_IF( - input.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT, - "inputFormatNotFloat"); - LOG_ALWAYS_FATAL_IF(output.base.format.pcm != - aidl::android::media::audio::common::PcmType::FLOAT_32_BIT, - "outputFormatNotFloat"); - - size_t inputChannelCount = - ::aidl::android::hardware::audio::common::getChannelCount(input.base.channelMask); - LOG_ALWAYS_FATAL_IF(inputChannelCount == 0, "inputChannelCountNotValid"); - size_t outputChannelCount = - ::aidl::android::hardware::audio::common::getChannelCount(output.base.channelMask); - LOG_ALWAYS_FATAL_IF(outputChannelCount == 0, "outputChannelCountNotValid"); - - mInputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( - input.base.format, input.base.channelMask); - mOutputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( - output.base.format, output.base.channelMask); - // in/outBuffer size in float (FMQ data format defined for DataMQ) - size_t inBufferSizeInFloat = input.frameCount * mInputFrameSize / sizeof(float); - size_t outBufferSizeInFloat = output.frameCount * mOutputFrameSize / sizeof(float); - - // only status FMQ use the EventFlag - mStatusMQ = std::make_shared(statusDepth, true /*configureEventFlagWord*/); - mInputMQ = std::make_shared(inBufferSizeInFloat); - mOutputMQ = std::make_shared(outBufferSizeInFloat); - - if (!mStatusMQ->isValid() || !mInputMQ->isValid() || !mOutputMQ->isValid()) { - LOG(ERROR) << __func__ << " created invalid FMQ"; + EffectContext(size_t statusDepth, const Parameter::Common& common); + virtual ~EffectContext() { + if (mEfGroup) { + ::android::hardware::EventFlag::deleteEventFlag(&mEfGroup); } - mWorkBuffer.reserve(std::max(inBufferSizeInFloat, outBufferSizeInFloat)); - mCommon = common; } - virtual ~EffectContext() {} - std::shared_ptr getStatusFmq() { return mStatusMQ; } - std::shared_ptr getInputDataFmq() { return mInputMQ; } - std::shared_ptr getOutputDataFmq() { return mOutputMQ; } + std::shared_ptr getStatusFmq() const; + std::shared_ptr getInputDataFmq() const; + std::shared_ptr getOutputDataFmq() const; - float* getWorkBuffer() { return static_cast(mWorkBuffer.data()); } + float* getWorkBuffer(); // reset buffer status by abandon input data in FMQ - void resetBuffer() { - auto buffer = static_cast(mWorkBuffer.data()); - std::vector status(mStatusMQ->availableToRead()); - mInputMQ->read(buffer, mInputMQ->availableToRead()); - } + void resetBuffer(); + void dupeFmq(IEffect::OpenEffectReturn* effectRet); + size_t getInputFrameSize() const; + size_t getOutputFrameSize() const; + int getSessionId() const; + int getIoHandle() const; - void dupeFmq(IEffect::OpenEffectReturn* effectRet) { - if (effectRet) { - effectRet->statusMQ = mStatusMQ->dupeDesc(); - effectRet->inputDataMQ = mInputMQ->dupeDesc(); - effectRet->outputDataMQ = mOutputMQ->dupeDesc(); - } - } - size_t getInputFrameSize() { return mInputFrameSize; } - size_t getOutputFrameSize() { return mOutputFrameSize; } - int getSessionId() { return mCommon.session; } - int getIoHandle() { return mCommon.ioHandle; } + virtual void dupeFmqWithReopen(IEffect::OpenEffectReturn* effectRet); virtual RetCode setOutputDevice( - const std::vector& - device) { - mOutputDevice = device; - return RetCode::SUCCESS; - } + const std::vector& device); virtual std::vector - getOutputDevice() { - return mOutputDevice; - } + getOutputDevice(); - virtual RetCode setAudioMode(const aidl::android::media::audio::common::AudioMode& mode) { - mMode = mode; - return RetCode::SUCCESS; - } - virtual aidl::android::media::audio::common::AudioMode getAudioMode() { return mMode; } + virtual RetCode setAudioMode(const aidl::android::media::audio::common::AudioMode& mode); + virtual aidl::android::media::audio::common::AudioMode getAudioMode(); - virtual RetCode setAudioSource(const aidl::android::media::audio::common::AudioSource& source) { - mSource = source; - return RetCode::SUCCESS; - } - virtual aidl::android::media::audio::common::AudioSource getAudioSource() { return mSource; } + virtual RetCode setAudioSource(const aidl::android::media::audio::common::AudioSource& source); + virtual aidl::android::media::audio::common::AudioSource getAudioSource(); - virtual RetCode setVolumeStereo(const Parameter::VolumeStereo& volumeStereo) { - mVolumeStereo = volumeStereo; - return RetCode::SUCCESS; - } - virtual Parameter::VolumeStereo getVolumeStereo() { return mVolumeStereo; } + virtual RetCode setVolumeStereo(const Parameter::VolumeStereo& volumeStereo); + virtual Parameter::VolumeStereo getVolumeStereo(); - virtual RetCode setCommon(const Parameter::Common& common) { - mCommon = common; - LOG(VERBOSE) << __func__ << mCommon.toString(); - return RetCode::SUCCESS; - } - virtual Parameter::Common getCommon() { - LOG(VERBOSE) << __func__ << mCommon.toString(); - return mCommon; - } + virtual RetCode setCommon(const Parameter::Common& common); + virtual Parameter::Common getCommon(); + + virtual ::android::hardware::EventFlag* getStatusEventFlag(); protected: - // common parameters size_t mInputFrameSize; size_t mOutputFrameSize; - Parameter::Common mCommon; - std::vector mOutputDevice; - aidl::android::media::audio::common::AudioMode mMode; - aidl::android::media::audio::common::AudioSource mSource; - Parameter::VolumeStereo mVolumeStereo; + size_t mInputChannelCount; + size_t mOutputChannelCount; + Parameter::Common mCommon = {}; + std::vector mOutputDevice = {}; + aidl::android::media::audio::common::AudioMode mMode = + aidl::android::media::audio::common::AudioMode::SYS_RESERVED_INVALID; + aidl::android::media::audio::common::AudioSource mSource = + aidl::android::media::audio::common::AudioSource::SYS_RESERVED_INVALID; + Parameter::VolumeStereo mVolumeStereo = {}; + RetCode updateIOFrameSize(const Parameter::Common& common); + RetCode notifyDataMqUpdate(); private: // fmq and buffers std::shared_ptr mStatusMQ; std::shared_ptr mInputMQ; std::shared_ptr mOutputMQ; - // TODO handle effect process input and output + // std::shared_ptr mRet; // work buffer set by effect instances, the access and update are in same thread std::vector mWorkBuffer; + + ::android::hardware::EventFlag* mEfGroup; }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/include/effect-impl/EffectImpl.h b/audio/aidl/default/include/effect-impl/EffectImpl.h index 242a268912..21f6502385 100644 --- a/audio/aidl/default/include/effect-impl/EffectImpl.h +++ b/audio/aidl/default/include/effect-impl/EffectImpl.h @@ -49,33 +49,54 @@ class EffectImpl : public BnEffect, public EffectThread { virtual ndk::ScopedAStatus setParameter(const Parameter& param) override; virtual ndk::ScopedAStatus getParameter(const Parameter::Id& id, Parameter* param) override; - virtual ndk::ScopedAStatus setParameterCommon(const Parameter& param); - virtual ndk::ScopedAStatus getParameterCommon(const Parameter::Tag& tag, Parameter* param); + virtual ndk::ScopedAStatus setParameterCommon(const Parameter& param) REQUIRES(mImplMutex); + virtual ndk::ScopedAStatus getParameterCommon(const Parameter::Tag& tag, Parameter* param) + REQUIRES(mImplMutex); /* Methods MUST be implemented by each effect instances */ virtual ndk::ScopedAStatus getDescriptor(Descriptor* desc) = 0; - virtual ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) = 0; + virtual ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) = 0; virtual ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) = 0; + Parameter::Specific* specific) + REQUIRES(mImplMutex) = 0; virtual std::string getEffectName() = 0; - virtual IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + virtual std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex); + virtual RetCode releaseContext() REQUIRES(mImplMutex) = 0; /** - * Effect context methods must be implemented by each effect. - * Each effect can derive from EffectContext and define its own context, but must upcast to - * EffectContext for EffectImpl to use. + * @brief effectProcessImpl is running in worker thread which created in EffectThread. + * + * EffectThread will make sure effectProcessImpl only be called after startThread() successful + * and before stopThread() successful. + * + * effectProcessImpl implementation must not call any EffectThread interface, otherwise it will + * cause deadlock. + * + * @param in address of input float buffer. + * @param out address of output float buffer. + * @param samples number of samples to process. + * @return IEffect::Status */ - virtual std::shared_ptr createContext(const Parameter::Common& common) = 0; - virtual std::shared_ptr getContext() = 0; - virtual RetCode releaseContext() = 0; + virtual IEffect::Status effectProcessImpl(float* in, float* out, int samples) = 0; + + /** + * process() get data from data MQs, and call effectProcessImpl() for effect data processing. + * Its important for the implementation to use mImplMutex for context synchronization. + */ + void process() override; protected: - State mState = State::INIT; + State mState GUARDED_BY(mImplMutex) = State::INIT; IEffect::Status status(binder_status_t status, size_t consumed, size_t produced); void cleanUp(); + std::mutex mImplMutex; + std::shared_ptr mImplContext GUARDED_BY(mImplMutex); + /** * Optional CommandId handling methods for effects to override. * For CommandId::START, EffectImpl call commandImpl before starting the EffectThread @@ -83,6 +104,9 @@ class EffectImpl : public BnEffect, public EffectThread { * For CommandId::STOP and CommandId::RESET, EffectImpl call commandImpl after stop the * EffectThread processing. */ - virtual ndk::ScopedAStatus commandImpl(CommandId id); + virtual ndk::ScopedAStatus commandImpl(CommandId id) REQUIRES(mImplMutex); + + RetCode notifyEventFlag(uint32_t flag); + ::android::hardware::EventFlag* mEventFlag; }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/include/effect-impl/EffectThread.h b/audio/aidl/default/include/effect-impl/EffectThread.h index ae51ef70ab..3dbb0e6798 100644 --- a/audio/aidl/default/include/effect-impl/EffectThread.h +++ b/audio/aidl/default/include/effect-impl/EffectThread.h @@ -36,8 +36,7 @@ class EffectThread { virtual ~EffectThread(); // called by effect implementation. - RetCode createThread(std::shared_ptr context, const std::string& name, - int priority = ANDROID_PRIORITY_URGENT_AUDIO); + RetCode createThread(const std::string& name, int priority = ANDROID_PRIORITY_URGENT_AUDIO); RetCode destroyThread(); RetCode startThread(); RetCode stopThread(); @@ -45,33 +44,12 @@ class EffectThread { // Will call process() in a loop if the thread is running. void threadLoop(); - /** - * @brief effectProcessImpl is running in worker thread which created in EffectThread. - * - * Effect implementation should think about concurrency in the implementation if necessary. - * Parameter setting usually implemented in context (derived from EffectContext), and some - * parameter maybe used in the processing, then effect implementation should consider using a - * mutex to protect these parameter. - * - * EffectThread will make sure effectProcessImpl only be called after startThread() successful - * and before stopThread() successful. - * - * effectProcessImpl implementation must not call any EffectThread interface, otherwise it will - * cause deadlock. - * - * @param in address of input float buffer. - * @param out address of output float buffer. - * @param samples number of samples to process. - * @return IEffect::Status - */ - virtual IEffect::Status effectProcessImpl(float* in, float* out, int samples) = 0; - /** * process() call effectProcessImpl() for effect data processing, it is necessary for the * processing to be called under Effect thread mutex mThreadMutex, to avoid the effect state * change before/during data processing, and keep the thread and effect state consistent. */ - virtual void process_l() REQUIRES(mThreadMutex); + virtual void process() = 0; private: static constexpr int kMaxTaskNameLen = 15; @@ -80,16 +58,7 @@ class EffectThread { std::condition_variable mCv; bool mStop GUARDED_BY(mThreadMutex) = true; bool mExit GUARDED_BY(mThreadMutex) = false; - std::shared_ptr mThreadContext GUARDED_BY(mThreadMutex); - struct EventFlagDeleter { - void operator()(::android::hardware::EventFlag* flag) const { - if (flag) { - ::android::hardware::EventFlag::deleteEventFlag(&flag); - } - } - }; - std::unique_ptr<::android::hardware::EventFlag, EventFlagDeleter> mEfGroup; std::thread mThread; int mPriority; std::string mName; diff --git a/audio/aidl/default/include/effect-impl/EffectTypes.h b/audio/aidl/default/include/effect-impl/EffectTypes.h index 4bda7bea21..9740d6ee9c 100644 --- a/audio/aidl/default/include/effect-impl/EffectTypes.h +++ b/audio/aidl/default/include/effect-impl/EffectTypes.h @@ -46,7 +46,8 @@ enum class RetCode { ERROR_NULL_POINTER, /* NULL pointer */ ERROR_ALIGNMENT_ERROR, /* Memory alignment error */ ERROR_BLOCK_SIZE_EXCEED, /* Maximum block size exceeded */ - ERROR_EFFECT_LIB_ERROR + ERROR_EFFECT_LIB_ERROR, /* Effect implementation library error */ + ERROR_EVENT_FLAG_ERROR /* Error with effect event flags */ }; static const int INVALID_AUDIO_SESSION_ID = -1; @@ -67,6 +68,8 @@ inline std::ostream& operator<<(std::ostream& out, const RetCode& code) { return out << "ERROR_BLOCK_SIZE_EXCEED"; case RetCode::ERROR_EFFECT_LIB_ERROR: return out << "ERROR_EFFECT_LIB_ERROR"; + case RetCode::ERROR_EVENT_FLAG_ERROR: + return out << "ERROR_EVENT_FLAG_ERROR"; } return out << "EnumError: " << code; diff --git a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp index 7954316654..1e70716a96 100644 --- a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp +++ b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp @@ -147,10 +147,6 @@ std::shared_ptr LoudnessEnhancerSw::createContext(const Parameter return mContext; } -std::shared_ptr LoudnessEnhancerSw::getContext() { - return mContext; -} - RetCode LoudnessEnhancerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h index 25824f20d5..cf71a5f03f 100644 --- a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h +++ b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h @@ -54,20 +54,23 @@ class LoudnessEnhancerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterLoudnessEnhancer(const LoudnessEnhancer::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp index a3208df865..d304416dff 100644 --- a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp +++ b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp @@ -155,10 +155,6 @@ std::shared_ptr NoiseSuppressionSw::createContext(const Parameter return mContext; } -std::shared_ptr NoiseSuppressionSw::getContext() { - return mContext; -} - RetCode NoiseSuppressionSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h index fc1e028808..acef8ee135 100644 --- a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h +++ b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h @@ -55,20 +55,23 @@ class NoiseSuppressionSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterNoiseSuppression(const NoiseSuppression::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/presetReverb/PresetReverbSw.cpp b/audio/aidl/default/presetReverb/PresetReverbSw.cpp index 3f02eb7382..2ac201038d 100644 --- a/audio/aidl/default/presetReverb/PresetReverbSw.cpp +++ b/audio/aidl/default/presetReverb/PresetReverbSw.cpp @@ -161,10 +161,6 @@ std::shared_ptr PresetReverbSw::createContext(const Parameter::Co return mContext; } -std::shared_ptr PresetReverbSw::getContext() { - return mContext; -} - RetCode PresetReverbSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/presetReverb/PresetReverbSw.h b/audio/aidl/default/presetReverb/PresetReverbSw.h index 9ceee7cca9..61fc88c079 100644 --- a/audio/aidl/default/presetReverb/PresetReverbSw.h +++ b/audio/aidl/default/presetReverb/PresetReverbSw.h @@ -56,21 +56,23 @@ class PresetReverbSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterPresetReverb(const PresetReverb::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/spatializer/SpatializerSw.cpp b/audio/aidl/default/spatializer/SpatializerSw.cpp index 434ed5ac38..6d3c4bd16e 100644 --- a/audio/aidl/default/spatializer/SpatializerSw.cpp +++ b/audio/aidl/default/spatializer/SpatializerSw.cpp @@ -141,10 +141,6 @@ std::shared_ptr SpatializerSw::createContext(const Parameter::Com return mContext; } -std::shared_ptr SpatializerSw::getContext() { - return mContext; -} - RetCode SpatializerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/spatializer/SpatializerSw.h b/audio/aidl/default/spatializer/SpatializerSw.h index b205704cb1..b321e83b9a 100644 --- a/audio/aidl/default/spatializer/SpatializerSw.h +++ b/audio/aidl/default/spatializer/SpatializerSw.h @@ -50,19 +50,21 @@ class SpatializerSw final : public EffectImpl { ~SpatializerSw(); ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; private: static const std::vector kRanges; - std::shared_ptr mContext = nullptr; + std::shared_ptr mContext GUARDED_BY(mImplMutex) = nullptr; }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/virtualizer/VirtualizerSw.cpp b/audio/aidl/default/virtualizer/VirtualizerSw.cpp index 0e8435ef82..091b0b72c4 100644 --- a/audio/aidl/default/virtualizer/VirtualizerSw.cpp +++ b/audio/aidl/default/virtualizer/VirtualizerSw.cpp @@ -203,10 +203,6 @@ std::shared_ptr VirtualizerSw::createContext(const Parameter::Com return mContext; } -std::shared_ptr VirtualizerSw::getContext() { - return mContext; -} - RetCode VirtualizerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/virtualizer/VirtualizerSw.h b/audio/aidl/default/virtualizer/VirtualizerSw.h index 5e114d9abd..9287838083 100644 --- a/audio/aidl/default/virtualizer/VirtualizerSw.h +++ b/audio/aidl/default/virtualizer/VirtualizerSw.h @@ -59,24 +59,25 @@ class VirtualizerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; std::string getEffectName() override { return kEffectName; } private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterVirtualizer(const Virtualizer::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); ndk::ScopedAStatus getSpeakerAngles(const Virtualizer::SpeakerAnglesPayload payload, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/visualizer/VisualizerSw.cpp b/audio/aidl/default/visualizer/VisualizerSw.cpp index 285c102b6b..54f7f1c52e 100644 --- a/audio/aidl/default/visualizer/VisualizerSw.cpp +++ b/audio/aidl/default/visualizer/VisualizerSw.cpp @@ -190,10 +190,6 @@ std::shared_ptr VisualizerSw::createContext(const Parameter::Comm return mContext; } -std::shared_ptr VisualizerSw::getContext() { - return mContext; -} - RetCode VisualizerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/visualizer/VisualizerSw.h b/audio/aidl/default/visualizer/VisualizerSw.h index 995774e197..4b87b04298 100644 --- a/audio/aidl/default/visualizer/VisualizerSw.h +++ b/audio/aidl/default/visualizer/VisualizerSw.h @@ -72,21 +72,23 @@ class VisualizerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterVisualizer(const Visualizer::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/volume/VolumeSw.cpp b/audio/aidl/default/volume/VolumeSw.cpp index 890258457f..dd019f6c93 100644 --- a/audio/aidl/default/volume/VolumeSw.cpp +++ b/audio/aidl/default/volume/VolumeSw.cpp @@ -160,10 +160,6 @@ std::shared_ptr VolumeSw::createContext(const Parameter::Common& return mContext; } -std::shared_ptr VolumeSw::getContext() { - return mContext; -} - RetCode VolumeSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/volume/VolumeSw.h b/audio/aidl/default/volume/VolumeSw.h index 1432b2be0d..3fc0d97320 100644 --- a/audio/aidl/default/volume/VolumeSw.h +++ b/audio/aidl/default/volume/VolumeSw.h @@ -57,21 +57,24 @@ class VolumeSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; - IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; + IEffect::Status effectProcessImpl(float* in, float* out, int samples) + REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; } private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); - ndk::ScopedAStatus getParameterVolume(const Volume::Tag& tag, Parameter::Specific* specific); + ndk::ScopedAStatus getParameterVolume(const Volume::Tag& tag, Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/vts/EffectHelper.h b/audio/aidl/vts/EffectHelper.h index 4a5c537dd5..9fa7f9f74a 100644 --- a/audio/aidl/vts/EffectHelper.h +++ b/audio/aidl/vts/EffectHelper.h @@ -43,6 +43,7 @@ using namespace android; using aidl::android::hardware::audio::effect::CommandId; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::IEffect; +using aidl::android::hardware::audio::effect::kEventFlagDataMqUpdate; using aidl::android::hardware::audio::effect::kEventFlagNotEmpty; using aidl::android::hardware::audio::effect::Parameter; using aidl::android::hardware::audio::effect::Range; @@ -191,6 +192,16 @@ class EffectHelper { ASSERT_TRUE(dataMq->read(buffer.data(), expectFloats)); } } + static void expectDataMqUpdateEventFlag(std::unique_ptr& statusMq) { + EventFlag* efGroup; + ASSERT_EQ(::android::OK, + EventFlag::createEventFlag(statusMq->getEventFlagWord(), &efGroup)); + ASSERT_NE(nullptr, efGroup); + uint32_t efState = 0; + EXPECT_EQ(::android::OK, efGroup->wait(kEventFlagDataMqUpdate, &efState, 1'000'000 /*1ms*/, + true /* retry */)); + EXPECT_TRUE(efState & kEventFlagDataMqUpdate); + } static Parameter::Common createParamCommon( int session = 0, int ioHandle = -1, int iSampleRate = 48000, int oSampleRate = 48000, long iFrameCount = 0x100, long oFrameCount = 0x100, diff --git a/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp b/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp index 418fedbcb3..01cdd816f5 100644 --- a/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp @@ -609,6 +609,49 @@ TEST_P(AudioEffectTest, SetAndGetParameterVolume) { ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); } +// Verify Parameters kept after reset. +TEST_P(AudioEffectTest, SetCommonParameterAndReopen) { + ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); + + Parameter::Common common = EffectHelper::createParamCommon( + 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, + kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); + IEffect::OpenEffectReturn ret; + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, std::nullopt /* specific */, &ret, EX_NONE)); + auto statusMQ = std::make_unique(ret.statusMQ); + ASSERT_TRUE(statusMQ->isValid()); + auto inputMQ = std::make_unique(ret.inputDataMQ); + ASSERT_TRUE(inputMQ->isValid()); + auto outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(outputMQ->isValid()); + + Parameter::Id id = Parameter::Id::make(Parameter::common); + common.input.frameCount++; + ASSERT_NO_FATAL_FAILURE(setAndGetParameter(id, Parameter::make(common))); + ASSERT_TRUE(statusMQ->isValid()); + expectDataMqUpdateEventFlag(statusMQ); + EXPECT_IS_OK(mEffect->reopen(&ret)); + inputMQ = std::make_unique(ret.inputDataMQ); + outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(statusMQ->isValid()); + ASSERT_TRUE(inputMQ->isValid()); + ASSERT_TRUE(outputMQ->isValid()); + + common.output.frameCount++; + ASSERT_NO_FATAL_FAILURE(setAndGetParameter(id, Parameter::make(common))); + ASSERT_TRUE(statusMQ->isValid()); + expectDataMqUpdateEventFlag(statusMQ); + EXPECT_IS_OK(mEffect->reopen(&ret)); + inputMQ = std::make_unique(ret.inputDataMQ); + outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(statusMQ->isValid()); + ASSERT_TRUE(inputMQ->isValid()); + ASSERT_TRUE(outputMQ->isValid()); + + ASSERT_NO_FATAL_FAILURE(close(mEffect)); + ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); +} + /// Data processing test // Send data to effects and expect it to be consumed by checking statusMQ. // Effects exposing bypass flags or operating in offload mode will be skipped. @@ -684,6 +727,59 @@ TEST_P(AudioEffectDataPathTest, ConsumeDataAfterRestart) { ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); } +// Send data to effects and expect it to be consumed after effect reopen (IO AudioConfig change). +// Effects exposing bypass flags or operating in offload mode will be skipped. +TEST_P(AudioEffectDataPathTest, ConsumeDataAfterReopen) { + ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); + + Parameter::Common common = EffectHelper::createParamCommon( + 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, + kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); + IEffect::OpenEffectReturn ret; + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, std::nullopt /* specific */, &ret, EX_NONE)); + auto statusMQ = std::make_unique(ret.statusMQ); + ASSERT_TRUE(statusMQ->isValid()); + auto inputMQ = std::make_unique(ret.inputDataMQ); + ASSERT_TRUE(inputMQ->isValid()); + auto outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(outputMQ->isValid()); + + std::vector buffer; + ASSERT_NO_FATAL_FAILURE(command(mEffect, CommandId::START)); + ASSERT_NO_FATAL_FAILURE(expectState(mEffect, State::PROCESSING)); + EXPECT_NO_FATAL_FAILURE(EffectHelper::allocateInputData(common, inputMQ, buffer)); + EXPECT_NO_FATAL_FAILURE(EffectHelper::writeToFmq(statusMQ, inputMQ, buffer)); + EXPECT_NO_FATAL_FAILURE( + EffectHelper::readFromFmq(statusMQ, 1, outputMQ, buffer.size(), buffer)); + + // set a new common parameter with different IO frameCount, reopen + Parameter::Id id = Parameter::Id::make(Parameter::common); + common.input.frameCount += 4; + common.output.frameCount += 4; + ASSERT_NO_FATAL_FAILURE(setAndGetParameter(id, Parameter::make(common))); + ASSERT_TRUE(statusMQ->isValid()); + expectDataMqUpdateEventFlag(statusMQ); + EXPECT_IS_OK(mEffect->reopen(&ret)); + inputMQ = std::make_unique(ret.inputDataMQ); + outputMQ = std::make_unique(ret.outputDataMQ); + ASSERT_TRUE(statusMQ->isValid()); + ASSERT_TRUE(inputMQ->isValid()); + ASSERT_TRUE(outputMQ->isValid()); + + // verify data consume again + EXPECT_NO_FATAL_FAILURE(EffectHelper::allocateInputData(common, inputMQ, buffer)); + EXPECT_NO_FATAL_FAILURE(EffectHelper::writeToFmq(statusMQ, inputMQ, buffer)); + EXPECT_NO_FATAL_FAILURE( + EffectHelper::readFromFmq(statusMQ, 1, outputMQ, buffer.size(), buffer)); + + ASSERT_NO_FATAL_FAILURE(command(mEffect, CommandId::STOP)); + ASSERT_NO_FATAL_FAILURE(expectState(mEffect, State::IDLE)); + EXPECT_NO_FATAL_FAILURE(EffectHelper::readFromFmq(statusMQ, 0, outputMQ, 0, buffer)); + + ASSERT_NO_FATAL_FAILURE(close(mEffect)); + ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); +} + // Send data to IDLE effects and expect it to be consumed after effect start. // Effects exposing bypass flags or operating in offload mode will be skipped. TEST_P(AudioEffectDataPathTest, SendDataAtIdleAndConsumeDataInProcessing) { -- GitLab From 0e8347e131070e7e975859a6a85f8223fc95e57e Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Fri, 12 Jan 2024 17:45:58 +0000 Subject: [PATCH 183/418] Rename compatibility_matrix.9.xml to compatibility_matrix.202404.xml The target compatiblility matrix level is now 202404 instead of 9. Test: m Bug: 314845349 Change-Id: I6661486039c0ec3ba4093f1afe11b78a690a96d8 --- compatibility_matrices/Android.bp | 6 +++--- compatibility_matrices/Android.mk | 2 +- ...ibility_matrix.9.xml => compatibility_matrix.202404.xml} | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) rename compatibility_matrices/{compatibility_matrix.9.xml => compatibility_matrix.202404.xml} (99%) diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp index 9bee3b9de8..eefca3929d 100644 --- a/compatibility_matrices/Android.bp +++ b/compatibility_matrices/Android.bp @@ -84,10 +84,10 @@ vintf_compatibility_matrix { } vintf_compatibility_matrix { - name: "framework_compatibility_matrix.9.xml", - stem: "compatibility_matrix.9.xml", + name: "framework_compatibility_matrix.202404.xml", + stem: "compatibility_matrix.202404.xml", srcs: [ - "compatibility_matrix.9.xml", + "compatibility_matrix.202404.xml", ], kernel_configs: [ "kernel_config_v_6.1", diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index c2ffb8413b..72ead58216 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -112,7 +112,7 @@ my_system_matrix_deps := \ # interfaces (in the `next` release configuration). ifeq ($(RELEASE_AIDL_USE_UNFROZEN),true) my_system_matrix_deps += \ - framework_compatibility_matrix.9.xml + framework_compatibility_matrix.202404.xml endif my_framework_matrix_deps += \ diff --git a/compatibility_matrices/compatibility_matrix.9.xml b/compatibility_matrices/compatibility_matrix.202404.xml similarity index 99% rename from compatibility_matrices/compatibility_matrix.9.xml rename to compatibility_matrices/compatibility_matrix.202404.xml index a7f0845ede..4498f901f6 100644 --- a/compatibility_matrices/compatibility_matrix.9.xml +++ b/compatibility_matrices/compatibility_matrix.202404.xml @@ -1,4 +1,4 @@ - + android.hardware.audio.core 1-2 -- GitLab From b2dab17b1ed9cbb46ef351cfaa0cd8d6ed5f3ef9 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Fri, 12 Jan 2024 10:38:03 -0800 Subject: [PATCH 184/418] audio: Skip AudioModuleRemoteSubmixTest on Android U This test was developed after Android U was cut, and it assumes the new way of encoding of the remote submix device type. Bug: 300181540 Test: run `atest VtsHalAudioCoreTargetTest` on UDC GSI Change-Id: If53f92a55734e18a2acce6c790f9e5e259246684 --- audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index f91795bc13..7373073cff 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -4583,8 +4583,7 @@ GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(AudioModulePatch); static std::vector getRemoteSubmixModuleInstance() { auto instances = android::getAidlHalInstanceNames(IModule::descriptor); for (auto instance : instances) { - if (instance.find("r_submix") != std::string::npos) - return (std::vector{instance}); + if (instance.ends_with("/r_submix")) return (std::vector{instance}); } return {}; } @@ -4672,6 +4671,9 @@ class AudioModuleRemoteSubmix : public AudioCoreModule { // Turn off "debug" which enables connections simulation. Since devices of the remote // submix module are virtual, there is no need for simulation. ASSERT_NO_FATAL_FAILURE(SetUpImpl(GetParam(), false /*setUpDebug*/)); + if (int32_t version; module->getInterfaceVersion(&version).isOk() && version < 2) { + GTEST_SKIP() << "V1 uses a deprecated remote submix device type encoding"; + } ASSERT_NO_FATAL_FAILURE(SetUpModuleConfig()); } }; -- GitLab From 86f31e76b01d5937e17aed362b3cb8b9a3dce36e Mon Sep 17 00:00:00 2001 From: "V,Anilkumar" Date: Tue, 5 Jul 2022 23:39:38 +0530 Subject: [PATCH 185/418] Don't mark SAT/DT as failures If SAT/DT is not supported, should be marked as ignored but they are marked as failures. If no support for SAT/DT the implementation returns INVALID_ARGUMENTS and test is calling the printSkipped function. Instead of calling printSkipped, if GTEST_SKIP() called unsupported TC results are parsed properly and test cases will move to ignored category Bug: 191229970 Test: VtsHalBroadcastradioV1_0TargetTest Signed-off-by: V,Anilkumar Change-Id: I4ed7828757a6cc8b83bae989e11289da1a3e814f --- .../VtsHalBroadcastradioV1_0TargetTest.cpp | 9 +++---- .../VtsHalBroadcastradioV1_1TargetTest.cpp | 26 +++---------------- 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/broadcastradio/1.0/vts/functional/VtsHalBroadcastradioV1_0TargetTest.cpp b/broadcastradio/1.0/vts/functional/VtsHalBroadcastradioV1_0TargetTest.cpp index cac3dd0eae..dec1f1781d 100644 --- a/broadcastradio/1.0/vts/functional/VtsHalBroadcastradioV1_0TargetTest.cpp +++ b/broadcastradio/1.0/vts/functional/VtsHalBroadcastradioV1_0TargetTest.cpp @@ -52,10 +52,9 @@ using ::android::hardware::broadcastradio::V1_0::Properties; using ::android::hardware::broadcastradio::V1_0::Result; using ::android::hardware::broadcastradio::V1_0::vts::RadioClassFromString; -#define RETURN_IF_SKIPPED \ - if (skipped) { \ - std::cout << "[ SKIPPED ] This device class is not supported. " << std::endl; \ - return; \ +#define RETURN_IF_SKIPPED \ + if (skipped) { \ + GTEST_SKIP() << "This device class is not supported."; \ } // The main test class for Broadcast Radio HIDL HAL. @@ -734,4 +733,4 @@ INSTANTIATE_TEST_CASE_P( testing::Combine(testing::ValuesIn(android::hardware::getAllHalInstanceNames( IBroadcastRadioFactory::descriptor)), ::testing::Values("AM_FM", "SAT", "DT")), - android::hardware::PrintInstanceTupleNameToString<>); \ No newline at end of file + android::hardware::PrintInstanceTupleNameToString<>); diff --git a/broadcastradio/1.1/vts/functional/VtsHalBroadcastradioV1_1TargetTest.cpp b/broadcastradio/1.1/vts/functional/VtsHalBroadcastradioV1_1TargetTest.cpp index caf6cbd982..b54e9d8d3b 100644 --- a/broadcastradio/1.1/vts/functional/VtsHalBroadcastradioV1_1TargetTest.cpp +++ b/broadcastradio/1.1/vts/functional/VtsHalBroadcastradioV1_1TargetTest.cpp @@ -73,10 +73,6 @@ static constexpr ProgramType kStandardProgramTypes[] = { ProgramType::AM, ProgramType::FM, ProgramType::AM_HD, ProgramType::FM_HD, ProgramType::DAB, ProgramType::DRMO, ProgramType::SXM}; -static void printSkipped(std::string msg) { - std::cout << "[ SKIPPED ] " << msg << std::endl; -} - struct TunerCallbackMock : public ITunerCallback { TunerCallbackMock() { EXPECT_CALL(*this, hardwareFailure()).Times(0); } @@ -106,7 +102,6 @@ class BroadcastRadioHalTest bool getProgramList(std::function& list)> cb); Class radioClass; - bool skipped = false; sp mRadioModule; sp mTuner; @@ -137,9 +132,7 @@ void BroadcastRadioHalTest::SetUp() { ASSERT_TRUE(onConnect.waitForCall(kConnectModuleTimeout)); if (connectResult == Result::INVALID_ARGUMENTS) { - printSkipped("This device class is not supported."); - skipped = true; - return; + GTEST_SKIP() << "This device class is not supported."; } ASSERT_EQ(connectResult, Result::OK); ASSERT_NE(nullptr, mRadioModule.get()); @@ -285,8 +278,6 @@ bool BroadcastRadioHalTest::getProgramList( * might fail. */ TEST_P(BroadcastRadioHalTest, OpenTunerTwice) { - if (skipped) return; - ASSERT_TRUE(openTuner()); auto secondTuner = mTuner; @@ -306,7 +297,6 @@ TEST_P(BroadcastRadioHalTest, OpenTunerTwice) { * - getProgramInformation_1_1 returns the same selector as returned in tuneComplete_1_1 call. */ TEST_P(BroadcastRadioHalTest, TuneFromProgramList) { - if (skipped) return; ASSERT_TRUE(openTuner()); ProgramInfo firstProgram; @@ -320,8 +310,7 @@ TEST_P(BroadcastRadioHalTest, TuneFromProgramList) { } while (nextBand()); if (HasFailure()) return; if (!foundAny) { - printSkipped("Program list is empty."); - return; + GTEST_SKIP() << "Program list is empty."; } ProgramInfo infoCb; @@ -356,7 +345,6 @@ TEST_P(BroadcastRadioHalTest, TuneFromProgramList) { * identifier for program types other than VENDORn. */ TEST_P(BroadcastRadioHalTest, TuneFailsForPrimaryVendor) { - if (skipped) return; ASSERT_TRUE(openTuner()); for (auto ptype : kStandardProgramTypes) { @@ -377,7 +365,6 @@ TEST_P(BroadcastRadioHalTest, TuneFailsForPrimaryVendor) { * - tuneByProgramSelector fails with INVALID_ARGUMENT when unknown program type is passed. */ TEST_P(BroadcastRadioHalTest, TuneFailsForUnknownProgram) { - if (skipped) return; ASSERT_TRUE(openTuner()); // Program type is 1-based, so 0 will be always invalid. @@ -393,7 +380,6 @@ TEST_P(BroadcastRadioHalTest, TuneFailsForUnknownProgram) { * - cancelAnnouncement succeeds either when there is an announcement or there is none. */ TEST_P(BroadcastRadioHalTest, CancelAnnouncement) { - if (skipped) return; ASSERT_TRUE(openTuner()); auto hidlResult = mTuner->cancelAnnouncement(); @@ -407,8 +393,6 @@ TEST_P(BroadcastRadioHalTest, CancelAnnouncement) { * - getImage call handles argument 0 gracefully. */ TEST_P(BroadcastRadioHalTest, GetNoImage) { - if (skipped) return; - size_t len = 0; auto hidlResult = mRadioModule->getImage(0, [&](hidl_vec rawImage) { len = rawImage.size(); }); @@ -425,7 +409,6 @@ TEST_P(BroadcastRadioHalTest, GetNoImage) { * - images are available for getImage call. */ TEST_P(BroadcastRadioHalTest, OobImagesOnly) { - if (skipped) return; ASSERT_TRUE(openTuner()); std::vector imageIds; @@ -446,8 +429,7 @@ TEST_P(BroadcastRadioHalTest, OobImagesOnly) { } while (nextBand()); if (imageIds.size() == 0) { - printSkipped("No images found"); - return; + GTEST_SKIP() << "No images found"; } for (auto id : imageIds) { @@ -469,7 +451,6 @@ TEST_P(BroadcastRadioHalTest, OobImagesOnly) { * - setAnalogForced results either with INVALID_STATE, or isAnalogForced replying the same. */ TEST_P(BroadcastRadioHalTest, AnalogForcedSwitch) { - if (skipped) return; ASSERT_TRUE(openTuner()); bool forced; @@ -584,7 +565,6 @@ static void verifyIdentifier(const ProgramIdentifier& id) { * - values of ProgramIdentifier match their definitions at IdentifierType. */ TEST_P(BroadcastRadioHalTest, VerifyIdentifiersFormat) { - if (skipped) return; ASSERT_TRUE(openTuner()); do { -- GitLab From 1319e986ab74f665a3b7a03d0620f3cec14e177e Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Thu, 11 Jan 2024 00:39:13 +0000 Subject: [PATCH 186/418] Effect VTS: update VtsHalDownmixTargetTest for data validation For downmix, the output buffer size can be diff with input Bug: 318926783 Bug: 317946442 Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit Change-Id: I0dc0009e1779b842a4f3cdcc047d225310a304f9 Merged-In: I0dc0009e1779b842a4f3cdcc047d225310a304f9 --- audio/aidl/vts/VtsHalDownmixTargetTest.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp index b82bde114b..360bf2671f 100644 --- a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp +++ b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp @@ -138,7 +138,6 @@ class DownmixEffectHelper : public EffectHelper { void setDataTestParams(int32_t layoutType) { mInputBuffer.resize(kBufferSize); - mOutputBuffer.resize(kBufferSize); // Get the number of channels used mInputChannelCount = getChannelCount( @@ -146,6 +145,7 @@ class DownmixEffectHelper : public EffectHelper { // In case of downmix, output is always configured to stereo layout. mOutputBufferSize = (mInputBuffer.size() / mInputChannelCount) * kOutputChannelCount; + mOutputBuffer.resize(mOutputBufferSize); } // Generate mInputBuffer values between -kMaxDownmixSample to kMaxDownmixSample @@ -262,13 +262,13 @@ class DownmixFoldDataTest : public ::testing::TestWithParam Date: Fri, 12 Jan 2024 13:48:21 -0800 Subject: [PATCH 187/418] audio: Fix handling of a thread exit command with a bad cookie In case when the command was sent by the HAL itself (from another thread), the worker thread must not post a reply. The only case when a reply needs to be posted is in the case when the command was sent from a VTS test. This case is identified by the fact that the cookie has value '0'. Bug: 300181540 Test: atest VtsHalAudioCoreTargetTest Change-Id: Ifeb0722b5cf7346a694c5a938f6b324f5fa825f1 --- audio/aidl/default/Stream.cpp | 30 +++++++++++-------- audio/aidl/default/include/core-impl/Stream.h | 2 +- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/audio/aidl/default/Stream.cpp b/audio/aidl/default/Stream.cpp index a805b872cd..cf0870e2d4 100644 --- a/audio/aidl/default/Stream.cpp +++ b/audio/aidl/default/Stream.cpp @@ -180,17 +180,20 @@ StreamInWorkerLogic::Status StreamInWorkerLogic::cycle() { StreamDescriptor::Reply reply{}; reply.status = STATUS_BAD_VALUE; switch (command.getTag()) { - case Tag::halReservedExit: - if (const int32_t cookie = command.get(); - cookie == (mContext->getInternalCommandCookie() ^ getTid())) { + case Tag::halReservedExit: { + const int32_t cookie = command.get(); + if (cookie == (mContext->getInternalCommandCookie() ^ getTid())) { mDriver->shutdown(); setClosed(); - // This is an internal command, no need to reply. - return Status::EXIT; } else { LOG(WARNING) << __func__ << ": EXIT command has a bad cookie: " << cookie; } - break; + if (cookie != 0) { // This is an internal command, no need to reply. + return Status::EXIT; + } else { + break; + } + } case Tag::getStatus: populateReply(&reply, mIsConnected); break; @@ -400,17 +403,20 @@ StreamOutWorkerLogic::Status StreamOutWorkerLogic::cycle() { reply.status = STATUS_BAD_VALUE; using Tag = StreamDescriptor::Command::Tag; switch (command.getTag()) { - case Tag::halReservedExit: - if (const int32_t cookie = command.get(); - cookie == (mContext->getInternalCommandCookie() ^ getTid())) { + case Tag::halReservedExit: { + const int32_t cookie = command.get(); + if (cookie == (mContext->getInternalCommandCookie() ^ getTid())) { mDriver->shutdown(); setClosed(); - // This is an internal command, no need to reply. - return Status::EXIT; } else { LOG(WARNING) << __func__ << ": EXIT command has a bad cookie: " << cookie; } - break; + if (cookie != 0) { // This is an internal command, no need to reply. + return Status::EXIT; + } else { + break; + } + } case Tag::getStatus: populateReply(&reply, mIsConnected); break; diff --git a/audio/aidl/default/include/core-impl/Stream.h b/audio/aidl/default/include/core-impl/Stream.h index aa9fb19a5b..21e63f9fef 100644 --- a/audio/aidl/default/include/core-impl/Stream.h +++ b/audio/aidl/default/include/core-impl/Stream.h @@ -90,7 +90,7 @@ class StreamContext { std::weak_ptr streamDataProcessor, DebugParameters debugParameters) : mCommandMQ(std::move(commandMQ)), - mInternalCommandCookie(std::rand()), + mInternalCommandCookie(std::rand() | 1 /* make sure it's not 0 */), mReplyMQ(std::move(replyMQ)), mFormat(format), mChannelLayout(channelLayout), -- GitLab From 67e83a3c06e02161b06e1aa04bce9c605402c1d6 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Wed, 10 Jan 2024 13:40:28 -0800 Subject: [PATCH 188/418] Add format check utils method for bcradio metadata Added format check method for AIDL broadcast radio HAL metadata in AIDL utils library. Also corrected local variable name in getMetadataString method. Bug: 318868350 Test: atest broadcastradio_utils_aidl_test Change-Id: I8220e2845143931e99b4e4da0e07c9cae585588e --- .../include/broadcastradio-utils-aidl/Utils.h | 2 + .../broadcastradio-utils-aidl/UtilsV2.h | 1 + broadcastradio/common/utilsaidl/src/Utils.cpp | 43 ++++++++++- .../common/utilsaidl/src/UtilsV2.cpp | 28 ++++++- .../test/BroadcastRadioUtilsTest.cpp | 67 +++++++++++++++++ .../test/BroadcastRadioUtilsV2Test.cpp | 75 +++++++++++++++++++ 6 files changed, 212 insertions(+), 4 deletions(-) create mode 100644 broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsV2Test.cpp diff --git a/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/Utils.h b/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/Utils.h index 3ced685654..25c96d075f 100644 --- a/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/Utils.h +++ b/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/Utils.h @@ -143,6 +143,8 @@ ProgramSelector makeSelectorHd(uint64_t stationId, uint64_t subChannel, uint64_t bool satisfies(const ProgramFilter& filter, const ProgramSelector& sel); +bool isValidMetadata(const Metadata& metadata); + struct ProgramSelectorComparator { bool operator()(const ProgramSelector& lhs, const ProgramSelector& rhs) const; }; diff --git a/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/UtilsV2.h b/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/UtilsV2.h index e411aa446d..734758ddd7 100644 --- a/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/UtilsV2.h +++ b/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/UtilsV2.h @@ -28,6 +28,7 @@ namespace utils { bool isValidV2(const ProgramIdentifier& id); bool isValidV2(const ProgramSelector& sel); +bool isValidMetadataV2(const Metadata& metadata); std::optional getMetadataStringV2(const ProgramInfo& info, const Metadata::Tag& tag); } // namespace utils diff --git a/broadcastradio/common/utilsaidl/src/Utils.cpp b/broadcastradio/common/utilsaidl/src/Utils.cpp index b6474424b3..ddc5b8db59 100644 --- a/broadcastradio/common/utilsaidl/src/Utils.cpp +++ b/broadcastradio/common/utilsaidl/src/Utils.cpp @@ -442,9 +442,9 @@ void updateProgramList(const ProgramListChunk& chunk, ProgramInfoSet* list) { } std::optional getMetadataString(const ProgramInfo& info, const Metadata::Tag& tag) { - auto isRdsPs = [tag](const Metadata& item) { return item.getTag() == tag; }; + auto hasMetadataType = [tag](const Metadata& item) { return item.getTag() == tag; }; - auto it = std::find_if(info.metadata.begin(), info.metadata.end(), isRdsPs); + auto it = std::find_if(info.metadata.begin(), info.metadata.end(), hasMetadataType); if (it == info.metadata.end()) { return std::nullopt; } @@ -579,6 +579,45 @@ uint32_t getAmFmFrequency(const ProgramSelector& sel) { return getHdFrequency(sel); } +bool isValidMetadata(const Metadata& metadata) { + bool valid = true; + + auto expect = [&valid](bool condition, const std::string& message) { + if (!condition) { + valid = false; + LOG(ERROR) << "metadata not valid, expected " << message; + } + }; + + switch (metadata.getTag()) { + case Metadata::rdsPty: + expect(metadata.get() >= 0, "RDS PTY >= 0"); + expect(metadata.get() <= std::numeric_limits::max(), + "8bit RDS PTY"); + break; + case Metadata::rbdsPty: + expect(metadata.get() >= 0, "RBDS PTY >= 0"); + expect(metadata.get() <= std::numeric_limits::max(), + "8bit RBDS PTY"); + break; + case Metadata::dabEnsembleNameShort: + expect(metadata.get().size() <= 8, + "Dab ensemble name abbreviated length <= 8"); + break; + case Metadata::dabServiceNameShort: + expect(metadata.get().size() <= 8, + "Dab component name abbreviated length <= 8"); + break; + case Metadata::dabComponentNameShort: + expect(metadata.get().size() <= 8, + "Dab component name abbreviated length <= 8"); + break; + default: + break; + } + return valid; +} + bool parseArgInt(const std::string& s, int* out) { return ::android::base::ParseInt(s, out); } diff --git a/broadcastradio/common/utilsaidl/src/UtilsV2.cpp b/broadcastradio/common/utilsaidl/src/UtilsV2.cpp index ef739df117..6c75759f07 100644 --- a/broadcastradio/common/utilsaidl/src/UtilsV2.cpp +++ b/broadcastradio/common/utilsaidl/src/UtilsV2.cpp @@ -17,6 +17,7 @@ #define LOG_TAG "BcRadioAidlDef.utilsV2" #include "broadcastradio-utils-aidl/UtilsV2.h" +#include "broadcastradio-utils-aidl/Utils.h" #include #include @@ -137,10 +138,33 @@ bool isValidV2(const ProgramSelector& sel) { return isValidV2(sel.primaryId); } +bool isValidMetadataV2(const Metadata& metadata) { + if (!isValidMetadata(metadata)) { + return false; + } + + if (metadata.getTag() == Metadata::hdStationNameShort) { + if (metadata.get().size() > 12) { + LOG(ERROR) << "metadata not valid, expected HD short name length <= 12"; + return false; + } + } else if (metadata.getTag() == Metadata::hdSubChannelsAvailable) { + if (metadata.get() < 0) { + LOG(ERROR) << "metadata not valid, expected HD subchannels available >= 0"; + return false; + } else if (metadata.get() > + std::numeric_limits::max()) { + LOG(ERROR) << "metadata not valid, expected 8bit HD subchannels available"; + return false; + } + } + return true; +} + std::optional getMetadataStringV2(const ProgramInfo& info, const Metadata::Tag& tag) { - auto isRdsPs = [tag](const Metadata& item) { return item.getTag() == tag; }; + auto hasMetadataType = [tag](const Metadata& item) { return item.getTag() == tag; }; - auto it = std::find_if(info.metadata.begin(), info.metadata.end(), isRdsPs); + auto it = std::find_if(info.metadata.begin(), info.metadata.end(), hasMetadataType); if (it == info.metadata.end()) { return std::nullopt; } diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp index b2dc94ac77..b630a67afd 100644 --- a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp @@ -32,8 +32,75 @@ constexpr uint64_t kDabFrequencyKhz = 225648u; constexpr uint64_t kHdStationId = 0xA0000001u; constexpr uint64_t kHdSubChannel = 1u; constexpr uint64_t kHdFrequency = 97700u; + +struct IsValidMetadataTestCase { + std::string name; + Metadata metadata; + bool valid; +}; + +std::vector getIsValidMetadataTestCases() { + return std::vector({ + IsValidMetadataTestCase{.name = "valid_rds_pty", + .metadata = Metadata::make(1), + .valid = true}, + IsValidMetadataTestCase{.name = "negative_rds_pty", + .metadata = Metadata::make(-1), + .valid = false}, + IsValidMetadataTestCase{.name = "large_rds_pty", + .metadata = Metadata::make(256), + .valid = false}, + IsValidMetadataTestCase{.name = "valid_rbds_pty", + .metadata = Metadata::make(1), + .valid = true}, + IsValidMetadataTestCase{.name = "negative_rbds_pty", + .metadata = Metadata::make(-1), + .valid = false}, + IsValidMetadataTestCase{.name = "large_rbds_pty", + .metadata = Metadata::make(256), + .valid = false}, + IsValidMetadataTestCase{ + .name = "valid_dab_ensemble_name_short", + .metadata = Metadata::make("name"), + .valid = true}, + IsValidMetadataTestCase{ + .name = "too_long_dab_ensemble_name_short", + .metadata = Metadata::make("name_long"), + .valid = false}, + IsValidMetadataTestCase{ + .name = "valid_dab_service_name_short", + .metadata = Metadata::make("name"), + .valid = true}, + IsValidMetadataTestCase{ + .name = "too_long_dab_service_name_short", + .metadata = Metadata::make("name_long"), + .valid = false}, + IsValidMetadataTestCase{ + .name = "valid_dab_component_name_short", + .metadata = Metadata::make("name"), + .valid = true}, + IsValidMetadataTestCase{ + .name = "too_long_dab_component_name_short", + .metadata = Metadata::make("name_long"), + .valid = false}, + }); +} } // namespace +class IsValidMetadataTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(IsValidMetadataTests, IsValidMetadataTest, + testing::ValuesIn(getIsValidMetadataTestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(IsValidMetadataTest, IsValidMetadata) { + IsValidMetadataTestCase testParam = GetParam(); + + ASSERT_EQ(utils::isValidMetadata(testParam.metadata), testParam.valid); +} + TEST(BroadcastRadioUtilsTest, HasIdWithPrimaryIdType) { ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsV2Test.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsV2Test.cpp new file mode 100644 index 0000000000..cf9f9e965b --- /dev/null +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsV2Test.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +namespace aidl::android::hardware::broadcastradio { + +namespace { +struct IsValidMetadataV2TestCase { + std::string name; + Metadata metadata; + bool valid; +}; + +std::vector getIsValidMetadataV2TestCases() { + return std::vector({ + IsValidMetadataV2TestCase{.name = "valid_rds_pty", + .metadata = Metadata::make(1), + .valid = true}, + IsValidMetadataV2TestCase{.name = "negative_rds_pty", + .metadata = Metadata::make(-1), + .valid = false}, + IsValidMetadataV2TestCase{ + .name = "valid_hd_station_name_short", + .metadata = Metadata::make("name_short"), + .valid = true}, + IsValidMetadataV2TestCase{ + .name = "too_long_hd_station_name_short", + .metadata = Metadata::make("name_too_long"), + .valid = false}, + IsValidMetadataV2TestCase{ + .name = "valid_hd_subchannel_available", + .metadata = Metadata::make(1), + .valid = true}, + IsValidMetadataV2TestCase{ + .name = "negative_subchannel_available", + .metadata = Metadata::make(-1), + .valid = false}, + IsValidMetadataV2TestCase{ + .name = "large_subchannel_available", + .metadata = Metadata::make(256), + .valid = false}, + }); +} +} // namespace + +class IsValidMetadataV2Test : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(IsValidMetadataV2Tests, IsValidMetadataV2Test, + testing::ValuesIn(getIsValidMetadataV2TestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(IsValidMetadataV2Test, IsValidMetadataV2) { + IsValidMetadataV2TestCase testParam = GetParam(); + + ASSERT_EQ(utils::isValidMetadataV2(testParam.metadata), testParam.valid); +} + +} // namespace aidl::android::hardware::broadcastradio -- GitLab From 2f1dd4cda8cca1e5e0c64c5f1fe62fe6853360f8 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Wed, 10 Jan 2024 15:13:43 -0800 Subject: [PATCH 189/418] Add metadata format check in bcradio VTS Added metadata format check in AIDL broadcast radio HAL VTS. Bug: 318868350 Test: atest VtsHalBroadcastradioAidlTargetTest Change-Id: I47cdb178e76173941682fd8594fe9da13d661a1b --- .../vts/src/VtsHalBroadcastradioAidlTargetTest.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp b/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp index 754b05b93d..9633ebb5ae 100644 --- a/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp +++ b/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp @@ -250,6 +250,16 @@ ScopedAStatus TunerCallbackImpl::onCurrentProgramInfoChanged(const ProgramInfo& } } + for (const auto& metadataItem : info.metadata) { + bool validMetadata = false; + if (mCallbackAidlVersion == kAidlVersion1) { + validMetadata = bcutils::isValidMetadata(metadataItem); + } else { + validMetadata = bcutils::isValidMetadataV2(metadataItem); + } + EXPECT_TRUE(validMetadata) << "Invalid metadata " << metadataItem.toString().c_str(); + } + { std::lock_guard lk(mLock); mCurrentProgramInfo = info; -- GitLab From 71ef1c155995c469ba661d3a55d864c0d2e74120 Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Thu, 11 Jan 2024 21:26:07 +0000 Subject: [PATCH 190/418] media.bufferpool2: support AHardwareBuffer based buffer Change-Id: I43102797b92d4782d2fc620ea3c9490f5187b90c --- media/bufferpool/aidl/Android.bp | 10 ++++++++-- .../android/hardware/media/bufferpool2/Buffer.aidl | 3 ++- .../android/hardware/media/bufferpool2/Buffer.aidl | 7 ++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/media/bufferpool/aidl/Android.bp b/media/bufferpool/aidl/Android.bp index 8e013e0535..9dcc90e9c0 100644 --- a/media/bufferpool/aidl/Android.bp +++ b/media/bufferpool/aidl/Android.bp @@ -26,6 +26,9 @@ aidl_interface { vendor_available: true, double_loadable: true, srcs: ["android/hardware/media/bufferpool2/*.aidl"], + headers: [ + "HardwareBuffer_aidl", + ], imports: [ "android.hardware.common-V2", "android.hardware.common.fmq-V1", @@ -44,10 +47,13 @@ aidl_interface { "//apex_available:platform", "com.android.media.swcodec", ], + additional_shared_libraries: [ + "libnativewindow", + ], min_sdk_version: "29", }, rust: { - enabled: true, + enabled: false, }, }, versions_with_info: [ @@ -59,6 +65,6 @@ aidl_interface { ], }, ], - frozen: true, + frozen: false, } diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/Buffer.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/Buffer.aidl index 4ea0bba7fc..85a78ad6ee 100644 --- a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/Buffer.aidl +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/Buffer.aidl @@ -35,5 +35,6 @@ package android.hardware.media.bufferpool2; @VintfStability parcelable Buffer { int id; - android.hardware.common.NativeHandle buffer; + @nullable android.hardware.common.NativeHandle buffer; + @nullable android.hardware.HardwareBuffer hwbBuffer; } diff --git a/media/bufferpool/aidl/android/hardware/media/bufferpool2/Buffer.aidl b/media/bufferpool/aidl/android/hardware/media/bufferpool2/Buffer.aidl index 976f674878..79b3f23ad2 100644 --- a/media/bufferpool/aidl/android/hardware/media/bufferpool2/Buffer.aidl +++ b/media/bufferpool/aidl/android/hardware/media/bufferpool2/Buffer.aidl @@ -17,6 +17,7 @@ package android.hardware.media.bufferpool2; import android.hardware.common.NativeHandle; +import android.hardware.HardwareBuffer; /** * Generic buffer for fast recycling for media/stagefright. @@ -26,10 +27,14 @@ import android.hardware.common.NativeHandle; * by a buffer pool, and are recycled to the buffer pool when they are * no longer referenced by the clients. * + * Initially all buffers in media HAL should be NativeHandle(actually native_handle_t). + * HardwareBuffer(actually AHardwareBuffer) for GraphicBuffer is added from V2. + * * E.g. ion or gralloc buffer */ @VintfStability parcelable Buffer { int id; - NativeHandle buffer; + @nullable NativeHandle buffer; + @nullable HardwareBuffer hwbBuffer; } -- GitLab From b0d52ce9546a9d42da12bf24a6deecb1b5fa4c79 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Fri, 12 Jan 2024 16:11:25 -0800 Subject: [PATCH 191/418] compatibility matrices: drop optional=true. (4~8) This is the default now. Test: TH Bug: 247575800 Change-Id: Ibaf315f34285c42341cd4c04adc7c44b6f34ab7f --- .../compatibility_matrix.4.xml | 122 +++++------ .../compatibility_matrix.5.xml | 134 ++++++------ .../compatibility_matrix.6.xml | 158 +++++++-------- .../compatibility_matrix.7.xml | 190 +++++++++--------- .../compatibility_matrix.8.xml | 172 ++++++++-------- 5 files changed, 388 insertions(+), 388 deletions(-) diff --git a/compatibility_matrices/compatibility_matrix.4.xml b/compatibility_matrices/compatibility_matrix.4.xml index bb7637ae2b..952f53d19a 100644 --- a/compatibility_matrices/compatibility_matrix.4.xml +++ b/compatibility_matrices/compatibility_matrix.4.xml @@ -1,5 +1,5 @@ - + android.hardware.atrace 1.0 @@ -7,7 +7,7 @@ default - + android.hardware.audio 5.0 @@ -15,7 +15,7 @@ default - + android.hardware.audio.effect 5.0 @@ -23,7 +23,7 @@ default - + android.hardware.authsecret 1.0 @@ -31,7 +31,7 @@ default - + android.hardware.automotive.audiocontrol 1.0 @@ -39,7 +39,7 @@ default - + android.hardware.automotive.evs 1.0 @@ -47,7 +47,7 @@ default - + android.hardware.automotive.vehicle 2.0 @@ -55,7 +55,7 @@ default - + android.hardware.biometrics.face 1.0 @@ -63,7 +63,7 @@ default - + android.hardware.biometrics.fingerprint 2.1 @@ -71,7 +71,7 @@ default - + android.hardware.bluetooth 1.0 @@ -79,7 +79,7 @@ default - + android.hardware.bluetooth.audio 2.0 @@ -87,7 +87,7 @@ default - + android.hardware.boot 1.0 @@ -95,7 +95,7 @@ default - + android.hardware.broadcastradio 1.0-1 @@ -103,7 +103,7 @@ default - + android.hardware.broadcastradio 2.0 @@ -111,7 +111,7 @@ .* - + android.hardware.camera.provider 2.4-5 @@ -119,7 +119,7 @@ [^/]+/[0-9]+ - + android.hardware.cas 1.1 @@ -127,7 +127,7 @@ default - + android.hardware.configstore 1.1 @@ -135,7 +135,7 @@ default - + android.hardware.confirmationui 1.0 @@ -143,7 +143,7 @@ default - + android.hardware.contexthub 1.0 @@ -151,7 +151,7 @@ default - + android.hardware.drm 1.0-2 @@ -163,7 +163,7 @@ .* - + android.hardware.dumpstate 1.0 @@ -171,7 +171,7 @@ default - + android.hardware.gatekeeper 1.0 @@ -179,7 +179,7 @@ default - + android.hardware.gnss 2.0 @@ -190,7 +190,7 @@ - + android.hardware.graphics.allocator 2.0 3.0 @@ -199,7 +199,7 @@ default - + android.hardware.graphics.composer 2.1-3 @@ -207,7 +207,7 @@ default - + android.hardware.graphics.mapper 2.1 3.0 @@ -219,7 +219,7 @@ - + android.hardware.health 2.0 @@ -227,7 +227,7 @@ default - + android.hardware.health.storage 1.0 @@ -235,7 +235,7 @@ default - + android.hardware.ir 1.0 @@ -243,7 +243,7 @@ default - + android.hardware.input.classifier 1.0 @@ -251,7 +251,7 @@ default - + android.hardware.keymaster 3.0 4.0 @@ -260,7 +260,7 @@ default - + android.hardware.keymaster 4.0 @@ -268,7 +268,7 @@ strongbox - + android.hardware.light 2.0 @@ -276,7 +276,7 @@ default - + android.hardware.media.c2 1.0 @@ -291,7 +291,7 @@ software - + android.hardware.media.omx 1.0 @@ -303,7 +303,7 @@ default - + android.hardware.memtrack 1.0 @@ -311,7 +311,7 @@ default - + android.hardware.neuralnetworks 1.0-2 @@ -319,7 +319,7 @@ .* - + android.hardware.nfc 1.2 @@ -327,7 +327,7 @@ default - + android.hardware.oemlock 1.0 @@ -335,7 +335,7 @@ default - + android.hardware.power 1.0-3 @@ -343,7 +343,7 @@ default - + android.hardware.power.stats 1.0 @@ -351,7 +351,7 @@ default - + android.hardware.radio 1.4 @@ -361,7 +361,7 @@ slot3 - + android.hardware.radio 1.2 @@ -370,7 +370,7 @@ slot2 - + android.hardware.radio.config - + android.hardware.graphics.allocator 2.0 @@ -222,7 +222,7 @@ default - + android.hardware.graphics.composer 2.1-4 @@ -230,7 +230,7 @@ default - + android.hardware.graphics.mapper 2.1 @@ -244,7 +244,7 @@ - + android.hardware.health 2.1 @@ -252,7 +252,7 @@ default - + android.hardware.health.storage 1.0 @@ -260,7 +260,7 @@ default - + android.hardware.identity - + android.hardware.graphics.allocator 2.0 @@ -252,7 +252,7 @@ default - + android.hardware.graphics.composer 2.1-4 @@ -260,7 +260,7 @@ default - + android.hardware.graphics.mapper 2.1 @@ -274,7 +274,7 @@ - + android.hardware.health 2.1 @@ -282,7 +282,7 @@ default - + android.hardware.health.storage 1 @@ -290,7 +290,7 @@ default - + android.hardware.identity 1-3 @@ -298,7 +298,7 @@ default - + android.hardware.oemlock 1 @@ -306,7 +306,7 @@ default - + android.hardware.ir 1.0 @@ -314,7 +314,7 @@ default - + android.hardware.input.classifier 1.0 @@ -322,7 +322,7 @@ default - + android.hardware.keymaster 3.0 4.0-1 @@ -331,7 +331,7 @@ default - + android.hardware.keymaster 4.0-1 @@ -339,7 +339,7 @@ strongbox - + android.hardware.security.keymint 1 @@ -348,14 +348,14 @@ strongbox - + android.hardware.security.keymint IRemotelyProvisionedComponent default - + android.hardware.light 1 @@ -363,7 +363,7 @@ default - + android.hardware.media.c2 1.0-2 @@ -373,7 +373,7 @@ vendor[0-9]*_software - + android.hardware.media.c2 1.0 @@ -382,7 +382,7 @@ software - + android.hardware.media.omx 1.0 @@ -394,7 +394,7 @@ default - + android.hardware.memtrack 1 @@ -402,7 +402,7 @@ default - + android.hardware.neuralnetworks 1.0-3 @@ -410,14 +410,14 @@ .* - + android.hardware.neuralnetworks IDevice .* - + android.hardware.nfc 1.2 @@ -425,7 +425,7 @@ default - + android.hardware.oemlock 1.0 @@ -433,7 +433,7 @@ default - + android.hardware.power 1-2 @@ -441,14 +441,14 @@ default - + android.hardware.power.stats IPowerStats default - + android.hardware.radio 1.6 @@ -458,7 +458,7 @@ slot3 - + android.hardware.radio 1.2 @@ -467,7 +467,7 @@ slot2 - + android.hardware.radio.config 2.0 @@ -274,7 +274,7 @@ default - + android.hardware.graphics.allocator 1 @@ -285,7 +285,7 @@ - + android.hardware.graphics.composer 2.1-4 @@ -293,7 +293,7 @@ default - + android.hardware.graphics.composer3 1 @@ -301,7 +301,7 @@ default - + android.hardware.graphics.mapper 2.1 @@ -312,7 +312,7 @@ default - + android.hardware.health 1 @@ -320,7 +320,7 @@ default - + android.hardware.health.storage 1 @@ -328,7 +328,7 @@ default - + android.hardware.identity 1-4 @@ -336,14 +336,14 @@ default - + android.hardware.net.nlinterceptor IInterceptor default - + android.hardware.oemlock 1 @@ -351,7 +351,7 @@ default - + android.hardware.ir 1 @@ -359,7 +359,7 @@ default - + android.hardware.input.processor 1 @@ -367,7 +367,7 @@ default - + android.hardware.keymaster 3.0 4.0-1 @@ -376,7 +376,7 @@ default - + android.hardware.keymaster 4.0-1 @@ -384,7 +384,7 @@ strongbox - + android.hardware.security.keymint 1-2 @@ -393,7 +393,7 @@ strongbox - + android.hardware.security.keymint 1-2 @@ -402,7 +402,7 @@ strongbox - + android.hardware.light 1-2 @@ -410,7 +410,7 @@ default - + android.hardware.media.c2 1.0-2 @@ -420,7 +420,7 @@ vendor[0-9]*_software - + android.hardware.media.c2 1.0 @@ -429,7 +429,7 @@ software - + android.hardware.media.omx 1.0 @@ -441,7 +441,7 @@ default - + android.hardware.memtrack 1 @@ -449,7 +449,7 @@ default - + android.hardware.neuralnetworks 1.0-3 @@ -457,7 +457,7 @@ .* - + android.hardware.neuralnetworks 1-4 @@ -465,7 +465,7 @@ .* - + android.hardware.nfc 1.2 @@ -473,14 +473,14 @@ default - + android.hardware.nfc INfc default - + android.hardware.oemlock 1.0 @@ -488,7 +488,7 @@ default - + android.hardware.power 2-3 @@ -496,14 +496,14 @@ default - + android.hardware.power.stats IPowerStats default - + android.hardware.radio.config 1 @@ -511,7 +511,7 @@ default - + android.hardware.radio.data 1 @@ -521,7 +521,7 @@ slot3 - + android.hardware.radio.messaging 1 @@ -531,7 +531,7 @@ slot3 - + android.hardware.radio.modem 1 @@ -541,7 +541,7 @@ slot3 - + android.hardware.radio.network 1 @@ -551,7 +551,7 @@ slot3 - + android.hardware.radio.sim 1 @@ -561,7 +561,7 @@ slot3 - + android.hardware.radio.voice 1 @@ -571,7 +571,7 @@ slot3 - + android.hardware.radio 1.2 @@ -580,7 +580,7 @@ slot2 - + android.hardware.renderscript 1.0 @@ -588,7 +588,7 @@ default - + android.hardware.rebootescrow 1 @@ -596,7 +596,7 @@ default - + android.hardware.secure_element 1.0-2 @@ -605,7 +605,7 @@ SIM[1-9][0-9]* - + android.hardware.security.secureclock 1 @@ -613,7 +613,7 @@ default - + android.hardware.security.sharedsecret 1 @@ -622,14 +622,14 @@ strongbox - + android.hardware.sensors ISensors default - + android.hardware.sensors 1.0 2.0-1 @@ -638,7 +638,7 @@ default - + android.hardware.soundtrigger 2.3 @@ -646,7 +646,7 @@ default - + android.hardware.soundtrigger3 1 @@ -654,7 +654,7 @@ default - + android.hardware.tetheroffload.config 1.0 @@ -662,7 +662,7 @@ default - + android.hardware.tetheroffload.control 1.1 @@ -670,7 +670,7 @@ default - + android.hardware.thermal 2.0 @@ -678,7 +678,7 @@ default - + android.hardware.tv.cec 1.0-1 @@ -686,7 +686,7 @@ default - + android.hardware.tv.input 1.0 @@ -694,7 +694,7 @@ default - + android.hardware.tv.tuner 1.0-1 @@ -702,7 +702,7 @@ default - + android.hardware.tv.tuner 1 @@ -710,7 +710,7 @@ default - + android.hardware.usb 1.0-3 @@ -718,14 +718,14 @@ default - + android.hardware.usb IUsb default - + android.hardware.usb.gadget 1.0-2 @@ -733,7 +733,7 @@ default - + android.hardware.vibrator 1-2 @@ -741,7 +741,7 @@ default - + android.hardware.vibrator 1-2 @@ -749,7 +749,7 @@ default - + android.hardware.weaver 1.0 @@ -757,7 +757,7 @@ default - + android.hardware.weaver 1 @@ -765,7 +765,7 @@ default - + android.hardware.wifi 1.3-6 @@ -773,7 +773,7 @@ default - + android.hardware.uwb 1 @@ -781,7 +781,7 @@ default - + android.hardware.wifi.hostapd 1 @@ -789,7 +789,7 @@ default - + android.hardware.wifi.supplicant ISupplicant diff --git a/compatibility_matrices/compatibility_matrix.8.xml b/compatibility_matrices/compatibility_matrix.8.xml index 905778882a..d8115e158d 100644 --- a/compatibility_matrices/compatibility_matrix.8.xml +++ b/compatibility_matrices/compatibility_matrix.8.xml @@ -1,5 +1,5 @@ - + android.hardware.audio 6.0 7.0-1 @@ -8,7 +8,7 @@ default - + android.hardware.audio.effect 6.0 7.0 @@ -17,7 +17,7 @@ default - + android.hardware.audio.core 1 @@ -36,7 +36,7 @@ default - + android.hardware.audio.effect 1 @@ -44,7 +44,7 @@ default - + android.hardware.audio.sounddose 1 @@ -52,7 +52,7 @@ default - + android.hardware.authsecret 1 @@ -60,7 +60,7 @@ default - + android.hardware.automotive.audiocontrol 2-3 @@ -68,7 +68,7 @@ default - + android.hardware.automotive.can 1 @@ -76,7 +76,7 @@ default - + android.hardware.automotive.evs 1-2 @@ -84,7 +84,7 @@ [a-z]+/[0-9]+ - + android.hardware.automotive.occupant_awareness 1 @@ -92,7 +92,7 @@ default - + android.hardware.automotive.vehicle 1-2 @@ -100,21 +100,21 @@ default - + android.hardware.automotive.remoteaccess IRemoteAccess default - + android.hardware.automotive.ivn IIvnAndroidDevice default - + android.hardware.biometrics.face 3 @@ -123,7 +123,7 @@ virtual - + android.hardware.biometrics.fingerprint 3 @@ -132,7 +132,7 @@ virtual - + android.hardware.bluetooth 1.0-1 @@ -140,14 +140,14 @@ default - + android.hardware.bluetooth IBluetoothHci default - + android.hardware.bluetooth.audio 3 @@ -155,21 +155,21 @@ default - + android.hardware.boot IBootControl default - + android.hardware.broadcastradio IBroadcastRadio .* - + android.hardware.camera.provider 1-2 @@ -177,14 +177,14 @@ [^/]+/[0-9]+ - + android.hardware.cas IMediaCasService default - + android.hardware.confirmationui 1 @@ -192,7 +192,7 @@ default - + android.hardware.contexthub 2 @@ -200,7 +200,7 @@ default - + android.hardware.drm 1 @@ -208,14 +208,14 @@ .* - + android.hardware.dumpstate IDumpstateDevice default - + android.hardware.gatekeeper 1 @@ -223,7 +223,7 @@ default - + android.hardware.gnss 2-3 @@ -231,7 +231,7 @@ default - + android.hardware.graphics.allocator 1-2 @@ -239,7 +239,7 @@ default - + android.hardware.graphics.composer3 2 @@ -248,7 +248,7 @@ - + android.hardware.graphics.mapper 2.1 @@ -259,7 +259,7 @@ default - + android.hardware.health 1-2 @@ -267,7 +267,7 @@ default - + android.hardware.health.storage 1 @@ -275,7 +275,7 @@ default - + android.hardware.identity 1-5 @@ -283,14 +283,14 @@ default - + android.hardware.net.nlinterceptor IInterceptor default - + android.hardware.oemlock 1 @@ -298,7 +298,7 @@ default - + android.hardware.ir 1 @@ -306,7 +306,7 @@ default - + android.hardware.input.processor 1 @@ -314,7 +314,7 @@ default - + android.hardware.security.keymint 1-3 @@ -323,7 +323,7 @@ strongbox - + android.hardware.security.keymint 1-3 @@ -333,7 +333,7 @@ widevine - + android.hardware.light 2 @@ -341,7 +341,7 @@ default - + android.hardware.media.c2 1.0-2 @@ -351,7 +351,7 @@ vendor[0-9]*_software - + android.hardware.media.c2 1.0 @@ -360,7 +360,7 @@ software - + android.hardware.media.omx 1.0 @@ -372,7 +372,7 @@ default - + android.hardware.memtrack 1 @@ -380,7 +380,7 @@ default - + android.hardware.neuralnetworks 1-4 @@ -388,14 +388,14 @@ .* - + android.hardware.nfc INfc default - + android.hardware.power 4 @@ -403,7 +403,7 @@ default - + android.hardware.power.stats 2 @@ -411,7 +411,7 @@ default - + android.hardware.radio.config 2 @@ -419,7 +419,7 @@ default - + android.hardware.radio.data 2 @@ -429,7 +429,7 @@ slot3 - + android.hardware.radio.messaging 2 @@ -439,7 +439,7 @@ slot3 - + android.hardware.radio.modem 2 @@ -449,7 +449,7 @@ slot3 - + android.hardware.radio.network 2 @@ -459,7 +459,7 @@ slot3 - + android.hardware.radio.sim 2 @@ -469,7 +469,7 @@ slot3 - + android.hardware.radio.sap 1 @@ -479,7 +479,7 @@ slot3 - + android.hardware.radio.voice 2 @@ -489,7 +489,7 @@ slot3 - + android.hardware.radio.ims 1 @@ -499,7 +499,7 @@ slot3 - + android.hardware.radio.ims.media 1 @@ -507,7 +507,7 @@ default - + android.hardware.renderscript 1.0 @@ -515,7 +515,7 @@ default - + android.hardware.rebootescrow 1 @@ -523,7 +523,7 @@ default - + android.hardware.secure_element 1 @@ -532,7 +532,7 @@ SIM[1-9][0-9]* - + android.hardware.security.secureclock 1 @@ -540,7 +540,7 @@ default - + android.hardware.security.sharedsecret 1 @@ -549,7 +549,7 @@ strongbox - + android.hardware.sensors 2 @@ -557,7 +557,7 @@ default - + android.hardware.soundtrigger 2.3 @@ -565,7 +565,7 @@ default - + android.hardware.soundtrigger3 1 @@ -573,7 +573,7 @@ default - + android.hardware.tetheroffload.config 1.0 @@ -581,7 +581,7 @@ default - + android.hardware.tetheroffload.control 1.1 @@ -589,7 +589,7 @@ default - + android.hardware.tetheroffload 1 @@ -597,7 +597,7 @@ default - + android.hardware.thermal 1 @@ -605,7 +605,7 @@ default - + android.hardware.tv.hdmi.cec 1 @@ -613,7 +613,7 @@ default - + android.hardware.tv.hdmi.earc 1 @@ -621,7 +621,7 @@ default - + android.hardware.tv.hdmi.connection 1 @@ -629,7 +629,7 @@ default - + android.hardware.tv.tuner 1-2 @@ -637,7 +637,7 @@ default - + android.hardware.tv.input 1 @@ -645,7 +645,7 @@ default - + android.hardware.usb 1-2 @@ -653,14 +653,14 @@ default - + android.hardware.usb.gadget IUsbGadget default - + android.hardware.vibrator 1-2 @@ -668,7 +668,7 @@ default - + android.hardware.vibrator 1-2 @@ -676,7 +676,7 @@ default - + android.hardware.weaver 2 @@ -684,7 +684,7 @@ default - + android.hardware.wifi 1 @@ -692,7 +692,7 @@ default - + android.hardware.uwb 1 @@ -700,7 +700,7 @@ default - + android.hardware.wifi.hostapd 1 @@ -708,7 +708,7 @@ default - + android.hardware.wifi.supplicant 2 @@ -717,7 +717,7 @@ - + mapper 5.0 -- GitLab From 338dbe004627ed7fa34dab313a467c63daccea61 Mon Sep 17 00:00:00 2001 From: Vinay Gannevaram Date: Fri, 12 Jan 2024 16:32:04 +0530 Subject: [PATCH 192/418] Add p2p methods for add group, go Negotiation and Invitation Add addGroupWithParams, onGoNegotiationRequestWithParams and onInvitationReceivedWithParams to P2P Supplicant interface with vendor data as an optional parameter. Also deprecates the previous addGroup, onGoNegotiationRequest and onInvitationReceived. Bug: 296069900 Test: Build successfully Change-Id: I475df52fe087aff39728e2567583b48b7484a7ee --- .../wifi/supplicant/ISupplicantP2pIface.aidl | 4 ++ .../ISupplicantP2pIfaceCallback.aidl | 8 +++ .../P2pAddGroupConfigurationParams.aidl | 1 + .../supplicant/P2pCreateGroupOwnerInfo.aidl | 40 +++++++++++++ .../P2pGoNegotiationReqEventParams.aidl | 40 +++++++++++++ .../supplicant/P2pInvitationEventParams.aidl | 43 ++++++++++++++ .../wifi/supplicant/ISupplicantP2pIface.aidl | 23 +++++++- .../ISupplicantP2pIfaceCallback.aidl | 23 ++++++++ .../P2pAddGroupConfigurationParams.aidl | 7 +++ .../supplicant/P2pCreateGroupOwnerInfo.aidl | 42 ++++++++++++++ .../P2pGoNegotiationReqEventParams.aidl | 42 ++++++++++++++ .../supplicant/P2pInvitationEventParams.aidl | 56 +++++++++++++++++++ .../supplicant_p2p_iface_aidl_test.cpp | 10 ++++ 13 files changed, 337 insertions(+), 2 deletions(-) create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl create mode 100644 wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl create mode 100644 wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl create mode 100644 wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl index 3babbe0c6b..0b068e001f 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -35,6 +35,9 @@ package android.hardware.wifi.supplicant; @VintfStability interface ISupplicantP2pIface { void addBonjourService(in byte[] query, in byte[] response); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use createGroupOwner. + */ void addGroup(in boolean persistent, in int persistentNetworkId); /** * @deprecated This method is deprecated from AIDL v3, newer HALs should use addGroupWithConfigurationParams. @@ -119,4 +122,5 @@ interface ISupplicantP2pIface { void findWithParams(in android.hardware.wifi.supplicant.P2pDiscoveryInfo discoveryInfo); void configureExtListenWithParams(in android.hardware.wifi.supplicant.P2pExtListenInfo extListenInfo); void addGroupWithConfigurationParams(in android.hardware.wifi.supplicant.P2pAddGroupConfigurationParams groupConfigurationParams); + void createGroupOwner(in android.hardware.wifi.supplicant.P2pCreateGroupOwnerInfo groupOwnerInfo); } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl index 4811565b44..65ad4c1407 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -41,11 +41,17 @@ interface ISupplicantP2pIfaceCallback { oneway void onDeviceLost(in byte[] p2pDeviceAddress); oneway void onFindStopped(); oneway void onGoNegotiationCompleted(in android.hardware.wifi.supplicant.P2pStatusCode status); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use onGoNegotiationRequestWithParams. + */ oneway void onGoNegotiationRequest(in byte[] srcAddress, in android.hardware.wifi.supplicant.WpsDevPasswordId passwordId); oneway void onGroupFormationFailure(in String failureReason); oneway void onGroupFormationSuccess(); oneway void onGroupRemoved(in String groupIfname, in boolean isGroupOwner); oneway void onGroupStarted(in String groupIfname, in boolean isGroupOwner, in byte[] ssid, in int frequency, in byte[] psk, in String passphrase, in byte[] goDeviceAddress, in boolean isPersistent); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use onInvitationReceivedWithParams. + */ oneway void onInvitationReceived(in byte[] srcAddress, in byte[] goDeviceAddress, in byte[] bssid, in int persistentNetworkId, in int operatingFrequency); oneway void onInvitationResult(in byte[] bssid, in android.hardware.wifi.supplicant.P2pStatusCode status); /** @@ -72,4 +78,6 @@ interface ISupplicantP2pIfaceCallback { oneway void onPeerClientDisconnected(in android.hardware.wifi.supplicant.P2pPeerClientDisconnectedEventParams clientDisconnectedEventParams); oneway void onProvisionDiscoveryCompletedEvent(in android.hardware.wifi.supplicant.P2pProvisionDiscoveryCompletedEventParams provisionDiscoveryCompletedEventParams); oneway void onDeviceFoundWithParams(in android.hardware.wifi.supplicant.P2pDeviceFoundEventParams deviceFoundEventParams); + oneway void onGoNegotiationRequestWithParams(in android.hardware.wifi.supplicant.P2pGoNegotiationReqEventParams params); + oneway void onInvitationReceivedWithParams(in android.hardware.wifi.supplicant.P2pInvitationEventParams params); } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl index 8e6c5a05e5..ff73f84f24 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl @@ -41,4 +41,5 @@ parcelable P2pAddGroupConfigurationParams { byte[6] goInterfaceAddress; boolean joinExistingGroup; int keyMgmtMask; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl new file mode 100644 index 0000000000..4451fb55ef --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pCreateGroupOwnerInfo { + boolean persistent; + int persistentNetworkId; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl new file mode 100644 index 0000000000..ba10b3ee64 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pGoNegotiationReqEventParams { + byte[6] srcAddress; + android.hardware.wifi.supplicant.WpsDevPasswordId passwordId; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl new file mode 100644 index 0000000000..541ee4f93d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pInvitationEventParams { + byte[6] srcAddress; + byte[6] goDeviceAddress; + byte[6] bssid; + int persistentNetworkId; + int operatingFrequencyMHz; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl index 96239097ea..12307935ac 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -24,6 +24,7 @@ import android.hardware.wifi.supplicant.IfaceType; import android.hardware.wifi.supplicant.MiracastMode; import android.hardware.wifi.supplicant.P2pAddGroupConfigurationParams; import android.hardware.wifi.supplicant.P2pConnectInfo; +import android.hardware.wifi.supplicant.P2pCreateGroupOwnerInfo; import android.hardware.wifi.supplicant.P2pDiscoveryInfo; import android.hardware.wifi.supplicant.P2pExtListenInfo; import android.hardware.wifi.supplicant.P2pFrameTypeMask; @@ -53,6 +54,9 @@ interface ISupplicantP2pIface { * negotiation with a specific peer). This is also known as autonomous * group owner. Optional |persistentNetworkId| may be used to specify * restart of a persistent group. + *

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * createGroupOwner. * * @param persistent Used to request a persistent group to be formed. * @param persistentNetworkId Used to specify the restart of a persistent @@ -909,8 +913,11 @@ interface ISupplicantP2pIface { void configureExtListenWithParams(in P2pExtListenInfo extListenInfo); /** - * Set up a P2P group owner or join a group as a group client - * with the specified configuration. + * Set up a P2P group owner or join a group as a group client with the + * specified configuration. The group configurations required to establish + * a connection(SSID, password, channel, etc) are shared out of band. + * So the connection process doesn't require a P2P provision discovery or + * invitation message exchange. * * @param groupConfigurationParams Parameters associated with this add group operation. * @throws ServiceSpecificException with one of the following values: @@ -919,4 +926,16 @@ interface ISupplicantP2pIface { */ void addGroupWithConfigurationParams( in P2pAddGroupConfigurationParams groupConfigurationParams); + + /** + * Set up a P2P group owner on this device. This is also known as autonomous + * group owner. The connection process requires P2P provision discovery + * message or invitation message exchange. + * + * @param groupOwnerInfo Parameters associated with this create group owner operation. + * @throws ServiceSpecificException with one of the following values: + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + void createGroupOwner(in P2pCreateGroupOwnerInfo groupOwnerInfo); } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl index b9273a83ea..44a54652b2 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -17,8 +17,10 @@ package android.hardware.wifi.supplicant; import android.hardware.wifi.supplicant.P2pDeviceFoundEventParams; +import android.hardware.wifi.supplicant.P2pGoNegotiationReqEventParams; import android.hardware.wifi.supplicant.P2pGroupCapabilityMask; import android.hardware.wifi.supplicant.P2pGroupStartedEventParams; +import android.hardware.wifi.supplicant.P2pInvitationEventParams; import android.hardware.wifi.supplicant.P2pPeerClientDisconnectedEventParams; import android.hardware.wifi.supplicant.P2pPeerClientJoinedEventParams; import android.hardware.wifi.supplicant.P2pProvDiscStatusCode; @@ -88,6 +90,10 @@ oneway interface ISupplicantP2pIfaceCallback { * @param srcAddress MAC address of the device that initiated the GO * negotiation request. * @param passwordId Type of password. + * + *

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * onGoNegotiationRequestWithParams. */ void onGoNegotiationRequest(in byte[] srcAddress, in WpsDevPasswordId passwordId); @@ -135,6 +141,9 @@ oneway interface ISupplicantP2pIfaceCallback { * @param bssid Bssid of the group. * @param persistentNetworkId Persistent network Id of the group. * @param operatingFrequency Frequency on which the invitation was received. + *

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * onInvitationReceivedWithParams. */ void onInvitationReceived(in byte[] srcAddress, in byte[] goDeviceAddress, in byte[] bssid, in int persistentNetworkId, in int operatingFrequency); @@ -302,4 +311,18 @@ oneway interface ISupplicantP2pIfaceCallback { * @param deviceFoundEventParams Parameters associated with the device found event. */ void onDeviceFoundWithParams(in P2pDeviceFoundEventParams deviceFoundEventParams); + + /** + * Used to indicate the reception of a P2P Group Owner negotiation request. + * + * @param params Parameters associated with the GO negotiation request event. + */ + void onGoNegotiationRequestWithParams(in P2pGoNegotiationReqEventParams params); + + /** + * Used to indicate the reception of a P2P invitation. + * + * @param params Parameters associated with the invitation request event. + */ + void onInvitationReceivedWithParams(in P2pInvitationEventParams params); } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl index 1374f41ba6..15f2733b32 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl @@ -16,6 +16,7 @@ package android.hardware.wifi.supplicant; +import android.hardware.wifi.common.OuiKeyedData; import android.hardware.wifi.supplicant.KeyMgmtMask; /** @@ -65,4 +66,10 @@ parcelable P2pAddGroupConfigurationParams { * */ int keyMgmtMask; + + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl new file mode 100644 index 0000000000..51e6ed9c5c --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; + +/** + * Parameters used for |ISupplicantP2pIface.createGroupOwner| + */ +@VintfStability +parcelable P2pCreateGroupOwnerInfo { + /** + * Used to request a persistent group to be formed. + */ + boolean persistent; + + /** + * Optional parameter. Used to specify the restart of a persistent + * group. Set to UINT32_MAX for a non-persistent group. + */ + int persistentNetworkId; + + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl new file mode 100644 index 0000000000..3480734c58 --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; +import android.hardware.wifi.supplicant.WpsDevPasswordId; + +/** + * Parameters used for |ISupplicantP2pIfaceCallback.onGoNegotiationRequestWithParams| + */ +@VintfStability +parcelable P2pGoNegotiationReqEventParams { + /** + * MAC address of the device that sent the Go negotiation request. + */ + byte[6] srcAddress; + + /** + * Type of password. + */ + WpsDevPasswordId passwordId; + + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl new file mode 100644 index 0000000000..4295c40f3e --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; + +/** + * Parameters used for |ISupplicantP2pIfaceCallback.onInvitationReceivedWithParams| + */ +@VintfStability +parcelable P2pInvitationEventParams { + /** + * MAC address of the device that sent the invitation. + */ + byte[6] srcAddress; + + /** + * P2P device MAC Address of the group owner. + */ + byte[6] goDeviceAddress; + + /** + * BSSID of the group. + */ + byte[6] bssid; + + /** + * Persistent network ID of the group. + */ + int persistentNetworkId; + + /** + * Frequency on which the invitation was received. + */ + int operatingFrequencyMHz; + + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp index 3f96414a0e..2d6823f207 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp @@ -37,8 +37,10 @@ using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface; using aidl::android::hardware::wifi::supplicant::MiracastMode; using aidl::android::hardware::wifi::supplicant::P2pDeviceFoundEventParams; using aidl::android::hardware::wifi::supplicant::P2pFrameTypeMask; +using aidl::android::hardware::wifi::supplicant::P2pGoNegotiationReqEventParams; using aidl::android::hardware::wifi::supplicant::P2pGroupCapabilityMask; using aidl::android::hardware::wifi::supplicant::P2pGroupStartedEventParams; +using aidl::android::hardware::wifi::supplicant::P2pInvitationEventParams; using aidl::android::hardware::wifi::supplicant::P2pPeerClientDisconnectedEventParams; using aidl::android::hardware::wifi::supplicant::P2pPeerClientJoinedEventParams; using aidl::android::hardware::wifi::supplicant::P2pProvDiscStatusCode; @@ -204,6 +206,14 @@ class SupplicantP2pIfaceCallback : public BnSupplicantP2pIfaceCallback { const P2pDeviceFoundEventParams& /* deviceFoundEventParams */) override { return ndk::ScopedAStatus::ok(); } + ::ndk::ScopedAStatus onGoNegotiationRequestWithParams( + const P2pGoNegotiationReqEventParams& /* goNegotiationReqEventParams */) override { + return ndk::ScopedAStatus::ok(); + } + ::ndk::ScopedAStatus onInvitationReceivedWithParams( + const P2pInvitationEventParams& /* invitationEventParams */) override { + return ndk::ScopedAStatus::ok(); + } }; class SupplicantP2pIfaceAidlTest : public testing::TestWithParam { -- GitLab From f36c31c9f08da3c500caba7099d67066bfad9c74 Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Fri, 12 Jan 2024 04:53:17 +0000 Subject: [PATCH 193/418] media.c2 aidl: Use bufferpool2 V2 Bug: 254050314 Change-Id: I1597fa92214086378d48fa37401a389a32c72bba --- media/bufferpool/aidl/default/Android.bp | 5 +++-- media/bufferpool/aidl/default/BufferPoolClient.cpp | 8 +++++++- media/bufferpool/aidl/default/tests/Android.bp | 9 ++++++--- media/c2/aidl/Android.bp | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/media/bufferpool/aidl/default/Android.bp b/media/bufferpool/aidl/default/Android.bp index 11a616373e..4d12d6304a 100644 --- a/media/bufferpool/aidl/default/Android.bp +++ b/media/bufferpool/aidl/default/Android.bp @@ -33,15 +33,16 @@ cc_library { "libcutils", "libfmq", "liblog", + "libnativewindow", "libutils", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], static_libs: [ "libaidlcommonsupport", ], export_shared_lib_headers: [ "libfmq", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], double_loadable: true, cflags: [ diff --git a/media/bufferpool/aidl/default/BufferPoolClient.cpp b/media/bufferpool/aidl/default/BufferPoolClient.cpp index 0e249d5c63..ce4ad8e37f 100644 --- a/media/bufferpool/aidl/default/BufferPoolClient.cpp +++ b/media/bufferpool/aidl/default/BufferPoolClient.cpp @@ -757,7 +757,13 @@ BufferPoolStatus BufferPoolClient::Impl::fetchBufferHandle( return svcSpecific ? svcSpecific : ResultStatus::CRITICAL_ERROR; } if (results[0].getTag() == FetchResult::buffer) { - *handle = ::android::dupFromAidl(results[0].get().buffer); + if (results[0].get().buffer.has_value()) { + *handle = ::android::dupFromAidl(results[0].get().buffer.value()); + } else { + // TODO: Support HardwareBuffer + ALOGW("handle nullptr"); + *handle = nullptr; + } return ResultStatus::OK; } return results[0].get(); diff --git a/media/bufferpool/aidl/default/tests/Android.bp b/media/bufferpool/aidl/default/tests/Android.bp index 549af5739c..487ed4c593 100644 --- a/media/bufferpool/aidl/default/tests/Android.bp +++ b/media/bufferpool/aidl/default/tests/Android.bp @@ -36,8 +36,9 @@ cc_test { "libcutils", "libfmq", "liblog", + "libnativewindow", "libutils", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], static_libs: [ "libaidlcommonsupport", @@ -59,8 +60,9 @@ cc_test { "libcutils", "libfmq", "liblog", + "libnativewindow", "libutils", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], static_libs: [ "libaidlcommonsupport", @@ -82,8 +84,9 @@ cc_test { "libcutils", "libfmq", "liblog", + "libnativewindow", "libutils", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], static_libs: [ "libaidlcommonsupport", diff --git a/media/c2/aidl/Android.bp b/media/c2/aidl/Android.bp index b511e45701..2eaeb010e2 100644 --- a/media/c2/aidl/Android.bp +++ b/media/c2/aidl/Android.bp @@ -20,7 +20,7 @@ aidl_interface { ], imports: [ "android.hardware.common-V2", - "android.hardware.media.bufferpool2-V1", + "android.hardware.media.bufferpool2-V2", ], include_dirs: [ "frameworks/native/aidl/gui", -- GitLab From 31437d0f3c5029dd43c975990c84d05fcc1d03bc Mon Sep 17 00:00:00 2001 From: Avichal Rakesh Date: Fri, 12 Jan 2024 17:17:27 -0800 Subject: [PATCH 194/418] ExternalCameraHAL: dup fd when creating AIDL NativeHandle AIDL's NativeHandle do not have a concept of unowned file descriptors. If a NativeHandle object is created with an fd, NativeHandle implicitly assumes ownership of the fd. When passing fds over binder, ExternalCameraHAL used makeToAidl which which accidentally transferred ownership to the AIDL objects. Additionally, NativeHandles close owned fds on destruction, which led to multiple closure of fences. This CL changes the logic to use dupToAidl to ensure that NativeHandle objects are given ownership of a duped fds and don't interfere with any of the fds used for internal bookkeeping. Bug: 313115623 Test: Verified by partner that ExternalCameraHAL no longer double closes fds. Change-Id: Ic406634de6f22a290abb414e80a7747927368b68 --- .../default/ExternalCameraDeviceSession.cpp | 24 ++++++++++++------- .../default/ExternalCameraOfflineSession.cpp | 6 ++--- camera/device/default/ExternalCameraUtils.cpp | 16 ++++--------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/camera/device/default/ExternalCameraDeviceSession.cpp b/camera/device/default/ExternalCameraDeviceSession.cpp index a6ec4c783e..126b782112 100644 --- a/camera/device/default/ExternalCameraDeviceSession.cpp +++ b/camera/device/default/ExternalCameraDeviceSession.cpp @@ -789,8 +789,10 @@ Status ExternalCameraDeviceSession::switchToOffline( outputBuffer.bufferId = buffer.bufferId; outputBuffer.status = BufferStatus::ERROR; if (buffer.acquireFence >= 0) { - outputBuffer.releaseFence.fds.resize(1); - outputBuffer.releaseFence.fds.at(0).set(buffer.acquireFence); + native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); + handle->data[0] = buffer.acquireFence; + outputBuffer.releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } } else { offlineBuffers.push_back(buffer); @@ -1768,8 +1770,10 @@ Status ExternalCameraDeviceSession::processCaptureRequestError( result.outputBuffers[i].bufferId = req->buffers[i].bufferId; result.outputBuffers[i].status = BufferStatus::ERROR; if (req->buffers[i].acquireFence >= 0) { - result.outputBuffers[i].releaseFence.fds.resize(1); - result.outputBuffers[i].releaseFence.fds.at(0).set(req->buffers[i].acquireFence); + native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); + handle->data[0] = req->buffers[i].acquireFence; + result.outputBuffers[i].releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } } @@ -1813,16 +1817,20 @@ Status ExternalCameraDeviceSession::processCaptureResult(std::shared_ptrbuffers[i].fenceTimeout) { result.outputBuffers[i].status = BufferStatus::ERROR; if (req->buffers[i].acquireFence >= 0) { - result.outputBuffers[i].releaseFence.fds.resize(1); - result.outputBuffers[i].releaseFence.fds.at(0).set(req->buffers[i].acquireFence); + native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); + handle->data[0] = req->buffers[i].acquireFence; + result.outputBuffers[i].releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } notifyError(req->frameNumber, req->buffers[i].streamId, ErrorCode::ERROR_BUFFER); } else { result.outputBuffers[i].status = BufferStatus::OK; // TODO: refactor if (req->buffers[i].acquireFence >= 0) { - result.outputBuffers[i].releaseFence.fds.resize(1); - result.outputBuffers[i].releaseFence.fds.at(0).set(req->buffers[i].acquireFence); + native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); + handle->data[0] = req->buffers[i].acquireFence; + result.outputBuffers[i].releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } } } diff --git a/camera/device/default/ExternalCameraOfflineSession.cpp b/camera/device/default/ExternalCameraOfflineSession.cpp index 53bd44f4fa..536fa47a61 100644 --- a/camera/device/default/ExternalCameraOfflineSession.cpp +++ b/camera/device/default/ExternalCameraOfflineSession.cpp @@ -110,7 +110,7 @@ Status ExternalCameraOfflineSession::processCaptureResult(std::shared_ptrbuffers[i].acquireFence >= 0) { native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); handle->data[0] = req->buffers[i].acquireFence; - result.outputBuffers[i].releaseFence = android::makeToAidl(handle); + result.outputBuffers[i].releaseFence = android::dupToAidl(handle); } notifyError(req->frameNumber, req->buffers[i].streamId, ErrorCode::ERROR_BUFFER); } else { @@ -119,7 +119,7 @@ Status ExternalCameraOfflineSession::processCaptureResult(std::shared_ptrbuffers[i].acquireFence >= 0) { native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); handle->data[0] = req->buffers[i].acquireFence; - outputBuffer.releaseFence = android::makeToAidl(handle); + outputBuffer.releaseFence = android::dupToAidl(handle); } } } @@ -247,7 +247,7 @@ Status ExternalCameraOfflineSession::processCaptureRequestError( if (req->buffers[i].acquireFence >= 0) { native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); handle->data[0] = req->buffers[i].acquireFence; - outputBuffer.releaseFence = makeToAidl(handle); + outputBuffer.releaseFence = dupToAidl(handle); } } diff --git a/camera/device/default/ExternalCameraUtils.cpp b/camera/device/default/ExternalCameraUtils.cpp index 30c216f209..2dc3c77ec8 100644 --- a/camera/device/default/ExternalCameraUtils.cpp +++ b/camera/device/default/ExternalCameraUtils.cpp @@ -750,18 +750,12 @@ Size getMaxThumbnailResolution(const common::V1_0::helper::CameraMetadata& chars void freeReleaseFences(std::vector& results) { for (auto& result : results) { - native_handle_t* inputReleaseFence = - ::android::makeFromAidl(result.inputBuffer.releaseFence); - if (inputReleaseFence != nullptr) { - native_handle_close(inputReleaseFence); - native_handle_delete(inputReleaseFence); - } + // NativeHandles free fd's on desctruction. Simply delete the objects! + result.inputBuffer.releaseFence.fds.clear(); // Implicitly closes fds + result.inputBuffer.releaseFence.ints.clear(); for (auto& buf : result.outputBuffers) { - native_handle_t* outReleaseFence = ::android::makeFromAidl(buf.releaseFence); - if (outReleaseFence != nullptr) { - native_handle_close(outReleaseFence); - native_handle_delete(outReleaseFence); - } + buf.releaseFence.fds.clear(); // Implicitly closes fds + buf.releaseFence.ints.clear(); } } } -- GitLab From ce54ff9989b597d0a939b297b5c464904830fc6f Mon Sep 17 00:00:00 2001 From: Avichal Rakesh Date: Fri, 12 Jan 2024 17:28:28 -0800 Subject: [PATCH 195/418] ExternalCameraHAL: Prevent memory leak when manipulating native_handle native_handle objects created by makeFromAidl need to be deleted with native_handle_delete. Not doing so leads to a memory leak every time makeFromAidl is called. This CL ensures that native_handle_delete is called on the return value of makeFromAidl wherever it is used. Bug: 305638723 Test: n/a. No functional change. Change-Id: Ia99ba6e3abbdf7dec75383450a60c944b92a9c74 --- .../default/ExternalCameraDeviceSession.cpp | 19 ++++++++++++------- .../default/ExternalCameraOfflineSession.cpp | 3 +++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/camera/device/default/ExternalCameraDeviceSession.cpp b/camera/device/default/ExternalCameraDeviceSession.cpp index 126b782112..a16dd7fd83 100644 --- a/camera/device/default/ExternalCameraDeviceSession.cpp +++ b/camera/device/default/ExternalCameraDeviceSession.cpp @@ -1391,12 +1391,14 @@ Status ExternalCameraDeviceSession::importRequestLockedImpl( // All buffers are imported. Now validate output buffer acquire fences for (size_t i = 0; i < numOutputBufs; i++) { - if (!sHandleImporter.importFence( - ::android::makeFromAidl(request.outputBuffers[i].acquireFence), allFences[i])) { + native_handle_t* h = ::android::makeFromAidl(request.outputBuffers[i].acquireFence); + if (!sHandleImporter.importFence(h, allFences[i])) { ALOGE("%s: output buffer %zu acquire fence is invalid", __FUNCTION__, i); cleanupInflightFences(allFences, i); + native_handle_delete(h); return Status::INTERNAL_ERROR; } + native_handle_delete(h); } return Status::OK; } @@ -2094,9 +2096,10 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { // TODO: create a batch import API so we don't need to lock/unlock mCbsLock // repeatedly? lk.unlock(); - Status s = - parent->importBuffer(streamId, hBuf.bufferId, makeFromAidl(hBuf.buffer), - /*out*/ &mBufferReqs[i].bufPtr); + native_handle_t* h = makeFromAidl(hBuf.buffer); + Status s = parent->importBuffer(streamId, hBuf.bufferId, h, + /*out*/ &mBufferReqs[i].bufPtr); + native_handle_delete(h); lk.lock(); if (s != Status::OK) { @@ -2104,12 +2107,14 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { cleanupInflightFences(importedFences, i - 1); return false; } - if (!sHandleImporter.importFence(makeFromAidl(hBuf.acquireFence), - mBufferReqs[i].acquireFence)) { + h = makeFromAidl(hBuf.acquireFence); + if (!sHandleImporter.importFence(h, mBufferReqs[i].acquireFence)) { ALOGE("%s: stream %d import fence failed!", __FUNCTION__, streamId); cleanupInflightFences(importedFences, i - 1); + native_handle_delete(h); return false; } + native_handle_delete(h); importedFences[i] = mBufferReqs[i].acquireFence; } break; default: diff --git a/camera/device/default/ExternalCameraOfflineSession.cpp b/camera/device/default/ExternalCameraOfflineSession.cpp index 536fa47a61..2d4e2e0234 100644 --- a/camera/device/default/ExternalCameraOfflineSession.cpp +++ b/camera/device/default/ExternalCameraOfflineSession.cpp @@ -111,6 +111,7 @@ Status ExternalCameraOfflineSession::processCaptureResult(std::shared_ptrdata[0] = req->buffers[i].acquireFence; result.outputBuffers[i].releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } notifyError(req->frameNumber, req->buffers[i].streamId, ErrorCode::ERROR_BUFFER); } else { @@ -120,6 +121,7 @@ Status ExternalCameraOfflineSession::processCaptureResult(std::shared_ptrdata[0] = req->buffers[i].acquireFence; outputBuffer.releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } } } @@ -248,6 +250,7 @@ Status ExternalCameraOfflineSession::processCaptureRequestError( native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); handle->data[0] = req->buffers[i].acquireFence; outputBuffer.releaseFence = dupToAidl(handle); + native_handle_delete(handle); } } -- GitLab From a6daccc3e59ca055619d252616e5db4830dcad3a Mon Sep 17 00:00:00 2001 From: Chienyuan Huang Date: Fri, 5 Jan 2024 16:31:22 +0000 Subject: [PATCH 196/418] Handle review feedback for android.hardware.bluetooth.ranging Bug: 318763088 Test: m android.hardware.bluetooth.ranging-update-api Change-Id: I7f66278328d63ad1882aae87c575be7baaf45718 --- .../ranging/ChannelSoundingSingleSideData.aidl | 6 +++--- .../android/hardware/bluetooth/ranging/ModeType.aidl | 2 +- .../hardware/bluetooth/ranging/SubModeType.aidl | 4 ++-- .../hardware/bluetooth/ranging/AddressType.aidl | 4 ++++ .../bluetooth/ranging/ChannelSoudingRawData.aidl | 3 +++ .../ranging/ChannelSoundingSingleSideData.aidl | 11 +++++++---- .../android/hardware/bluetooth/ranging/ModeType.aidl | 2 +- .../aidl/android/hardware/bluetooth/ranging/Nadm.aidl | 8 ++++++++ .../hardware/bluetooth/ranging/SubModeType.aidl | 4 ++-- 9 files changed, 31 insertions(+), 13 deletions(-) diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl index ddaba720f7..172ac5e9e8 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl @@ -34,13 +34,13 @@ package android.hardware.bluetooth.ranging; @VintfStability parcelable ChannelSoundingSingleSideData { - @nullable List stepTonePcts; + @nullable android.hardware.bluetooth.ranging.StepTonePct[] stepTonePcts; @nullable byte[] packetQuality; @nullable byte[] packetRssiDbm; @nullable android.hardware.bluetooth.ranging.Nadm[] packetNadm; @nullable int[] measuredFreqOffset; - @nullable List packetPct1; - @nullable List packetPct2; + @nullable android.hardware.bluetooth.ranging.ComplexNumber[] packetPct1; + @nullable android.hardware.bluetooth.ranging.ComplexNumber[] packetPct2; byte referencePowerDbm; @nullable byte[] vendorSpecificCsSingleSidedata; } diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ModeType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ModeType.aidl index 75cdabca07..1e8ae91037 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ModeType.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ModeType.aidl @@ -32,7 +32,7 @@ // later when a module using the interface is updated, e.g., Mainline modules. package android.hardware.bluetooth.ranging; -@Backing(type="int") @VintfStability +@Backing(type="byte") @VintfStability enum ModeType { ZERO = 0x00, ONE = 0x01, diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/SubModeType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/SubModeType.aidl index f660c91741..b72a97d090 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/SubModeType.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/SubModeType.aidl @@ -32,10 +32,10 @@ // later when a module using the interface is updated, e.g., Mainline modules. package android.hardware.bluetooth.ranging; -@Backing(type="int") @VintfStability +@Backing(type="byte") @VintfStability enum SubModeType { ONE = 0x01, TWO = 0x02, THREE = 0x03, - UNUSED = 0xff, + UNUSED = 0xffu8, } diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/AddressType.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/AddressType.aidl index bd032135ef..499d42f98e 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/AddressType.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/AddressType.aidl @@ -16,9 +16,13 @@ package android.hardware.bluetooth.ranging; +/** + * Same as the BLE address type, except anonymous isn't supported for ranging. + */ @VintfStability @Backing(type="int") enum AddressType { PUBLIC = 0x00, + /* Still may be fixed on the device and is not randomized on boot */ RANDOM = 0x01, } diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl index 0106865b97..78ce4f4925 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl @@ -21,6 +21,9 @@ import android.hardware.bluetooth.ranging.ModeType; /** * Raw ranging data of Channel Sounding. + * See Channel Sounding CR_PR 3.1.10 and Channel Sounding HCI Updates CR_PR 3.1.23 for details. + * + * Specification: https://www.bluetooth.com/specifications/specs/channel-sounding-cr-pr/ */ @VintfStability parcelable ChannelSoudingRawData { diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl index 942fc0d35e..9c4b47250b 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl @@ -21,14 +21,17 @@ import android.hardware.bluetooth.ranging.Nadm; import android.hardware.bluetooth.ranging.StepTonePct; /** - * Raw ranging data of Channel Sounding from either Initator or Reflector + * Raw ranging data of Channel Sounding from either Initator or Reflector. + * See Channel Sounding CR_PR 3.1.10 and Channel Sounding HCI Updates CR_PR 3.1.23 for details. + * + * Specification: https://www.bluetooth.com/specifications/specs/channel-sounding-cr-pr/ */ @VintfStability parcelable ChannelSoundingSingleSideData { /** * PCT (complex value) measured from mode-2 or mode-3 steps in a CS procedure (in time order). */ - @nullable List stepTonePcts; + @nullable StepTonePct[] stepTonePcts; /** * Packet Quality from mode-1 or mode-3 steps in a CS procedures (in time order). */ @@ -49,8 +52,8 @@ parcelable ChannelSoundingSingleSideData { * Packet_PCT1 or packet_PCT2 of mode-1 or mode-3, if sounding sequence is used and sounding * phase-based ranging is supported. */ - @nullable List packetPct1; - @nullable List packetPct2; + @nullable ComplexNumber[] packetPct1; + @nullable ComplexNumber[] packetPct2; /** * Reference power level (-127 to 20) of the signal in the procedure, in dBm. */ diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ModeType.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ModeType.aidl index 2058ae8411..3a727aa353 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ModeType.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ModeType.aidl @@ -17,7 +17,7 @@ package android.hardware.bluetooth.ranging; @VintfStability -@Backing(type="int") +@Backing(type="byte") enum ModeType { ZERO = 0x00, ONE = 0x01, diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/Nadm.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/Nadm.aidl index 3cfb22f464..74cf7317c9 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/Nadm.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/Nadm.aidl @@ -16,6 +16,12 @@ package android.hardware.bluetooth.ranging; +/** + * Normalized Attack Detector Metric. + * See Channel Sounding CR_PR, 3.13.24 for details. + * + * Specification: https://www.bluetooth.com/specifications/specs/channel-sounding-cr-pr/ + */ @VintfStability @Backing(type="byte") enum Nadm { @@ -26,5 +32,7 @@ enum Nadm { ATTACK_IS_LIKELY = 0x04, ATTACK_IS_VERY_LIKELY = 0x05, ATTACK_IS_EXTREMELY_LIKELY = 0x06, + /* If a device is unable to determine a NADM value, then it shall report a NADM value of Unknown + */ UNKNOWN = 0xFFu8, } diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/SubModeType.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/SubModeType.aidl index ca9bfcb836..b775002eab 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/SubModeType.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/SubModeType.aidl @@ -17,10 +17,10 @@ package android.hardware.bluetooth.ranging; @VintfStability -@Backing(type="int") +@Backing(type="byte") enum SubModeType { ONE = 0x01, TWO = 0x02, THREE = 0x03, - UNUSED = 0xff, + UNUSED = 0xffu8, } -- GitLab From 84187967cb72b471ea411ef3eac36208b22823ae Mon Sep 17 00:00:00 2001 From: Shikha Panwar Date: Mon, 15 Jan 2024 09:30:55 +0000 Subject: [PATCH 197/418] VTS to use enum for MissingAction ConstraintSpec constructor will take enum instead of boolean for missing action. Test: atest VtsSecretkeeperTargetTest Bug: 291213394 Change-Id: I55fb0d8ef1fccca5feedf1fd368854ffb7eafaaf --- .../aidl/vts/secretkeeper_test_client.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index 4c0f659960..26fdb5688b 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -26,7 +26,7 @@ use authgraph_vts_test as ag_vts; use authgraph_boringssl as boring; use authgraph_core::key; use coset::{CborSerializable, CoseEncrypt0}; -use dice_policy::{ConstraintSpec, ConstraintType, DicePolicy}; +use dice_policy::{ConstraintSpec, ConstraintType, DicePolicy, MissingAction}; use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; use secretkeeper_client::SkSession; use secretkeeper_core::cipher; @@ -255,16 +255,12 @@ fn sealing_policy(dice: &[u8]) -> Vec { let security_version: i64 = -70005; let constraint_spec = [ - ConstraintSpec::new( - ConstraintType::ExactMatch, - vec![authority_hash], - /* Optional */ false, - ), - ConstraintSpec::new(ConstraintType::ExactMatch, vec![key_mode], false), + ConstraintSpec::new(ConstraintType::ExactMatch, vec![authority_hash], MissingAction::Fail), + ConstraintSpec::new(ConstraintType::ExactMatch, vec![key_mode], MissingAction::Fail), ConstraintSpec::new( ConstraintType::GreaterOrEqual, vec![config_desc, security_version], - true, + MissingAction::Ignore, ), ]; -- GitLab From 558eb0b696ba31f64ea341560cff9c9ac7700a86 Mon Sep 17 00:00:00 2001 From: Zhanglong Xia Date: Tue, 16 Jan 2024 14:40:53 +0800 Subject: [PATCH 198/418] Update VTS test for the function `hardwareReset()` The function `hardwareReset()` throws `EX_UNSUPPORTED_OPERATION` if the Thread radio chip doesn't support the hardware reset. Current VTS test assumes that the Thread radio chip must support the hardware reset. This CL updates the VTS test to verify the return value `EX_UNSUPPORTED_OPERATION`. bug: b/320393041 Test: run vts -m VtsHalThreadNetworkTargetTest Change-Id: I7b0b2a4e850a1eda085a6d6c24cdd8aae6498aac --- threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp b/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp index 5925b54b6a..2f71b2f1e2 100644 --- a/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp +++ b/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp @@ -87,11 +87,16 @@ TEST_P(ThreadNetworkAidl, Close) { } TEST_P(ThreadNetworkAidl, Reset) { + ndk::ScopedAStatus status; std::shared_ptr callback = ndk::SharedRefBase::make([](auto /* data */) {}); EXPECT_TRUE(thread_chip->open(callback).isOk()); - EXPECT_TRUE(thread_chip->hardwareReset().isOk()); + status = thread_chip->hardwareReset(); + EXPECT_TRUE(status.isOk() || (status.getExceptionCode() == EX_UNSUPPORTED_OPERATION)); + if (status.getExceptionCode() == EX_UNSUPPORTED_OPERATION) { + GTEST_SKIP() << "Hardware reset is not supported"; + } } TEST_P(ThreadNetworkAidl, SendSpinelFrame) { -- GitLab From 4ad0484ffa94ffe709965a60539b4b962e97991d Mon Sep 17 00:00:00 2001 From: Zhanglong Xia Date: Tue, 16 Jan 2024 14:48:57 +0800 Subject: [PATCH 199/418] Ignores vim temporary files from git Test: git status Change-Id: I6fa42ed671294f7dab34df3285b5a234a2a9cb2e --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 1d74e21965..6c7f477008 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ .vscode/ + +# Vim temporary files +**/*.swp -- GitLab From 1d214226b53e8dbe764ba23f2cee99b7d194f3a2 Mon Sep 17 00:00:00 2001 From: Jakub Tyszkowski Date: Tue, 16 Jan 2024 09:44:48 +0000 Subject: [PATCH 200/418] LeAudio: Fix AIDL API review issues Bug: 319669518 Test: m android.hardware.bluetooth.audio-update-api && make && m VtsHalBluetoothAudioTargetTest Change-Id: Id128ed1eb09ada1e98b15351dc353fedc90fcbc8 --- .../audio/CodecSpecificCapabilitiesLtv.aidl | 4 +- .../bluetooth/audio/ConfigurationFlags.aidl | 8 +- .../audio/IBluetoothAudioProvider.aidl | 28 +-- .../hardware/bluetooth/audio/CodecId.aidl | 2 +- .../hardware/bluetooth/audio/CodecInfo.aidl | 14 +- .../audio/CodecSpecificCapabilitiesLtv.aidl | 12 +- .../bluetooth/audio/ConfigurationFlags.aidl | 20 +-- .../audio/IBluetoothAudioProvider.aidl | 164 ++++++++++++++---- .../hardware/bluetooth/audio/MetadataLtv.aidl | 5 +- .../default/LeAudioOffloadAudioProvider.cpp | 11 +- .../vts/VtsHalBluetoothAudioTargetTest.cpp | 10 +- 11 files changed, 197 insertions(+), 81 deletions(-) diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl index 1049d983fb..60c276b0dd 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl @@ -74,8 +74,8 @@ union CodecSpecificCapabilitiesLtv { const int EIGHT = 0x80; } parcelable SupportedOctetsPerCodecFrame { - int minimum; - int maximum; + int min; + int max; } parcelable SupportedMaxCodecFramesPerSDU { int value; diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/ConfigurationFlags.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/ConfigurationFlags.aidl index baf0a4e9f6..6b3cf723cf 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/ConfigurationFlags.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/ConfigurationFlags.aidl @@ -38,8 +38,8 @@ parcelable ConfigurationFlags { const int NONE = 0x0000; const int LOSSLESS = 0x0001; const int LOW_LATENCY = 0x0002; - const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0003; - const int SPATIAL_AUDIO = 0x0004; - const int PROVIDE_ASE_METADATA = 0x0005; - const int MONO_MIC_CONFIGURATION = 0x0006; + const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0004; + const int SPATIAL_AUDIO = 0x0008; + const int PROVIDE_ASE_METADATA = 0x0010; + const int MONO_MIC_CONFIGURATION = 0x0020; } diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl index 87401ff7fd..3a2dcef799 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -43,13 +43,15 @@ interface IBluetoothAudioProvider { android.hardware.bluetooth.audio.A2dpStatus parseA2dpConfiguration(in android.hardware.bluetooth.audio.CodecId codecId, in byte[] configuration, out android.hardware.bluetooth.audio.CodecParameters codecParameters); @nullable android.hardware.bluetooth.audio.A2dpConfiguration getA2dpConfiguration(in List remoteA2dpCapabilities, in android.hardware.bluetooth.audio.A2dpConfigurationHint hint); void setCodecPriority(in android.hardware.bluetooth.audio.CodecId codecId, int priority); - List getLeAudioAseConfiguration(in @nullable List remoteSinkAudioCapabilities, in @nullable List remoteSourceAudioCapabilities, in List requirements); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting[] getLeAudioAseConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSourceAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement[] requirements); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationPair getLeAudioAseQosConfiguration(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement qosRequirement); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sinkConfig, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sourceConfig); void onSinkAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); void onSourceAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); - android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable List remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement); - android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration getLeAudioBroadcastDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext context, in android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration.BroadcastStreamMap[] streamMap); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration getLeAudioBroadcastDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext audioContext, in android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration.BroadcastStreamMap[] streamMap); + const int CODEC_PRIORITY_DISABLED = (-1) /* -1 */; + const int CODEC_PRIORITY_NONE = 0; @VintfStability parcelable LeAudioDeviceCapabilities { android.hardware.bluetooth.audio.CodecId codecId; @@ -97,8 +99,8 @@ interface IBluetoothAudioProvider { parcelable LeAudioAseConfigurationSetting { android.hardware.bluetooth.audio.AudioContext audioContext; android.hardware.bluetooth.audio.IBluetoothAudioProvider.Packing packing; - @nullable List sinkAseConfiguration; - @nullable List sourceAseConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting.AseDirectionConfiguration[] sinkAseConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting.AseDirectionConfiguration[] sourceAseConfiguration; @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; @VintfStability parcelable AseDirectionConfiguration { @@ -110,8 +112,8 @@ interface IBluetoothAudioProvider { @VintfStability parcelable LeAudioConfigurationRequirement { android.hardware.bluetooth.audio.AudioContext audioContext; - @nullable List sinkAseRequirement; - @nullable List sourceAseRequirement; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement.AseDirectionRequirement[] sinkAseRequirement; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement.AseDirectionRequirement[] sourceAseRequirement; @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; @VintfStability parcelable AseDirectionRequirement { @@ -120,7 +122,7 @@ interface IBluetoothAudioProvider { } @VintfStability parcelable LeAudioAseQosConfigurationRequirement { - android.hardware.bluetooth.audio.AudioContext contextType; + android.hardware.bluetooth.audio.AudioContext audioContext; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement.AseQosDirectionRequirement sinkAseQosRequirement; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement.AseQosDirectionRequirement sourceAseQosRequirement; @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; @@ -147,7 +149,7 @@ interface IBluetoothAudioProvider { @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration outputConfig; } parcelable StreamConfig { - android.hardware.bluetooth.audio.AudioContext context; + android.hardware.bluetooth.audio.AudioContext audioContext; android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap; } @Backing(type="byte") @VintfStability @@ -163,13 +165,13 @@ interface IBluetoothAudioProvider { } @VintfStability parcelable LeAudioBroadcastSubgroupConfigurationRequirement { - android.hardware.bluetooth.audio.AudioContext context; + android.hardware.bluetooth.audio.AudioContext audioContext; android.hardware.bluetooth.audio.IBluetoothAudioProvider.BroadcastQuality quality; int bisNumPerSubgroup; } @VintfStability parcelable LeAudioBroadcastConfigurationRequirement { - List subgroupConfigurationRequirements; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastSubgroupConfigurationRequirement[] subgroupConfigurationRequirements; } @VintfStability parcelable LeAudioSubgroupBisConfiguration { @@ -178,7 +180,7 @@ interface IBluetoothAudioProvider { } @VintfStability parcelable LeAudioBroadcastSubgroupConfiguration { - List bisConfigurations; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioSubgroupBisConfiguration[] bisConfigurations; @nullable byte[] vendorCodecConfiguration; } @VintfStability @@ -192,6 +194,6 @@ interface IBluetoothAudioProvider { android.hardware.bluetooth.audio.IBluetoothAudioProvider.Packing packing; android.hardware.bluetooth.audio.IBluetoothAudioProvider.Framing framing; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration dataPathConfiguration; - List subgroupsConfigurations; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastSubgroupConfiguration[] subgroupsConfigurations; } } diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecId.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecId.aidl index 896a712fcd..22439574d5 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecId.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecId.aidl @@ -32,7 +32,7 @@ union CodecId { /** * Vendor Codec: - * id 16 bits - Assigned by BT Sig + * id 16 bits - Vendor identifier, assigned by BT Sig [Assigned Numbers - 7.1] * codecId 16 bits - Assigned by the vendor */ parcelable Vendor { diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecInfo.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecInfo.aidl index 33f0c04307..b60d70f3c8 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecInfo.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecInfo.aidl @@ -26,9 +26,12 @@ import android.hardware.bluetooth.audio.ConfigurationFlags; @VintfStability parcelable CodecInfo { /** - * Codec identifier and human readable name + * Codec identifier */ CodecId id; + /** + * Human readable name used to present codec to the user and for debug logs + */ String name; /** @@ -92,17 +95,18 @@ parcelable CodecInfo { */ parcelable LeAudio { /** - * Channel configuration: Mono, Dual-Mono or Stereo + * List of independently supported channel modes: Mono, Dual-Mono, or + * Stereo. */ ChannelMode[] channelMode; /** - * Supported sampling frequencies, in Hz. + * List of supported sampling frequencies, in Hz. */ int[] samplingFrequencyHz; - /* - * FrameDuration in microseconds. + /** + * List of supported FrameDurations in microseconds. */ int[] frameDurationUs; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl index ceb90baf51..fa302e3918 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl @@ -23,6 +23,9 @@ package android.hardware.bluetooth.audio; */ @VintfStability union CodecSpecificCapabilitiesLtv { + /** + * Supported sampling frequencies in Hertz + */ parcelable SupportedSamplingFrequencies { const int HZ8000 = 0x0001; const int HZ11025 = 0x0002; @@ -41,10 +44,13 @@ union CodecSpecificCapabilitiesLtv { /* 16 bits wide bit mask */ int bitmask; } + /** + * Supported frame durations in microseconds + */ parcelable SupportedFrameDurations { const int US7500 = 0x01; const int US10000 = 0x02; - // Bits 2-3 are RFU + /* Bits 2-3 are RFU */ const int US7500PREFERRED = 0x10; const int US10000PREFERRED = 0x20; @@ -65,8 +71,8 @@ union CodecSpecificCapabilitiesLtv { int bitmask; } parcelable SupportedOctetsPerCodecFrame { - int minimum; - int maximum; + int min; + int max; } parcelable SupportedMaxCodecFramesPerSDU { int value; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/ConfigurationFlags.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/ConfigurationFlags.aidl index 57c8be5b00..a12af4958c 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/ConfigurationFlags.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/ConfigurationFlags.aidl @@ -22,33 +22,33 @@ package android.hardware.bluetooth.audio; @VintfStability parcelable ConfigurationFlags { const int NONE = 0x0000; - /* + /** * Set for the lossless configurations */ const int LOSSLESS = 0x0001; - /* + /** * Set for the low latency configurations */ const int LOW_LATENCY = 0x0002; - /* + /** * When set, asymmetric configuration for SINK and SOURCE can be used. * e.g. in GAMING mode stream for 32kHz and back channel for 16 kHz */ - const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0003; - /* + const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0004; + /** * Set for the spatial audio configurations */ - const int SPATIAL_AUDIO = 0x0004; - /* + const int SPATIAL_AUDIO = 0x0008; + /** * When set, BluetoothAudioProvider requests to receive ASE metadata. * In such case onSinkAseMetadataChanged() and onSourceAseMetadataChanged * will be called. */ - const int PROVIDE_ASE_METADATA = 0x0005; - /* + const int PROVIDE_ASE_METADATA = 0x0010; + /** * Set for mono microphone configurations */ - const int MONO_MIC_CONFIGURATION = 0x0006; + const int MONO_MIC_CONFIGURATION = 0x0020; int bitmask; } diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl index 8c6fe692b7..14244316d9 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -135,15 +135,32 @@ interface IBluetoothAudioProvider { @nullable A2dpConfiguration getA2dpConfiguration( in List remoteA2dpCapabilities, in A2dpConfigurationHint hint); + /** + * Predefined values for the codec priority, used by `setCodecPriority()`. + * Besides these special values, the codec priority can be set to 1 for + * the highest possible priority, or to any other 4 bytes wide integer N, + * where N has the higher priority than N + 1. + */ + const int CODEC_PRIORITY_DISABLED = -1; + const int CODEC_PRIORITY_NONE = 0; + /** * Set specific codec priority * * It should be assumed that the external module will start with all its - * integrated codecs priority 0 by default. + * integrated codecs priority set to `CODEC_PRIORITY_NONE` by default. + * + * Note: If the BT stack sets a particular codec priority to + * CODEC_PRIORITY_DISABLED, the configuration provider shal not return + * a particular codec when asked for the configuration. Other priority + * levels and the prioritization mechanism details are not specified + * and the vendor can implement them as desired. * * @param codecId: codecId - * @param priority: 0 for no priority, -1 for codec disabled, - * from 1 to N, where 1 is highest. + * @param priority: `CODEC_PRIORITY_NONE` for no priority, + * `CODEC_PRIORITY_DISABLED` for the disabled codec, or priority + * level from 1 to N, where the priority of N + 1 is lower than N, + * and N equal to 1 is the highest possible codec priority. */ void setCodecPriority(in CodecId codecId, int priority); @@ -240,7 +257,8 @@ interface IBluetoothAudioProvider { IsoDataPathConfiguration isoDataPathConfiguration; } - /* All the LeAudioAseQosConfiguration parameters are defined by the + /** + * All the LeAudioAseQosConfiguration parameters are defined by the * Bluetooth Audio Stream Control Service specification v.1.0, Sec. 5: "ASE * Control Operations". */ @@ -330,11 +348,11 @@ interface IBluetoothAudioProvider { /** * Sink ASEs configuration */ - @nullable List sinkAseConfiguration; + @nullable AseDirectionConfiguration[] sinkAseConfiguration; /** * Source ASEs configuration */ - @nullable List sourceAseConfiguration; + @nullable AseDirectionConfiguration[] sourceAseConfiguration; /** * Additional flags, used for configurations with special features */ @@ -371,11 +389,11 @@ interface IBluetoothAudioProvider { /** * Sink ASEs configuration setting */ - @nullable List sinkAseRequirement; + @nullable AseDirectionRequirement[] sinkAseRequirement; /** * Source ASEs configuration setting */ - @nullable List sourceAseRequirement; + @nullable AseDirectionRequirement[] sourceAseRequirement; /** * Additional flags, used to request configurations with special * features @@ -395,25 +413,57 @@ interface IBluetoothAudioProvider { * BluetoothStack expects to get configuration list for SINK and SOURCE * on either _ENCODING or _DECODING session. * - * @param remoteSinkAudioCapabilities List of remote sink capabilities + * Note: When the requirements are not met, either for one or both + * directions, the corresponding returned AseDirectionConfiguration + * can be set to null. Otherwise it shall contain an ASE configuration + * array with the number of configurations equal to the number of ASEs + * which should be configured by the BT stack for this particular + * direction. + * The provider shall match all the requirements set by the Bluetooth + * stack or return a null configuration for the direction when these + * requirements are not met. In response, the BT Stack may decide to + * reduce the requirements to the minimum, which is the `audioContext` + * and the `LeAudioAseConfiguration.codecConfiguration` with the + * mandatory `CodecSpecificConfigurationLtv.SamplingFrequency` and + * `CodecSpecificConfigurationLtv.AudioChannelAllocation` fields set. + * When these minimum requirements are not met as well, the Bt stack + * may set either `sinkAseRequirement` or `sourceAseRequirement`, or + * both to null. In such case the provider has the freedom of + * providing a configuration for the null-ed direction requirements or + * not for the particular audio context. However returning neither of + * the direction configurations (both nulled) is considered as an + * invalid behavior. + * If the returned configurations are not complete (either + * `qosConfiguration` or `dataPathConfiguration` are null), the BT + * stack will ask for these dynamically during the stream + * establishment, using the corresponding + * `getLeAudioAseQosConfiguration()` and + * `getLeAudioAseDatapathConfiguration()` API calls. This behavior + * is not desired as it slows down the stream establishment, and + * should be implemented only if really needed (e.g. when the provider + * needs to monitor the remote device ASE states, using the + * `onSinkAseMetadataChanged()` and `onSourceAseMetadataChanged()` + * callbacks to derive the valid QoS and/or data path configuration). + * + * @param remoteSinkAudioCapabilities Array of remote sink capabilities * supported by an active group devices. - * @param remoteSourceAudioCapabilities List of remote source capabilities + * @param remoteSourceAudioCapabilities Array of remote source capabilities * supported by an active group devices. * @param requirements ASE configuration requirements * - * @return List + * @return LeAudioAseConfigurationSetting[] */ - List getLeAudioAseConfiguration( - in @nullable List remoteSinkAudioCapabilities, - in @nullable List remoteSourceAudioCapabilities, - in List requirements); + LeAudioAseConfigurationSetting[] getLeAudioAseConfiguration( + in @nullable LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, + in @nullable LeAudioDeviceCapabilities[] remoteSourceAudioCapabilities, + in LeAudioConfigurationRequirement[] requirements); @VintfStability parcelable LeAudioAseQosConfigurationRequirement { /** * Audio Contect Type that this requirements apply to */ - AudioContext contextType; + AudioContext audioContext; /** * QoS preferences received in Codec Configured ASE state. As defined in @@ -501,6 +551,18 @@ interface IBluetoothAudioProvider { * parameters are not within the boundaries received from the remote device * after configuring the ASEs. * + * Note: When the requirements are not met, either for one or both + * directions, the corresponding configurations in the returned + * LeAudioAseQosConfigurationPair can be set to null. The minimum + * requirement can have only the `audioContext` field set and just a + * single (either sink or source) AseQosDirectionRequirement, where + * only the preferred parameter fields are not specified. The + * configuration provider should always be able to satisfy such + * requirement for all the audio contexts specified by Bluetooth SIG. + * The Bluetooth stack can reduce the requirements to the minimum, + * when more precisely specified requirements are not met by the + * configuration provider. + * * @param qosRequirement ASE QoS configurations requirements * * @return LeAudioAseQosConfigurationPair @@ -527,7 +589,7 @@ interface IBluetoothAudioProvider { * This can serve as a hint for selecting the proper configuration by * the offloader. */ - AudioContext context; + AudioContext audioContext; /** * Stream configuration, including connection handles and audio channel * allocations. @@ -545,13 +607,25 @@ interface IBluetoothAudioProvider { * @param sinkConfig - remote sink device stream configuration * @param sourceConfig - remote source device stream configuration * + * Note: The provider shall provide a data path configuration for each + * of the non-null configurations passed to this function if these + * configurations are supported by the configuration provider. + * The Bluetooth stack can set either only sink or source + * configuration if it expects just a single direction data path + * configuration. Not providing a valid data path configuration for + * the stream configured with the codec parameters provided by the + * configuration provider will be considered an invalid behavior. + * The BT stack can pass asymmetric sink and source configurations + * if `ALLOW_ASYMMETRIC_CONFIGURATIONS` flag was set by the provider + * in the `CodecInfo` information for the particular codec. + * * @return LeAudioDataPathConfigurationPair */ LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration( in @nullable StreamConfig sinkConfig, in @nullable StreamConfig sourceConfig); - /* + /** * Audio Stream Endpoint state used to report Metadata changes on the remote * device audio endpoints. */ @@ -564,14 +638,32 @@ interface IBluetoothAudioProvider { } /** - * Used to report metadata changes to the provider. This allows for a - * pseudo communication channel between the remote device and the provider, - * using the vendor specific metadata of the changing ASE state. - * It is used only when ASE is using configurations marked with the - * `PROVIDE_ASE_METADATA` flag. + * Used to report sink endpoint metadata changes to the provider. This + * allows for a pseudo communication channel between the remote device and + * the provider, using the vendor specific metadata of the changing ASE + * state. It is used only when Audio Stream Endpoint (ASE) is using + * configurations marked with the `PROVIDE_ASE_METADATA` flag. + * + * @param state - current Audio Stream Endpoint state of the remote device + * @param cigId - Coordinate Isochronous Group identifier + * @param cisId - Coordinate Isochronous Stream identifier + * @param metadata - remote sink device metadata for the given ASE */ void onSinkAseMetadataChanged( in AseState state, int cigId, int cisId, in @nullable MetadataLtv[] metadata); + + /** + * Used to report source endpoint metadata changes to the provider. This + * allows for a pseudo communication channel between the remote device and + * the provider, using the vendor specific metadata of the changing ASE + * state. It is used only when Audio Stream Endpoint (ASE) is using + * configurations marked with the `PROVIDE_ASE_METADATA` flag. + * + * @param state - current Audio Stream Endpoint state of the remote device + * @param cigId - Coordinate Isochronous Group identifier + * @param cisId - Coordinate Isochronous Stream identifier + * @param metadata - remote source device metadata for the given ASE + */ void onSourceAseMetadataChanged( in AseState state, int cigId, int cisId, in @nullable MetadataLtv[] metadata); @@ -595,7 +687,7 @@ interface IBluetoothAudioProvider { * This can serve as a hint for selecting the proper configuration by * the offloader. */ - AudioContext context; + AudioContext audioContext; /** * Streaming Broadcast Audio Quality */ @@ -614,7 +706,7 @@ interface IBluetoothAudioProvider { */ @VintfStability parcelable LeAudioBroadcastConfigurationRequirement { - List subgroupConfigurationRequirements; + LeAudioBroadcastSubgroupConfigurationRequirement[] subgroupConfigurationRequirements; } /** @@ -635,11 +727,10 @@ interface IBluetoothAudioProvider { /** * Subgroup configuration with a list of BIS configurations - * */ @VintfStability parcelable LeAudioBroadcastSubgroupConfiguration { - List bisConfigurations; + LeAudioSubgroupBisConfiguration[] bisConfigurations; /** * Vendor specific codec configuration for all the BISes inside this @@ -659,7 +750,6 @@ interface IBluetoothAudioProvider { * LeAudioBroadcastConfigurationSetting is a result of * getLeAudioBroadcastConfiguration. It is used in HCI_LE_Create_BIG command * and for creating the Broadcast Announcements. - * */ @VintfStability parcelable LeAudioBroadcastConfigurationSetting { @@ -705,18 +795,23 @@ interface IBluetoothAudioProvider { @nullable LeAudioDataPathConfiguration dataPathConfiguration; /** - * A list of subgroup configurations in the broadcast. + * An array of subgroup configurations in the broadcast. */ - List subgroupsConfigurations; + LeAudioBroadcastSubgroupConfiguration[] subgroupsConfigurations; } /** * Get Broadcast configuration. Output of this function will be used * in HCI_LE_Create_BIG (0x0068) command and also to create BIG INFO * + * @param remoteSinkAudioCapabilities - remote device sink endpoint + * capabilities + * @param requirement - requested configuration requirements + * + * @return the whole broadcast audio stream configuration */ LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration( - in @nullable List remoteSinkAudioCapabilities, + in @nullable LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in LeAudioBroadcastConfigurationRequirement requirement); /** @@ -725,7 +820,12 @@ interface IBluetoothAudioProvider { * not provided in LeAudioBroadcastConfigurationSetting. Calling this during * the broadcast audio stream establishment might slightly delay the stream * start. + * + * @param audioContext - audio stream context for the given stream map + * @param streamMap - channel map with BIS configurations + * + * @return broadcast audio stream data path configuration */ LeAudioDataPathConfiguration getLeAudioBroadcastDatapathConfiguration( - in AudioContext context, in BroadcastStreamMap[] streamMap); + in AudioContext audioContext, in BroadcastStreamMap[] streamMap); } diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/MetadataLtv.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/MetadataLtv.aidl index b0befc15b9..afe76cebea 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/MetadataLtv.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/MetadataLtv.aidl @@ -30,8 +30,9 @@ union MetadataLtv { parcelable StreamingAudioContexts { AudioContext values; } - /* This is an opaque container for passing metadata between the provider and - * the remote device. It must not be interpreted by the BT stack. + /** + * This is an opaque container for passing metadata between the provider and + * the remote device. It shall not be inspected by the BT stack. */ parcelable VendorSpecific { int companyId; diff --git a/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp b/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp index cff3b2582c..a692d84f99 100644 --- a/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp +++ b/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp @@ -157,8 +157,11 @@ ndk::ScopedAStatus LeAudioOffloadAudioProvider::setCodecPriority( bool LeAudioOffloadAudioProvider::isMatchedValidCodec(CodecId cfg_codec, CodecId req_codec) { auto priority = codec_priority_map_.find(cfg_codec); - if (priority != codec_priority_map_.end() && priority->second == -1) + if (priority != codec_priority_map_.end() && + priority->second == + LeAudioOffloadAudioProvider::CODEC_PRIORITY_DISABLED) { return false; + } return cfg_codec == req_codec; } @@ -222,8 +225,8 @@ bool LeAudioOffloadAudioProvider::isMatchedOctetsPerCodecFrame( CodecSpecificConfigurationLtv::OctetsPerCodecFrame& cfg_octets, CodecSpecificCapabilitiesLtv::SupportedOctetsPerCodecFrame& capability_octets) { - return cfg_octets.value >= capability_octets.minimum && - cfg_octets.value <= capability_octets.maximum; + return cfg_octets.value >= capability_octets.min && + cfg_octets.value <= capability_octets.max; } bool LeAudioOffloadAudioProvider::isCapabilitiesMatchedCodecConfiguration( @@ -568,7 +571,7 @@ ndk::ScopedAStatus LeAudioOffloadAudioProvider::getLeAudioAseQosConfiguration( for (auto& setting : ase_configuration_settings) { // Context matching - if (setting.audioContext != in_qosRequirement.contextType) continue; + if (setting.audioContext != in_qosRequirement.audioContext) continue; // Match configuration flags // Currently configuration flags are not populated, ignore. diff --git a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp index 85bc48ad8d..7b98634621 100644 --- a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp +++ b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp @@ -2302,8 +2302,8 @@ class BluetoothAudioProviderLeAudioOutputHardwareAidl frame_duration.bitmask = CodecSpecificCapabilitiesLtv::SupportedFrameDurations::US7500; auto octets = CodecSpecificCapabilitiesLtv::SupportedOctetsPerCodecFrame(); - octets.minimum = 0; - octets.maximum = 60; + octets.min = 0; + octets.max = 60; auto frames = CodecSpecificCapabilitiesLtv::SupportedMaxCodecFramesPerSDU(); frames.value = 2; capability.codecSpecificCapabilities = {sampling_rate, frame_duration, @@ -2567,7 +2567,7 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetQoSConfiguration) { std::vector QoSConfigurations; for (auto bitmask : all_context_bitmasks) { - requirement.contextType = GetAudioContext(bitmask); + requirement.audioContext = GetAudioContext(bitmask); IBluetoothAudioProvider::LeAudioAseQosConfigurationPair result; auto aidl_retval = audio_provider_->getLeAudioAseQosConfiguration(requirement, &result); @@ -2590,8 +2590,8 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, bool is_supported = false; for (auto bitmask : all_context_bitmasks) { - sink_requirement.context = GetAudioContext(bitmask); - source_requirement.context = GetAudioContext(bitmask); + sink_requirement.audioContext = GetAudioContext(bitmask); + source_requirement.audioContext = GetAudioContext(bitmask); IBluetoothAudioProvider::LeAudioDataPathConfigurationPair result; auto aidl_retval = audio_provider_->getLeAudioAseDatapathConfiguration( sink_requirement, source_requirement, &result); -- GitLab From 48391231a27d9eb6b1636e20c8e49edd8e654ebb Mon Sep 17 00:00:00 2001 From: Andrew Walbran Date: Tue, 16 Jan 2024 16:48:31 +0000 Subject: [PATCH 201/418] Import macros via rdroidtest for consistency. This is what we recommend in the documentation. Test: atest VtsSecretkeeperTargetTest Change-Id: I9155e8b0f8c58547cb63dd40cdbf9e2e39648d9c --- security/secretkeeper/aidl/vts/secretkeeper_test_client.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index 26fdb5688b..df916d5fa9 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -19,7 +19,7 @@ mod dice_sample; use crate::dice_sample::make_explicit_owned_dice; -use rdroidtest_macro::{ignore_if, rdroidtest}; +use rdroidtest::{ignore_if, rdroidtest}; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::SecretId::SecretId; use authgraph_vts_test as ag_vts; -- GitLab From 571cbf1b4c50efbd65ea81c63598413a28121d78 Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Tue, 16 Jan 2024 18:35:09 +0000 Subject: [PATCH 202/418] camera vts: Remove redundant capabilities fetch Bug: 299202800 Test: build Change-Id: Ia6ca1ee0fb65e357398ba62c6a787c6530b989e4 Signed-off-by: Jayant Chowdhary --- camera/provider/aidl/vts/camera_aidl_test.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index e7847a2368..eef9362037 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -316,14 +316,11 @@ void CameraAidlTest::verifyMonochromeCameraResult( void CameraAidlTest::verifyStreamUseCaseCharacteristics(const camera_metadata_t* metadata) { camera_metadata_ro_entry entry; - // Check capabilities - int retcode = - find_camera_metadata_ro_entry(metadata, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, &entry); bool hasStreamUseCaseCap = supportsStreamUseCaseCap(metadata); bool supportMandatoryUseCases = false; - retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, - &entry); + int retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, + &entry); if ((0 == retcode) && (entry.count > 0)) { supportMandatoryUseCases = true; for (size_t i = 0; i < kMandatoryUseCases.size(); i++) { -- GitLab From 3be69560e6f0a8ef6c1b967332f428a0fa414f74 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Tue, 16 Jan 2024 12:22:59 -0800 Subject: [PATCH 203/418] compatibility matrices: drop optional=true. (202404) This is the default now. Test: TH Bug: 247575800 Change-Id: I0d7156f4e526b276c47ac66a5125bf2a219b3ed8 --- .../compatibility_matrix.202404.xml | 170 +++++++++--------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/compatibility_matrices/compatibility_matrix.202404.xml b/compatibility_matrices/compatibility_matrix.202404.xml index 568bfcae0e..2080c696ad 100644 --- a/compatibility_matrices/compatibility_matrix.202404.xml +++ b/compatibility_matrices/compatibility_matrix.202404.xml @@ -1,5 +1,5 @@ - + android.hardware.audio.core 1-2 @@ -18,7 +18,7 @@ default - + android.hardware.audio.effect 1-2 @@ -26,7 +26,7 @@ default - + android.hardware.audio.sounddose 1-2 @@ -34,7 +34,7 @@ default - + android.hardware.authsecret 1 @@ -42,7 +42,7 @@ default - + android.hardware.automotive.audiocontrol 2-4 @@ -50,7 +50,7 @@ default - + android.hardware.automotive.can 1 @@ -58,7 +58,7 @@ default - + android.hardware.automotive.evs 1-2 @@ -66,7 +66,7 @@ [a-z]+/[0-9]+ - + android.hardware.macsec 1 @@ -74,7 +74,7 @@ default - + android.hardware.automotive.occupant_awareness 1 @@ -82,7 +82,7 @@ default - + android.hardware.automotive.vehicle 1-3 @@ -90,7 +90,7 @@ default - + android.hardware.automotive.remoteaccess 1-2 @@ -98,14 +98,14 @@ default - + android.hardware.automotive.ivn IIvnAndroidDevice default - + android.hardware.biometrics.face 3-4 @@ -114,7 +114,7 @@ virtual - + android.hardware.biometrics.fingerprint 3-4 @@ -123,14 +123,14 @@ virtual - + android.hardware.bluetooth IBluetoothHci default - + android.hardware.bluetooth.audio 3-4 @@ -138,7 +138,7 @@ default - + android.hardware.bluetooth.ranging 1 @@ -146,7 +146,7 @@ default - + android.hardware.bluetooth.finder 1 @@ -154,7 +154,7 @@ default - + android.hardware.bluetooth.lmp_event 1 @@ -162,14 +162,14 @@ default - + android.hardware.boot IBootControl default - + android.hardware.broadcastradio 1-2 @@ -177,7 +177,7 @@ .* - + android.hardware.camera.provider 1-3 @@ -185,14 +185,14 @@ [^/]+/[0-9]+ - + android.hardware.cas IMediaCasService default - + android.hardware.confirmationui 1 @@ -200,7 +200,7 @@ default - + android.hardware.contexthub 3 @@ -208,7 +208,7 @@ default - + android.hardware.drm 1 @@ -216,14 +216,14 @@ .* - + android.hardware.dumpstate IDumpstateDevice default - + android.hardware.gatekeeper 1 @@ -231,7 +231,7 @@ default - + android.hardware.gnss 2-4 @@ -239,7 +239,7 @@ default - + android.hardware.graphics.allocator 1-2 @@ -247,7 +247,7 @@ default - + android.hardware.graphics.composer3 3 @@ -255,7 +255,7 @@ default - + android.hardware.health 3 @@ -263,7 +263,7 @@ default - + android.hardware.health.storage 1 @@ -271,7 +271,7 @@ default - + android.hardware.identity 1-5 @@ -279,14 +279,14 @@ default - + android.hardware.net.nlinterceptor IInterceptor default - + android.hardware.oemlock 1 @@ -294,7 +294,7 @@ default - + android.hardware.ir 1 @@ -302,7 +302,7 @@ default - + android.hardware.input.processor 1 @@ -310,7 +310,7 @@ default - + android.hardware.security.secretkeeper 1 @@ -319,7 +319,7 @@ nonsecure - + android.hardware.security.keymint 1-3 @@ -328,7 +328,7 @@ strongbox - + android.hardware.security.keymint 1-3 @@ -337,7 +337,7 @@ strongbox - + android.hardware.light 2 @@ -345,7 +345,7 @@ default - + android.hardware.media.c2 1.0-2 @@ -355,7 +355,7 @@ vendor[0-9]*_software - + android.hardware.media.c2 1.0 @@ -364,7 +364,7 @@ software - + android.hardware.media.c2 1 @@ -373,7 +373,7 @@ vendor[0-9]*_software - + android.hardware.memtrack 1 @@ -381,7 +381,7 @@ default - + android.hardware.neuralnetworks 1-4 @@ -389,14 +389,14 @@ .* - + android.hardware.nfc INfc default - + android.hardware.power 5 @@ -404,7 +404,7 @@ default - + android.hardware.power.stats 2 @@ -412,7 +412,7 @@ default - + android.hardware.radio.config 3 @@ -420,7 +420,7 @@ default - + android.hardware.radio.data 3 @@ -430,7 +430,7 @@ slot3 - + android.hardware.radio.messaging 3 @@ -440,7 +440,7 @@ slot3 - + android.hardware.radio.modem 3 @@ -450,7 +450,7 @@ slot3 - + android.hardware.radio.network 3 @@ -460,7 +460,7 @@ slot3 - + android.hardware.radio.sim 3 @@ -470,7 +470,7 @@ slot3 - + android.hardware.radio.sap 1 @@ -480,7 +480,7 @@ slot3 - + android.hardware.radio.voice 3 @@ -490,7 +490,7 @@ slot3 - + android.hardware.radio.ims 2 @@ -500,7 +500,7 @@ slot3 - + android.hardware.radio.ims.media 2 @@ -508,7 +508,7 @@ default - + android.hardware.rebootescrow 1 @@ -516,7 +516,7 @@ default - + android.hardware.secure_element 1 @@ -525,7 +525,7 @@ SIM[1-9][0-9]* - + android.hardware.security.authgraph 1 @@ -533,7 +533,7 @@ nonsecure - + android.hardware.security.secureclock 1 @@ -541,7 +541,7 @@ default - + android.hardware.security.sharedsecret 1 @@ -550,7 +550,7 @@ strongbox - + android.hardware.sensors 2 @@ -558,7 +558,7 @@ default - + android.hardware.soundtrigger3 1-2 @@ -566,7 +566,7 @@ default - + android.hardware.tetheroffload 1 @@ -574,7 +574,7 @@ default - + android.hardware.thermal 2 @@ -582,7 +582,7 @@ default - + android.hardware.threadnetwork 1 @@ -590,7 +590,7 @@ chip[0-9]+ - + android.hardware.tv.hdmi.cec 1 @@ -598,7 +598,7 @@ default - + android.hardware.tv.hdmi.earc 1 @@ -606,7 +606,7 @@ default - + android.hardware.tv.hdmi.connection 1 @@ -614,7 +614,7 @@ default - + android.hardware.tv.tuner 1-2 @@ -622,7 +622,7 @@ default - + android.hardware.tv.input 1-2 @@ -630,7 +630,7 @@ default - + android.hardware.usb 1-3 @@ -638,14 +638,14 @@ default - + android.hardware.usb.gadget IUsbGadget default - + android.hardware.vibrator 1-2 @@ -653,7 +653,7 @@ default - + android.hardware.vibrator 1-2 @@ -661,7 +661,7 @@ default - + android.hardware.weaver 2 @@ -669,7 +669,7 @@ default - + android.hardware.wifi 1-2 @@ -677,7 +677,7 @@ default - + android.hardware.uwb 1 @@ -685,7 +685,7 @@ default - + android.hardware.wifi.hostapd 1-2 @@ -693,7 +693,7 @@ default - + android.hardware.wifi.supplicant 2-3 @@ -702,7 +702,7 @@ - + mapper 5.0 -- GitLab From f74a4cae395f5454ae3511704b4e55caa0d02d2a Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Tue, 16 Jan 2024 12:25:48 -0800 Subject: [PATCH 204/418] compatibility matrices: drop optional=true. (202404) This is the default now. Test: TH Bug: 247575800 Change-Id: I0d7156f4e526b276c47ac66a5125bf2a219b3ed8 Merged-In: I0d7156f4e526b276c47ac66a5125bf2a219b3ed8 --- .../compatibility_matrix.202404.xml | 172 +++++++++--------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/compatibility_matrices/compatibility_matrix.202404.xml b/compatibility_matrices/compatibility_matrix.202404.xml index 4498f901f6..490498e200 100644 --- a/compatibility_matrices/compatibility_matrix.202404.xml +++ b/compatibility_matrices/compatibility_matrix.202404.xml @@ -1,5 +1,5 @@ - + android.hardware.audio.core 1-2 @@ -18,7 +18,7 @@ default - + android.hardware.audio.effect 1-2 @@ -26,7 +26,7 @@ default - + android.hardware.audio.sounddose 1-2 @@ -34,7 +34,7 @@ default - + android.hardware.authsecret 1 @@ -42,7 +42,7 @@ default - + android.hardware.automotive.audiocontrol 2-4 @@ -50,7 +50,7 @@ default - + android.hardware.automotive.can 1 @@ -58,7 +58,7 @@ default - + android.hardware.automotive.evs 1-2 @@ -66,7 +66,7 @@ [a-z]+/[0-9]+ - + android.hardware.automotive.occupant_awareness 1 @@ -74,7 +74,7 @@ default - + android.hardware.automotive.vehicle 1-2 @@ -82,21 +82,21 @@ default - + android.hardware.automotive.remoteaccess IRemoteAccess default - + android.hardware.automotive.ivn IIvnAndroidDevice default - + android.hardware.biometrics.face 3 @@ -104,7 +104,7 @@ default - + android.hardware.biometrics.fingerprint 3 @@ -113,14 +113,14 @@ virtual - + android.hardware.bluetooth IBluetoothHci default - + android.hardware.bluetooth.audio 3-4 @@ -128,7 +128,7 @@ default - + android.hardware.bluetooth.ranging 1 @@ -136,7 +136,7 @@ default - + android.hardware.bluetooth.finder 1 @@ -144,7 +144,7 @@ default - + android.hardware.bluetooth.lmp_event 1 @@ -152,21 +152,21 @@ default - + android.hardware.boot IBootControl default - + android.hardware.broadcastradio IBroadcastRadio .* - + android.hardware.camera.provider 1-2 @@ -174,14 +174,14 @@ [^/]+/[0-9]+ - + android.hardware.cas IMediaCasService default - + android.hardware.confirmationui 1 @@ -189,7 +189,7 @@ default - + android.hardware.contexthub 2 @@ -197,7 +197,7 @@ default - + android.hardware.drm 1 @@ -205,14 +205,14 @@ .* - + android.hardware.dumpstate IDumpstateDevice default - + android.hardware.gatekeeper 1 @@ -220,7 +220,7 @@ default - + android.hardware.gnss 2-3 @@ -228,7 +228,7 @@ default - + android.hardware.graphics.allocator 1-2 @@ -236,7 +236,7 @@ default - + android.hardware.graphics.composer3 2 @@ -245,7 +245,7 @@ - + android.hardware.graphics.mapper 4.0 @@ -253,7 +253,7 @@ default - + android.hardware.health 3 @@ -261,7 +261,7 @@ default - + android.hardware.health.storage 1 @@ -269,7 +269,7 @@ default - + android.hardware.identity 1-5 @@ -277,14 +277,14 @@ default - + android.hardware.net.nlinterceptor IInterceptor default - + android.hardware.oemlock 1 @@ -292,7 +292,7 @@ default - + android.hardware.ir 1 @@ -300,7 +300,7 @@ default - + android.hardware.input.processor 1 @@ -308,7 +308,7 @@ default - + android.hardware.security.secretkeeper 1 @@ -317,7 +317,7 @@ nonsecure - + android.hardware.security.keymint 1-3 @@ -326,7 +326,7 @@ strongbox - + android.hardware.security.keymint 1-3 @@ -335,7 +335,7 @@ strongbox - + android.hardware.light 2 @@ -343,7 +343,7 @@ default - + android.hardware.media.c2 1.0-2 @@ -353,7 +353,7 @@ vendor[0-9]*_software - + android.hardware.media.c2 1.0 @@ -362,7 +362,7 @@ software - + android.hardware.media.c2 1 @@ -371,7 +371,7 @@ vendor[0-9]*_software - + android.hardware.memtrack 1 @@ -379,7 +379,7 @@ default - + android.hardware.neuralnetworks 1-4 @@ -387,14 +387,14 @@ .* - + android.hardware.nfc INfc default - + android.hardware.power 4 @@ -402,7 +402,7 @@ default - + android.hardware.power.stats 2 @@ -410,7 +410,7 @@ default - + android.hardware.radio.config 2 @@ -418,7 +418,7 @@ default - + android.hardware.radio.data 2 @@ -428,7 +428,7 @@ slot3 - + android.hardware.radio.messaging 2 @@ -438,7 +438,7 @@ slot3 - + android.hardware.radio.modem 2 @@ -448,7 +448,7 @@ slot3 - + android.hardware.radio.network 2 @@ -458,7 +458,7 @@ slot3 - + android.hardware.radio.sim 2 @@ -468,7 +468,7 @@ slot3 - + android.hardware.radio.sap 1 @@ -478,7 +478,7 @@ slot3 - + android.hardware.radio.voice 2 @@ -488,7 +488,7 @@ slot3 - + android.hardware.radio.ims 1 @@ -498,7 +498,7 @@ slot3 - + android.hardware.radio.ims.media 1 @@ -506,7 +506,7 @@ default - + android.hardware.rebootescrow 1 @@ -514,7 +514,7 @@ default - + android.hardware.secure_element 1 @@ -523,7 +523,7 @@ SIM[1-9][0-9]* - + android.hardware.security.authgraph 1 @@ -531,7 +531,7 @@ nonsecure - + android.hardware.security.secureclock 1 @@ -539,7 +539,7 @@ default - + android.hardware.security.sharedsecret 1 @@ -548,7 +548,7 @@ strongbox - + android.hardware.sensors 2 @@ -556,7 +556,7 @@ default - + android.hardware.soundtrigger3 1-2 @@ -564,7 +564,7 @@ default - + android.hardware.tetheroffload 1 @@ -572,7 +572,7 @@ default - + android.hardware.thermal 1 @@ -580,7 +580,7 @@ default - + android.hardware.threadnetwork 1 @@ -588,7 +588,7 @@ chip[0-9]+ - + android.hardware.threadnetwork 1 @@ -596,7 +596,7 @@ chip0 - + android.hardware.tv.hdmi.cec 1 @@ -604,7 +604,7 @@ default - + android.hardware.tv.hdmi.earc 1 @@ -612,7 +612,7 @@ default - + android.hardware.tv.hdmi.connection 1 @@ -620,7 +620,7 @@ default - + android.hardware.tv.tuner 1-2 @@ -628,7 +628,7 @@ default - + android.hardware.tv.input 1 @@ -636,7 +636,7 @@ default - + android.hardware.usb 1-2 @@ -644,14 +644,14 @@ default - + android.hardware.usb.gadget IUsbGadget default - + android.hardware.vibrator 1-2 @@ -659,7 +659,7 @@ default - + android.hardware.vibrator 1-2 @@ -667,7 +667,7 @@ default - + android.hardware.weaver 2 @@ -675,7 +675,7 @@ default - + android.hardware.wifi 1 @@ -683,7 +683,7 @@ default - + android.hardware.uwb 1 @@ -691,7 +691,7 @@ default - + android.hardware.wifi.hostapd 1 @@ -699,7 +699,7 @@ default - + android.hardware.wifi.supplicant 2 @@ -708,7 +708,7 @@ - + mapper 5.0 -- GitLab From d5732b6bbf25374d9e5a0f9f5e521c972f790283 Mon Sep 17 00:00:00 2001 From: Changyeon Jo Date: Sat, 22 Apr 2023 22:34:13 +0000 Subject: [PATCH 205/418] [RESTRICT AUTOMERGE] Modify CameraUseStreamConfigToDisplay Exclude logical camera devices from CameraUseStreamConfigToDisplay test case. Bug: 275049370 Test: atest VtsHalEvsV1_0TargetTest and atest VtsHalEvsV1_1TargetTest Change-Id: If6b31d94bdbffd2f4e9ab9bd5c8957ec85904187 --- .../evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp index 17e7e8de46..0f9e4686f6 100644 --- a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp +++ b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp @@ -1968,6 +1968,13 @@ TEST_P(EvsHidlTest, CameraUseStreamConfigToDisplay) { // Test each reported camera for (auto&& cam: cameraInfo) { + bool isLogicalCam = false; + getPhysicalCameraIds(cam.v1.cameraId, isLogicalCam); + if (isLogicalCam) { + LOG(INFO) << "Skip a logical device " << cam.v1.cameraId; + continue; + } + // choose a configuration that has a frame rate faster than minReqFps. Stream targetCfg = {}; const int32_t minReqFps = 15; -- GitLab From f4cfe19efd27546332b514fdbe8074fbe78f28d2 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Thu, 14 Dec 2023 11:13:59 -0800 Subject: [PATCH 206/418] Add tests for generic bcradio HAL utils methods Added unit tests for generic methods in utils library for AIDL broadcast radio HAL. Bug: 310708886 Test: atest broadcastradio_utils_aidl_test Change-Id: I968d43c82cd5f9179a63438845dfa167bc30f2cc --- .../test/BroadcastRadioUtilsTest.cpp | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp index b630a67afd..b115f75edf 100644 --- a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp @@ -33,6 +33,39 @@ constexpr uint64_t kHdStationId = 0xA0000001u; constexpr uint64_t kHdSubChannel = 1u; constexpr uint64_t kHdFrequency = 97700u; +const Properties kAmFmTunerProp = { + .maker = "makerTest", + .product = "productTest", + .supportedIdentifierTypes = {IdentifierType::AMFM_FREQUENCY_KHZ, IdentifierType::RDS_PI, + IdentifierType::HD_STATION_ID_EXT}}; + +struct GetBandTestCase { + std::string name; + int64_t frequency; + utils::FrequencyBand bandResult; +}; + +std::vector getBandTestCases() { + return std::vector( + {GetBandTestCase{.name = "unknown_low_band", + .frequency = 0, + .bandResult = utils::FrequencyBand::UNKNOWN}, + GetBandTestCase{.name = "am_lw_band", + .frequency = 30, + .bandResult = utils::FrequencyBand::AM_LW}, + GetBandTestCase{.name = "am_mw_band", + .frequency = 700, + .bandResult = utils::FrequencyBand::AM_MW}, + GetBandTestCase{.name = "am_sw_band", + .frequency = 2000, + .bandResult = utils::FrequencyBand::AM_SW}, + GetBandTestCase{ + .name = "fm_band", .frequency = 97900, .bandResult = utils::FrequencyBand::FM}, + GetBandTestCase{.name = "unknown_high_band", + .frequency = 110000, + .bandResult = utils::FrequencyBand::UNKNOWN}}); +} + struct IsValidMetadataTestCase { std::string name; Metadata metadata; @@ -87,6 +120,19 @@ std::vector getIsValidMetadataTestCases() { } } // namespace +class GetBandTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(GetBandTests, GetBandTest, testing::ValuesIn(getBandTestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(GetBandTest, GetBand) { + GetBandTestCase testcase = GetParam(); + + ASSERT_EQ(utils::getBand(testcase.frequency), testcase.bandResult); +} + class IsValidMetadataTest : public testing::TestWithParam {}; INSTANTIATE_TEST_SUITE_P(IsValidMetadataTests, IsValidMetadataTest, @@ -101,6 +147,24 @@ TEST_P(IsValidMetadataTest, IsValidMetadata) { ASSERT_EQ(utils::isValidMetadata(testParam.metadata), testParam.valid); } +TEST(BroadcastRadioUtilsTest, IsSupportedWithSupportedSelector) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_TRUE(utils::isSupported(kAmFmTunerProp, sel)); +} + +TEST(BroadcastRadioUtilsTest, IsSupportedWithUnsupportedSelector) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::isSupported(kAmFmTunerProp, sel)); +} + +TEST(BroadcastRadioUtilsTest, GetBandWithFmFrequency) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_TRUE(utils::hasId(sel, IdentifierType::AMFM_FREQUENCY_KHZ)); +} + TEST(BroadcastRadioUtilsTest, HasIdWithPrimaryIdType) { ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); @@ -152,6 +216,25 @@ TEST(BroadcastRadioUtilsTest, GetIdWithIdNotFoundAndDefaultValue) { static_cast(kFmFrequencyKHz)); } +TEST(BroadcastRadioUtilsTest, GetAllIdsWithAvailableIds) { + int64_t secondaryFrequencyKHz = kFmFrequencyKHz + 200; + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + sel.secondaryIds.push_back( + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, secondaryFrequencyKHz)); + + std::vector allIds = utils::getAllIds(sel, IdentifierType::AMFM_FREQUENCY_KHZ); + + ASSERT_EQ(allIds.size(), 2u); + EXPECT_NE(std::find(allIds.begin(), allIds.end(), kFmFrequencyKHz), allIds.end()); + EXPECT_NE(std::find(allIds.begin(), allIds.end(), secondaryFrequencyKHz), allIds.end()); +} + +TEST(BroadcastRadioUtilsTest, GetAllIdsWithIdNotFound) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::getAllIds(sel, IdentifierType::AMFM_FREQUENCY_KHZ).empty()); +} + TEST(BroadcastRadioUtilsTest, MakeIdentifier) { ProgramIdentifier id = utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz); @@ -272,4 +355,36 @@ TEST(BroadcastRadioUtilsTest, GetDabSCIdS) { ASSERT_EQ(utils::getDabSCIdS(sel), kDabSCIdS); } +TEST(BroadcastRadioUtilsTest, SatisfiesWithSatisfiedIdTypesFilter) { + ProgramFilter filter = ProgramFilter{.identifierTypes = {IdentifierType::DAB_FREQUENCY_KHZ}}; + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::satisfies(filter, sel)); +} + +TEST(BroadcastRadioUtilsTest, SatisfiesWithUnsatisfiedIdTypesFilter) { + ProgramFilter filter = ProgramFilter{.identifierTypes = {IdentifierType::DAB_FREQUENCY_KHZ}}; + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_FALSE(utils::satisfies(filter, sel)); +} + +TEST(BroadcastRadioUtilsTest, SatisfiesWithSatisfiedIdsFilter) { + ProgramFilter filter = + ProgramFilter{.identifiers = {utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, + kDabFrequencyKhz)}}; + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::satisfies(filter, sel)); +} + +TEST(BroadcastRadioUtilsTest, SatisfiesWithUnsatisfiedIdsFilter) { + ProgramFilter filter = + ProgramFilter{.identifiers = {utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, + kDabFrequencyKhz)}}; + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz + 100); + + ASSERT_FALSE(utils::satisfies(filter, sel)); +} + } // namespace aidl::android::hardware::broadcastradio -- GitLab From 92f32b0de8123064b02be1b4be34dfd975c82cef Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Tue, 16 Jan 2024 15:49:25 -0800 Subject: [PATCH 207/418] Add test mapping for bcradio HAL Bug: 320556913 Test: m -j Change-Id: I35689fdcc1377040b4e1ae5a046694b9f9d1efb6 --- broadcastradio/TEST_MAPPING | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 broadcastradio/TEST_MAPPING diff --git a/broadcastradio/TEST_MAPPING b/broadcastradio/TEST_MAPPING new file mode 100644 index 0000000000..82953312ec --- /dev/null +++ b/broadcastradio/TEST_MAPPING @@ -0,0 +1,18 @@ +{ + "postsubmit": [ + { + "name": "broadcastradio_utils_aidl_test" + }, + { + "name": "DefaultBroadcastRadioHalTestCase" + }, + { + "name": "android.hardware.broadcastradio@common-utils-tests" + } + ], + "auto-presubmit": [ + { + "name": "VtsHalBroadcastradioAidlTargetTest" + } + ] +} -- GitLab From bc2a0d5747e5e94f58265e5bf34269640365bf1b Mon Sep 17 00:00:00 2001 From: Aditi Date: Wed, 20 Dec 2023 20:42:30 -0800 Subject: [PATCH 208/418] Remove error check for REQUEST_NOT_SUPPRTED Some devices may not support LCE functionality, so remove the condition that cause failures on such devices Bug : 316570471 Change-Id: I758c82d14da4fec89b2e56f4aeda2a31438718fe Signed-off-by: Aditi --- radio/aidl/vts/radio_network_test.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/radio/aidl/vts/radio_network_test.cpp b/radio/aidl/vts/radio_network_test.cpp index 6643c1e7ff..f316a34554 100644 --- a/radio/aidl/vts/radio_network_test.cpp +++ b/radio/aidl/vts/radio_network_test.cpp @@ -733,7 +733,7 @@ TEST_P(RadioNetworkTest, setLinkCapacityReportingCriteria_invalidHysteresisDlKbp ALOGI("setLinkCapacityReportingCriteria_invalidHysteresisDlKbps, rspInfo.error = %s\n", toString(radioRsp_network->rspInfo.error).c_str()); - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::INVALID_ARGUMENTS, RadioError::REQUEST_NOT_SUPPORTED})); } /* @@ -752,7 +752,7 @@ TEST_P(RadioNetworkTest, setLinkCapacityReportingCriteria_invalidHysteresisUlKbp ALOGI("setLinkCapacityReportingCriteria_invalidHysteresisUlKbps, rspInfo.error = %s\n", toString(radioRsp_network->rspInfo.error).c_str()); - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::INVALID_ARGUMENTS, RadioError::REQUEST_NOT_SUPPORTED})); } /* @@ -770,7 +770,7 @@ TEST_P(RadioNetworkTest, setLinkCapacityReportingCriteria_emptyParams) { ALOGI("setLinkCapacityReportingCriteria_emptyParams, rspInfo.error = %s\n", toString(radioRsp_network->rspInfo.error).c_str()); - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::NONE})); + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED})); } /* -- GitLab From 2180645f10a236540a4e167502d9152712a2e5ec Mon Sep 17 00:00:00 2001 From: Changyeon Jo Date: Sat, 22 Apr 2023 22:34:13 +0000 Subject: [PATCH 209/418] [RESTRICT AUTOMERGE] Modify CameraUseStreamConfigToDisplay Exclude logical camera devices from CameraUseStreamConfigToDisplay test case. Bug: 275049370 Test: atest VtsHalEvsV1_0TargetTest and atest VtsHalEvsV1_1TargetTest Change-Id: If6b31d94bdbffd2f4e9ab9bd5c8957ec85904187 (cherry picked from commit d5732b6bbf25374d9e5a0f9f5e521c972f790283) --- .../evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp index 5688529df9..d31883edc7 100644 --- a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp +++ b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp @@ -2002,6 +2002,13 @@ TEST_P(EvsHidlTest, CameraUseStreamConfigToDisplay) { // Test each reported camera for (auto&& cam: cameraInfo) { + bool isLogicalCam = false; + getPhysicalCameraIds(cam.v1.cameraId, isLogicalCam); + if (isLogicalCam) { + LOG(INFO) << "Skip a logical device " << cam.v1.cameraId; + continue; + } + // choose a configuration that has a frame rate faster than minReqFps. Stream targetCfg = {}; const int32_t minReqFps = 15; -- GitLab From 6d9717bcb806e706a110116e7fb8080526865207 Mon Sep 17 00:00:00 2001 From: Changyeon Jo Date: Sat, 22 Apr 2023 22:34:13 +0000 Subject: [PATCH 210/418] [RESTRICT AUTOMERGE] Modify CameraUseStreamConfigToDisplay Exclude logical camera devices from CameraUseStreamConfigToDisplay test case. Bug: 275049370 Test: atest VtsHalEvsV1_0TargetTest and atest VtsHalEvsV1_1TargetTest Change-Id: If6b31d94bdbffd2f4e9ab9bd5c8957ec85904187 (cherry picked from commit d5732b6bbf25374d9e5a0f9f5e521c972f790283) --- .../evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp index 12eac0e975..f9eca5faab 100644 --- a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp +++ b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp @@ -2014,6 +2014,13 @@ TEST_P(EvsHidlTest, CameraUseStreamConfigToDisplay) { // Test each reported camera for (auto&& cam: cameraInfo) { + bool isLogicalCam = false; + getPhysicalCameraIds(cam.v1.cameraId, isLogicalCam); + if (isLogicalCam) { + LOG(INFO) << "Skip a logical device " << cam.v1.cameraId; + continue; + } + // choose a configuration that has a frame rate faster than minReqFps. Stream targetCfg = {}; const int32_t minReqFps = 15; -- GitLab From 47640027f28ee6525c6eff30e57d5fd1b36d92d7 Mon Sep 17 00:00:00 2001 From: Changyeon Jo Date: Sat, 22 Apr 2023 22:34:13 +0000 Subject: [PATCH 211/418] Modify CameraUseStreamConfigToDisplay Exclude logical camera devices from CameraUseStreamConfigToDisplay test case. Bug: 275049370 Test: atest VtsHalEvsV1_0TargetTest and atest VtsHalEvsV1_1TargetTest Change-Id: If6b31d94bdbffd2f4e9ab9bd5c8957ec85904187 (cherry picked from commit d5732b6bbf25374d9e5a0f9f5e521c972f790283) --- .../evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp index 03f256ec81..ff7f41c119 100644 --- a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp +++ b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp @@ -2010,6 +2010,13 @@ TEST_P(EvsHidlTest, CameraUseStreamConfigToDisplay) { // Test each reported camera for (auto&& cam: cameraInfo) { + bool isLogicalCam = false; + getPhysicalCameraIds(cam.v1.cameraId, isLogicalCam); + if (isLogicalCam) { + LOG(INFO) << "Skip a logical device " << cam.v1.cameraId; + continue; + } + // Request exclusive access to the EVS display sp pDisplay = pEnumerator->openDisplay(); ASSERT_NE(pDisplay, nullptr); -- GitLab From 0874626d778cf7ed415e417c382ebc10bddbcaff Mon Sep 17 00:00:00 2001 From: Deyao Ren Date: Thu, 7 Dec 2023 20:08:17 +0000 Subject: [PATCH 212/418] Create vendor apex for cuttlefish audio and audio effect Test: launch cuttlefish, CtsMediaAudioTestCases Bug: 295803971 Change-Id: I056c3e81662f90207702b47664c23b7ddd1db378 --- audio/aidl/default/Android.bp | 26 ++++++++-- audio/aidl/default/EffectConfig.cpp | 22 +++++++++ audio/aidl/default/EffectMain.cpp | 26 +++++++++- .../default/acousticEchoCanceler/Android.bp | 2 +- ...dware.audio.effect.service-aidl.example.rc | 11 ----- ...oid.hardware.audio.effect.service-aidl.xml | 7 --- ...oid.hardware.audio.service-aidl.example.rc | 15 +++++- .../android.hardware.audio.service-aidl.xml | 5 ++ .../com.android.hardware.audio/Android.bp | 49 +++++++++++++++++++ .../com.android.hardware.audio/file_contexts | 4 ++ .../com.android.hardware.audio/manifest.json | 4 ++ .../default/automaticGainControlV1/Android.bp | 2 +- .../default/automaticGainControlV2/Android.bp | 2 +- audio/aidl/default/bassboost/Android.bp | 2 +- audio/aidl/default/envReverb/Android.bp | 2 +- audio/aidl/default/equalizer/Android.bp | 2 +- audio/aidl/default/extension/Android.bp | 2 +- .../include/effectFactory-impl/EffectConfig.h | 10 ++-- .../aidl/default/noiseSuppression/Android.bp | 2 +- audio/aidl/default/presetReverb/Android.bp | 2 +- audio/aidl/default/virtualizer/Android.bp | 2 +- audio/aidl/default/volume/Android.bp | 2 +- 22 files changed, 163 insertions(+), 38 deletions(-) delete mode 100644 audio/aidl/default/android.hardware.audio.effect.service-aidl.example.rc delete mode 100644 audio/aidl/default/android.hardware.audio.effect.service-aidl.xml create mode 100644 audio/aidl/default/apex/com.android.hardware.audio/Android.bp create mode 100644 audio/aidl/default/apex/com.android.hardware.audio/file_contexts create mode 100644 audio/aidl/default/apex/com.android.hardware.audio/manifest.json diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp index 20682d6384..fe386a2c80 100644 --- a/audio/aidl/default/Android.bp +++ b/audio/aidl/default/Android.bp @@ -115,8 +115,6 @@ cc_library { cc_binary { name: "android.hardware.audio.service-aidl.example", relative_install_path: "hw", - init_rc: ["android.hardware.audio.service-aidl.example.rc"], - vintf_fragments: ["android.hardware.audio.service-aidl.xml"], defaults: [ "aidlaudioservice_defaults", "latest_android_hardware_audio_core_sounddose_ndk_shared", @@ -142,6 +140,7 @@ cc_binary { "-Wthread-safety", "-DBACKEND_NDK", ], + installable: false, //installed in apex com.android.hardware.audio } cc_test { @@ -235,10 +234,9 @@ filegroup { cc_binary { name: "android.hardware.audio.effect.service-aidl.example", relative_install_path: "hw", - init_rc: ["android.hardware.audio.effect.service-aidl.example.rc"], - vintf_fragments: ["android.hardware.audio.effect.service-aidl.xml"], defaults: ["aidlaudioeffectservice_defaults"], shared_libs: [ + "libapexsupport", "libtinyxml2", ], srcs: [ @@ -246,6 +244,7 @@ cc_binary { "EffectFactory.cpp", "EffectMain.cpp", ], + installable: false, //installed in apex com.android.hardware.audio.effect } cc_library_headers { @@ -254,3 +253,22 @@ cc_library_headers { vendor_available: true, host_supported: true, } + +prebuilt_etc { + name: "android.hardware.audio.service-aidl.example.rc", + src: "android.hardware.audio.service-aidl.example.rc", + installable: false, +} + +prebuilt_etc { + name: "android.hardware.audio.service-aidl.xml", + src: "android.hardware.audio.service-aidl.xml", + sub_dir: "vintf", + installable: false, +} + +prebuilt_etc { + name: "audio_effects_config.xml", + src: "audio_effects_config.xml", + installable: false, +} diff --git a/audio/aidl/default/EffectConfig.cpp b/audio/aidl/default/EffectConfig.cpp index 4a12f8a7df..1cc48978d3 100644 --- a/audio/aidl/default/EffectConfig.cpp +++ b/audio/aidl/default/EffectConfig.cpp @@ -24,6 +24,10 @@ #include "effectFactory-impl/EffectConfig.h" +#ifdef __ANDROID_APEX__ +#include +#endif + using aidl::android::media::audio::common::AudioSource; using aidl::android::media::audio::common::AudioStreamType; using aidl::android::media::audio::common::AudioUuid; @@ -89,6 +93,24 @@ std::vector> EffectConfig::ge } bool EffectConfig::resolveLibrary(const std::string& path, std::string* resolvedPath) { + if (__builtin_available(android AAPEXSUPPORT_API, *)) { + AApexInfo *apexInfo; + if (AApexInfo_create(&apexInfo) == AAPEXINFO_OK) { + std::string apexName(AApexInfo_getName(apexInfo)); + AApexInfo_destroy(apexInfo); + std::string candidatePath("/apex/"); + candidatePath.append(apexName).append(kEffectLibApexPath).append(path); + LOG(DEBUG) << __func__ << " effect lib path " << candidatePath; + if (access(candidatePath.c_str(), R_OK) == 0) { + *resolvedPath = std::move(candidatePath); + return true; + } + } + } else { + LOG(DEBUG) << __func__ << " libapexsupport is not supported"; + } + + // If audio effects libs are not in vendor apex, locate them in kEffectLibPath for (auto* libraryDirectory : kEffectLibPath) { std::string candidatePath = std::string(libraryDirectory) + '/' + path; if (access(candidatePath.c_str(), R_OK) == 0) { diff --git a/audio/aidl/default/EffectMain.cpp b/audio/aidl/default/EffectMain.cpp index ca81204823..ac178b6a06 100644 --- a/audio/aidl/default/EffectMain.cpp +++ b/audio/aidl/default/EffectMain.cpp @@ -21,15 +21,39 @@ #include #include +#ifdef __ANDROID_APEX__ +#include +#endif + /** Default name of effect configuration file. */ static const char* kDefaultConfigName = "audio_effects_config.xml"; +static inline std::string config_file_path() { + if (__builtin_available(android AAPEXSUPPORT_API, *)) { + AApexInfo *apexInfo; + if (AApexInfo_create(&apexInfo) == AAPEXINFO_OK) { + std::string apexName(AApexInfo_getName(apexInfo)); + AApexInfo_destroy(apexInfo); + std::string candidatePath("/apex/"); + candidatePath.append(apexName).append("/etc/").append(kDefaultConfigName); + LOG(DEBUG) << __func__ << " effect lib path " << candidatePath; + if (access(candidatePath.c_str(), R_OK) == 0) { + return std::move(candidatePath); + } + } + } else { + LOG(DEBUG) << __func__ << " libapexsupport is not supported"; + } + LOG(DEBUG) << __func__ << ": Unable to resolve config file path in APEX"; + return android::audio_find_readable_configuration_file(kDefaultConfigName); +} + int main() { // This is a debug implementation, always enable debug logging. android::base::SetMinimumLogSeverity(::android::base::DEBUG); ABinderProcess_setThreadPoolMaxThreadCount(0); - auto configFile = android::audio_find_readable_configuration_file(kDefaultConfigName); + auto configFile = config_file_path(); if (configFile == "") { LOG(ERROR) << __func__ << ": config file " << kDefaultConfigName << " not found!"; return EXIT_FAILURE; diff --git a/audio/aidl/default/acousticEchoCanceler/Android.bp b/audio/aidl/default/acousticEchoCanceler/Android.bp index 35d4a56e21..d0404cd57b 100644 --- a/audio/aidl/default/acousticEchoCanceler/Android.bp +++ b/audio/aidl/default/acousticEchoCanceler/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/android.hardware.audio.effect.service-aidl.example.rc b/audio/aidl/default/android.hardware.audio.effect.service-aidl.example.rc deleted file mode 100644 index 5f859a1994..0000000000 --- a/audio/aidl/default/android.hardware.audio.effect.service-aidl.example.rc +++ /dev/null @@ -1,11 +0,0 @@ -service vendor.audio-effect-hal-aidl /vendor/bin/hw/android.hardware.audio.effect.service-aidl.example - class hal - user audioserver - # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) - group audio media - capabilities BLOCK_SUSPEND - # setting RLIMIT_RTPRIO allows binder RT priority inheritance - rlimit rtprio 10 10 - ioprio rt 4 - task_profiles ProcessCapacityHigh HighPerformance - onrestart restart audioserver diff --git a/audio/aidl/default/android.hardware.audio.effect.service-aidl.xml b/audio/aidl/default/android.hardware.audio.effect.service-aidl.xml deleted file mode 100644 index 05a825db1b..0000000000 --- a/audio/aidl/default/android.hardware.audio.effect.service-aidl.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - android.hardware.audio.effect - 2 - IFactory/default - - diff --git a/audio/aidl/default/android.hardware.audio.service-aidl.example.rc b/audio/aidl/default/android.hardware.audio.service-aidl.example.rc index 757976fbc3..c3e19ba28a 100644 --- a/audio/aidl/default/android.hardware.audio.service-aidl.example.rc +++ b/audio/aidl/default/android.hardware.audio.service-aidl.example.rc @@ -1,4 +1,5 @@ -service vendor.audio-hal-aidl /vendor/bin/hw/android.hardware.audio.service-aidl.example + +service vendor.audio-hal-aidl /apex/com.android.hardware.audio/bin/hw/android.hardware.audio.service-aidl.example class hal user audioserver # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) @@ -9,3 +10,15 @@ service vendor.audio-hal-aidl /vendor/bin/hw/android.hardware.audio.service-aidl ioprio rt 4 task_profiles ProcessCapacityHigh HighPerformance onrestart restart audioserver + +service vendor.audio-effect-hal-aidl /apex/com.android.hardware.audio/bin/hw/android.hardware.audio.effect.service-aidl.example + class hal + user audioserver + # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) + group audio media + capabilities BLOCK_SUSPEND + # setting RLIMIT_RTPRIO allows binder RT priority inheritance + rlimit rtprio 10 10 + ioprio rt 4 + task_profiles ProcessCapacityHigh HighPerformance + onrestart restart audioserver \ No newline at end of file diff --git a/audio/aidl/default/android.hardware.audio.service-aidl.xml b/audio/aidl/default/android.hardware.audio.service-aidl.xml index 2a518763f1..5278e4f147 100644 --- a/audio/aidl/default/android.hardware.audio.service-aidl.xml +++ b/audio/aidl/default/android.hardware.audio.service-aidl.xml @@ -31,4 +31,9 @@ IModule/usb --> + + android.hardware.audio.effect + 2 + IFactory/default + diff --git a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp new file mode 100644 index 0000000000..da84412290 --- /dev/null +++ b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp @@ -0,0 +1,49 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +apex { + name: "com.android.hardware.audio", + manifest: "manifest.json", + file_contexts: "file_contexts", + key: "com.android.hardware.key", + certificate: ":com.android.hardware.certificate", + updatable: false, + vendor: true, + + binaries: [ + "android.hardware.audio.service-aidl.example", + "android.hardware.audio.effect.service-aidl.example", + ], + native_shared_libs: [ + "libaecsw", + "libagc1sw", + "libagc2sw", + "libbassboostsw", + "libbundleaidl", + "libdownmixaidl", + "libdynamicsprocessingaidl", + "libenvreverbsw", + "libequalizersw", + "libextensioneffect", + "libhapticgeneratoraidl", + "libloudnessenhanceraidl", + "libnssw", + "libpreprocessingaidl", + "libpresetreverbsw", + "libreverbaidl", + "libvirtualizersw", + "libvisualizeraidl", + "libvolumesw", + ], + prebuilts: [ + "android.hardware.audio.service-aidl.example.rc", + "android.hardware.audio.service-aidl.xml", + "audio_effects_config.xml", + ], +} diff --git a/audio/aidl/default/apex/com.android.hardware.audio/file_contexts b/audio/aidl/default/apex/com.android.hardware.audio/file_contexts new file mode 100644 index 0000000000..41a6ada761 --- /dev/null +++ b/audio/aidl/default/apex/com.android.hardware.audio/file_contexts @@ -0,0 +1,4 @@ +(/.*)? u:object_r:vendor_file:s0 +/etc(/.*)? u:object_r:vendor_configs_file:s0 +/bin/hw/android\.hardware\.audio\.service-aidl\.example u:object_r:hal_audio_default_exec:s0 +/bin/hw/android\.hardware\.audio\.effect\.service-aidl\.example u:object_r:hal_audio_default_exec:s0 \ No newline at end of file diff --git a/audio/aidl/default/apex/com.android.hardware.audio/manifest.json b/audio/aidl/default/apex/com.android.hardware.audio/manifest.json new file mode 100644 index 0000000000..42a2368a21 --- /dev/null +++ b/audio/aidl/default/apex/com.android.hardware.audio/manifest.json @@ -0,0 +1,4 @@ +{ + "name": "com.android.hardware.audio", + "version": 1 +} diff --git a/audio/aidl/default/automaticGainControlV1/Android.bp b/audio/aidl/default/automaticGainControlV1/Android.bp index 05c2c543d7..7b753ebed8 100644 --- a/audio/aidl/default/automaticGainControlV1/Android.bp +++ b/audio/aidl/default/automaticGainControlV1/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/automaticGainControlV2/Android.bp b/audio/aidl/default/automaticGainControlV2/Android.bp index dedc555a82..ea0515270e 100644 --- a/audio/aidl/default/automaticGainControlV2/Android.bp +++ b/audio/aidl/default/automaticGainControlV2/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/bassboost/Android.bp b/audio/aidl/default/bassboost/Android.bp index 9f4777025c..8f53eaed4b 100644 --- a/audio/aidl/default/bassboost/Android.bp +++ b/audio/aidl/default/bassboost/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/envReverb/Android.bp b/audio/aidl/default/envReverb/Android.bp index 2443c2ac3a..23495f1cb2 100644 --- a/audio/aidl/default/envReverb/Android.bp +++ b/audio/aidl/default/envReverb/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/equalizer/Android.bp b/audio/aidl/default/equalizer/Android.bp index 42708d1253..1d29d40b86 100644 --- a/audio/aidl/default/equalizer/Android.bp +++ b/audio/aidl/default/equalizer/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/extension/Android.bp b/audio/aidl/default/extension/Android.bp index 5fee479f93..2b21e3e942 100644 --- a/audio/aidl/default/extension/Android.bp +++ b/audio/aidl/default/extension/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/include/effectFactory-impl/EffectConfig.h b/audio/aidl/default/include/effectFactory-impl/EffectConfig.h index 344846a4ca..7456b99999 100644 --- a/audio/aidl/default/include/effectFactory-impl/EffectConfig.h +++ b/audio/aidl/default/include/effectFactory-impl/EffectConfig.h @@ -64,12 +64,16 @@ class EffectConfig { const ProcessingLibrariesMap& getProcessingMap() const; private: - static constexpr const char* kEffectLibPath[] = #ifdef __LP64__ - {"/odm/lib64/soundfx", "/vendor/lib64/soundfx", "/system/lib64/soundfx"}; +#define SOUND_FX_PATH "/lib64/soundfx/" #else - {"/odm/lib/soundfx", "/vendor/lib/soundfx", "/system/lib/soundfx"}; +#define SOUND_FX_PATH "/lib/soundfx/" #endif + static constexpr const char* kEffectLibPath[] = + { "/odm" SOUND_FX_PATH, "/vendor" SOUND_FX_PATH, "/system" SOUND_FX_PATH }; + + static constexpr const char* kEffectLibApexPath = SOUND_FX_PATH; +#undef SOUND_FX_PATH int mSkippedElements; /* Parsed Libraries result */ diff --git a/audio/aidl/default/noiseSuppression/Android.bp b/audio/aidl/default/noiseSuppression/Android.bp index f24ded6fac..5729571318 100644 --- a/audio/aidl/default/noiseSuppression/Android.bp +++ b/audio/aidl/default/noiseSuppression/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/presetReverb/Android.bp b/audio/aidl/default/presetReverb/Android.bp index d6001410e9..2a2ae758bf 100644 --- a/audio/aidl/default/presetReverb/Android.bp +++ b/audio/aidl/default/presetReverb/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/virtualizer/Android.bp b/audio/aidl/default/virtualizer/Android.bp index 1c41bb5dd9..5d59f7c37f 100644 --- a/audio/aidl/default/virtualizer/Android.bp +++ b/audio/aidl/default/virtualizer/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/volume/Android.bp b/audio/aidl/default/volume/Android.bp index f1a051f522..8d5401a21f 100644 --- a/audio/aidl/default/volume/Android.bp +++ b/audio/aidl/default/volume/Android.bp @@ -34,6 +34,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } -- GitLab From 17f8882d78bc9a922ee9b9deada3462e7909623d Mon Sep 17 00:00:00 2001 From: Alisher Alikhodjaev Date: Tue, 9 Jan 2024 13:16:11 -0800 Subject: [PATCH 213/418] Per NCI spec there is no need to wait for credits Bug: 312911587 Test: no regresions Change-Id: Ie7952b6618cd2b191b85904b3c1d4c544ba85618 (cherry picked from commit 93f1bf2bd357b709317ed08784727f405c7e71da) --- nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp index 4d997e6569..b36735f768 100644 --- a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp +++ b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp @@ -296,12 +296,6 @@ TEST_P(NfcHidlTest, WriteInvalidAndThenValidCommand) { res = nfc_cb_->WaitForCallback(kCallbackNameSendData); EXPECT_TRUE(res.no_timeout); EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); - if (nci_version == NCI_VERSION_2 && res.args->last_data_.size() > 13 && - res.args->last_data_[13] == 0x00) { - // Wait for CORE_CONN_CREDITS_NTF - res = nfc_cb_->WaitForCallback(kCallbackNameSendData); - EXPECT_TRUE(res.no_timeout); - } // Send an Error Data Packet cmd = INVALID_COMMAND; data = cmd; -- GitLab From b95093d6406f95ee4a3300a058a3b909fd459c72 Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Thu, 11 Jan 2024 19:26:57 +0000 Subject: [PATCH 214/418] Secretkeeper: add test CLI Allows testing of secret persistence across reboot (and non-persistence across factory reset). Move some test code into a library for re-use. Test: Manual Change-Id: I23772692d2de652f6d4a8e5659186bd9c1c06b72 --- security/secretkeeper/aidl/vts/Android.bp | 43 ++- security/secretkeeper/aidl/vts/lib.rs | 34 ++ .../secretkeeper/aidl/vts/secretkeeper_cli.rs | 347 ++++++++++++++++++ .../aidl/vts/secretkeeper_test_client.rs | 24 +- 4 files changed, 428 insertions(+), 20 deletions(-) create mode 100644 security/secretkeeper/aidl/vts/lib.rs create mode 100644 security/secretkeeper/aidl/vts/secretkeeper_cli.rs diff --git a/security/secretkeeper/aidl/vts/Android.bp b/security/secretkeeper/aidl/vts/Android.bp index 720b8a2479..9d1701a303 100644 --- a/security/secretkeeper/aidl/vts/Android.bp +++ b/security/secretkeeper/aidl/vts/Android.bp @@ -18,6 +18,19 @@ package { default_applicable_licenses: ["Android-Apache-2.0"], } +rust_library { + name: "libsecretkeeper_test", + crate_name: "secretkeeper_test", + srcs: ["lib.rs"], + rustlibs: [ + "libciborium", + "libcoset", + "libdiced_open_dice", + "liblog_rust", + "libsecretkeeper_client", + ], +} + rust_test { name: "VtsSecretkeeperTargetTest", srcs: ["secretkeeper_test_client.rs"], @@ -30,20 +43,40 @@ rust_test { ], test_config: "AndroidTest.xml", rustlibs: [ - "libdiced_open_dice", + "android.hardware.security.secretkeeper-V1-rust", + "libauthgraph_boringssl", + "libauthgraph_core", + "libauthgraph_vts_test", + "libbinder_rs", + "libciborium", + "libcoset", "libdice_policy", + "liblog_rust", "libsecretkeeper_client", "libsecretkeeper_comm_nostd", "libsecretkeeper_core_nostd", + "libsecretkeeper_test", + ], + require_root: true, +} + +rust_binary { + name: "secretkeeper_cli", + srcs: ["secretkeeper_cli.rs"], + lints: "android", + rlibs: [ "android.hardware.security.secretkeeper-V1-rust", + "libanyhow", "libauthgraph_boringssl", "libauthgraph_core", - "libcoset", - "libauthgraph_vts_test", "libbinder_rs", - "libciborium", + "libclap", "libcoset", + "libdice_policy", + "libhex", "liblog_rust", + "libsecretkeeper_client", + "libsecretkeeper_comm_nostd", + "libsecretkeeper_test", ], - require_root: true, } diff --git a/security/secretkeeper/aidl/vts/lib.rs b/security/secretkeeper/aidl/vts/lib.rs new file mode 100644 index 0000000000..9f98165bd3 --- /dev/null +++ b/security/secretkeeper/aidl/vts/lib.rs @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//! Test helper functions. + +pub mod dice_sample; + +// Constants for DICE map keys. + +/// Map key for authority hash. +pub const AUTHORITY_HASH: i64 = -4670549; +/// Map key for config descriptor. +pub const CONFIG_DESC: i64 = -4670548; +/// Map key for component name. +pub const COMPONENT_NAME: i64 = -70002; +/// Map key for component version. +pub const COMPONENT_VERSION: i64 = -70003; +/// Map key for security version. +pub const SECURITY_VERSION: i64 = -70005; +/// Map key for mode. +pub const MODE: i64 = -4670551; diff --git a/security/secretkeeper/aidl/vts/secretkeeper_cli.rs b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs new file mode 100644 index 0000000000..5f0848252b --- /dev/null +++ b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs @@ -0,0 +1,347 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//! Command line test tool for interacting with Secretkeeper. + +use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::{ + ISecretkeeper::ISecretkeeper, SecretId::SecretId, +}; +use anyhow::{anyhow, bail, Context, Result}; +use authgraph_boringssl::BoringSha256; +use authgraph_core::traits::Sha256; +use clap::{Args, Parser, Subcommand}; +use coset::CborSerializable; +use dice_policy::{ConstraintSpec, ConstraintType, DicePolicy, MissingAction}; +use secretkeeper_client::{dice::OwnedDiceArtifactsWithExplicitKey, SkSession}; +use secretkeeper_comm::data_types::{ + error::SecretkeeperError, + packet::{ResponsePacket, ResponseType}, + request::Request, + request_response_impl::{GetSecretRequest, GetSecretResponse, StoreSecretRequest}, + response::Response, + {Id, Secret}, +}; +use secretkeeper_test::{ + dice_sample::make_explicit_owned_dice, AUTHORITY_HASH, CONFIG_DESC, MODE, SECURITY_VERSION, +}; +use std::io::Write; + +#[derive(Parser, Debug)] +#[command(about = "Interact with Secretkeeper HAL")] +#[command(version = "0.1")] +#[command(propagate_version = true)] +struct Cli { + #[command(subcommand)] + command: Command, + + /// Secretkeeper instance to connect to. + #[arg(long, short)] + instance: Option, + + /// Security version in leaf DICE node. + #[clap(default_value_t = 100)] + #[arg(long, short = 'v')] + dice_version: u64, + + /// Show hex versions of secrets and their IDs. + #[clap(default_value_t = false)] + #[arg(long, short = 'v')] + hex: bool, +} + +#[derive(Subcommand, Debug)] +enum Command { + /// Store a secret value. + Store(StoreArgs), + /// Get a secret value. + Get(GetArgs), + /// Delete a secret value. + Delete(DeleteArgs), + /// Delete all secret values. + DeleteAll(DeleteAllArgs), +} + +#[derive(Args, Debug)] +struct StoreArgs { + /// Identifier for the secret, as either a short (< 32 byte) string, or as 32 bytes of hex. + id: String, + /// Value to use as the secret value. If specified as 32 bytes of hex, the decoded value + /// will be used as-is; otherwise, a string (less than 31 bytes in length) will be encoded + /// as the secret. + value: String, +} + +#[derive(Args, Debug)] +struct GetArgs { + /// Identifier for the secret, as either a short (< 32 byte) string, or as 32 bytes of hex. + id: String, +} + +#[derive(Args, Debug)] +struct DeleteArgs { + /// Identifier for the secret, as either a short (< 32 byte) string, or as 32 bytes of hex. + id: String, +} + +#[derive(Args, Debug)] +struct DeleteAllArgs { + /// Confirm deletion of all secrets. + yes: bool, +} + +const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; + +/// Secretkeeper client information. +struct SkClient { + sk: binder::Strong, + session: SkSession, + dice_artifacts: OwnedDiceArtifactsWithExplicitKey, +} + +impl SkClient { + fn new(instance: &str, dice_artifacts: OwnedDiceArtifactsWithExplicitKey) -> Self { + let sk: binder::Strong = + binder::get_interface(&format!("{SECRETKEEPER_SERVICE}/{instance}")).unwrap(); + let session = SkSession::new(sk.clone(), &dice_artifacts).unwrap(); + Self { sk, session, dice_artifacts } + } + + fn secret_management_request(&mut self, req_data: &[u8]) -> Result> { + self.session + .secret_management_request(req_data) + .map_err(|e| anyhow!("secret management: {e:?}")) + } + + /// Construct a sealing policy on the DICE chain with constraints: + /// 1. `ExactMatch` on `AUTHORITY_HASH` (non-optional). + /// 2. `ExactMatch` on `MODE` (non-optional). + /// 3. `GreaterOrEqual` on `SECURITY_VERSION` (optional). + fn sealing_policy(&self) -> Result> { + let dice = + self.dice_artifacts.explicit_key_dice_chain().context("extract explicit DICE chain")?; + + let constraint_spec = [ + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![AUTHORITY_HASH], + MissingAction::Fail, + ), + ConstraintSpec::new(ConstraintType::ExactMatch, vec![MODE], MissingAction::Fail), + ConstraintSpec::new( + ConstraintType::GreaterOrEqual, + vec![CONFIG_DESC, SECURITY_VERSION], + MissingAction::Ignore, + ), + ]; + DicePolicy::from_dice_chain(dice, &constraint_spec) + .unwrap() + .to_vec() + .context("serialize DICE policy") + } + + fn store(&mut self, id: &Id, secret: &Secret) -> Result<()> { + let store_request = StoreSecretRequest { + id: id.clone(), + secret: secret.clone(), + sealing_policy: self.sealing_policy().context("build sealing policy")?, + }; + let store_request = + store_request.serialize_to_packet().to_vec().context("serialize StoreSecretRequest")?; + + let store_response = self.secret_management_request(&store_request)?; + let store_response = + ResponsePacket::from_slice(&store_response).context("deserialize ResponsePacket")?; + let response_type = store_response.response_type().unwrap(); + if response_type == ResponseType::Success { + Ok(()) + } else { + let err = *SecretkeeperError::deserialize_from_packet(store_response).unwrap(); + Err(anyhow!("STORE failed: {err:?}")) + } + } + + fn get(&mut self, id: &Id) -> Result> { + let get_request = GetSecretRequest { id: id.clone(), updated_sealing_policy: None } + .serialize_to_packet() + .to_vec() + .context("serialize GetSecretRequest")?; + + let get_response = self.secret_management_request(&get_request).context("secret mgmt")?; + let get_response = + ResponsePacket::from_slice(&get_response).context("deserialize ResponsePacket")?; + + if get_response.response_type().unwrap() == ResponseType::Success { + let get_response = *GetSecretResponse::deserialize_from_packet(get_response).unwrap(); + Ok(Some(Secret(get_response.secret.0))) + } else { + // Only expect a not-found failure. + let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); + if err == SecretkeeperError::EntryNotFound { + Ok(None) + } else { + Err(anyhow!("GET failed: {err:?}")) + } + } + } + + /// Helper method to delete secrets. + fn delete(&self, ids: &[&Id]) -> Result<()> { + let ids: Vec = ids.iter().map(|id| SecretId { id: id.0 }).collect(); + self.sk.deleteIds(&ids).context("deleteIds") + } + + /// Helper method to delete everything. + fn delete_all(&self) -> Result<()> { + self.sk.deleteAll().context("deleteAll") + } +} + +/// Convert a string input into an `Id`. Input can be 64 bytes of hex, or a string +/// that will be hashed to give the `Id` value. Returns the `Id` and a display string. +fn string_to_id(s: &str, show_hex: bool) -> (Id, String) { + if let Ok(data) = hex::decode(s) { + if data.len() == 64 { + // Assume something that parses as 64 bytes of hex is it. + return (Id(data.try_into().unwrap()), s.to_string().to_lowercase()); + } + } + // Create a secret ID by repeating the SHA-256 hash of the string twice. + let hash = BoringSha256.compute_sha256(s.as_bytes()).unwrap(); + let mut id = Id([0; 64]); + id.0[..32].copy_from_slice(&hash); + id.0[32..].copy_from_slice(&hash); + if show_hex { + let hex_id = hex::encode(&id.0); + (id, format!("'{s}' (as {hex_id})")) + } else { + (id, format!("'{s}'")) + } +} + +/// Convert a string input into a `Secret`. Input can be 32 bytes of hex, or a short string +/// that will be encoded as the `Secret` value. Returns the `Secret` and a display string. +fn value_to_secret(s: &str, show_hex: bool) -> Result<(Secret, String)> { + if let Ok(data) = hex::decode(s) { + if data.len() == 32 { + // Assume something that parses as 32 bytes of hex is it. + return Ok((Secret(data.try_into().unwrap()), s.to_string().to_lowercase())); + } + } + let data = s.as_bytes(); + if data.len() > 31 { + return Err(anyhow!("secret too long")); + } + let mut secret = Secret([0; 32]); + secret.0[0] = data.len() as u8; + secret.0[1..1 + data.len()].copy_from_slice(data); + Ok(if show_hex { + let hex_secret = hex::encode(&secret.0); + (secret, format!("'{s}' (as {hex_secret})")) + } else { + (secret, format!("'{s}'")) + }) +} + +/// Convert a `Secret` into a displayable string. If the secret looks like an encoded +/// string, show that, otherwise show the value in hex. +fn secret_to_value_display(secret: &Secret, show_hex: bool) -> String { + let hex = hex::encode(&secret.0); + secret_to_value(secret) + .map(|s| if show_hex { format!("'{s}' (from {hex})") } else { format!("'{s}'") }) + .unwrap_or_else(|_e| format!("{hex}")) +} + +/// Attempt to convert a `Secret` back to a string. +fn secret_to_value(secret: &Secret) -> Result { + let len = secret.0[0] as usize; + if len > 31 { + return Err(anyhow!("too long")); + } + std::str::from_utf8(&secret.0[1..1 + len]).map(|s| s.to_string()).context("not UTF-8 string") +} + +fn main() -> Result<()> { + let cli = Cli::parse(); + + // Figure out which Secretkeeper instance is desired, and connect to it. + let instance = if let Some(instance) = &cli.instance { + // Explicitly specified. + instance.clone() + } else { + // If there's only one instance, use that. + let instances: Vec = binder::get_declared_instances(SECRETKEEPER_SERVICE) + .unwrap_or_default() + .into_iter() + .collect(); + match instances.len() { + 0 => bail!("No Secretkeeper instances available on device!"), + 1 => instances[0].clone(), + _ => { + bail!( + concat!( + "Multiple Secretkeeper instances available on device: {}\n", + "Use --instance to specify one." + ), + instances.join(", ") + ); + } + } + }; + let dice = make_explicit_owned_dice(cli.dice_version); + let mut sk_client = SkClient::new(&instance, dice); + + match cli.command { + Command::Get(args) => { + let (id, display_id) = string_to_id(&args.id, cli.hex); + print!("GET key {display_id}: "); + match sk_client.get(&id).context("GET") { + Ok(None) => println!("not found"), + Ok(Some(s)) => println!("{}", secret_to_value_display(&s, cli.hex)), + Err(e) => { + println!("failed!"); + return Err(e); + } + } + } + Command::Store(args) => { + let (id, display_id) = string_to_id(&args.id, cli.hex); + let (secret, display_secret) = value_to_secret(&args.value, cli.hex)?; + println!("STORE key {display_id}: {display_secret}"); + sk_client.store(&id, &secret).context("STORE")?; + } + Command::Delete(args) => { + let (id, display_id) = string_to_id(&args.id, cli.hex); + println!("DELETE key {display_id}"); + sk_client.delete(&[&id]).context("DELETE")?; + } + Command::DeleteAll(args) => { + if !args.yes { + // Request confirmation. + println!("Confirm delete all secrets: [y/N]"); + let _ = std::io::stdout().flush(); + let mut input = String::new(); + std::io::stdin().read_line(&mut input)?; + let c = input.chars().next(); + if c != Some('y') && c != Some('Y') { + bail!("DELETE_ALL not confirmed"); + } + } + println!("DELETE_ALL"); + sk_client.delete_all().context("DELETE_ALL")?; + } + } + Ok(()) +} diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index df916d5fa9..8c33f0412d 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -14,12 +14,6 @@ * limitations under the License. */ -#![cfg(test)] -mod dice_sample; - -use crate::dice_sample::make_explicit_owned_dice; - -use rdroidtest::{ignore_if, rdroidtest}; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::SecretId::SecretId; use authgraph_vts_test as ag_vts; @@ -27,6 +21,7 @@ use authgraph_boringssl as boring; use authgraph_core::key; use coset::{CborSerializable, CoseEncrypt0}; use dice_policy::{ConstraintSpec, ConstraintType, DicePolicy, MissingAction}; +use rdroidtest::{ignore_if, rdroidtest}; use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; use secretkeeper_client::SkSession; use secretkeeper_core::cipher; @@ -38,6 +33,10 @@ use secretkeeper_comm::data_types::request_response_impl::{ use secretkeeper_comm::data_types::{Id, Secret, SeqNum}; use secretkeeper_comm::data_types::response::Response; use secretkeeper_comm::data_types::packet::{ResponsePacket, ResponseType}; +use secretkeeper_test::{ + AUTHORITY_HASH, MODE, CONFIG_DESC, SECURITY_VERSION, + dice_sample::make_explicit_owned_dice +}; const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; const CURRENT_VERSION: u64 = 1; @@ -246,20 +245,15 @@ fn assert_entry_not_found(res: Result) { /// Construct a sealing policy on the dice chain. This method uses the following set of /// constraints which are compatible with sample DICE chains used in VTS. /// 1. ExactMatch on AUTHORITY_HASH (non-optional). -/// 2. ExactMatch on KEY_MODE (non-optional). +/// 2. ExactMatch on MODE (non-optional). /// 3. GreaterOrEqual on SECURITY_VERSION (optional). fn sealing_policy(dice: &[u8]) -> Vec { - let authority_hash: i64 = -4670549; - let key_mode: i64 = -4670551; - let config_desc: i64 = -4670548; - let security_version: i64 = -70005; - let constraint_spec = [ - ConstraintSpec::new(ConstraintType::ExactMatch, vec![authority_hash], MissingAction::Fail), - ConstraintSpec::new(ConstraintType::ExactMatch, vec![key_mode], MissingAction::Fail), + ConstraintSpec::new(ConstraintType::ExactMatch, vec![AUTHORITY_HASH], MissingAction::Fail), + ConstraintSpec::new(ConstraintType::ExactMatch, vec![MODE], MissingAction::Fail), ConstraintSpec::new( ConstraintType::GreaterOrEqual, - vec![config_desc, security_version], + vec![CONFIG_DESC, SECURITY_VERSION], MissingAction::Ignore, ), ]; -- GitLab From aa0c71e5782e6afa27df44766dc1c6fb4b0be3e2 Mon Sep 17 00:00:00 2001 From: Gil Cukierman Date: Wed, 17 Jan 2024 17:44:30 +0000 Subject: [PATCH 215/418] Add default member initializers for bool and int Bug: 310650389 Change-Id: I1742bbc9b894b2cd379695d6b197c80f4054e395 Test: atest VtsHalRadioTargetTest --- radio/aidl/vts/radio_network_utils.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/radio/aidl/vts/radio_network_utils.h b/radio/aidl/vts/radio_network_utils.h index 470ee7374b..ad530eb36b 100644 --- a/radio/aidl/vts/radio_network_utils.h +++ b/radio/aidl/vts/radio_network_utils.h @@ -38,16 +38,16 @@ class RadioNetworkResponse : public BnRadioNetworkResponse { RadioResponseInfo rspInfo; std::vector radioBandModes; std::vector networkInfos; - bool isNrDualConnectivityEnabled; - int networkTypeBitmapResponse; + bool isNrDualConnectivityEnabled = false; + int networkTypeBitmapResponse = 0; RegStateResult voiceRegResp; RegStateResult dataRegResp; CellIdentity barringCellIdentity; std::vector barringInfoList; UsageSetting usageSetting; std::vector specifiers; - bool isCellularIdentifierTransparencyEnabled; - bool isSecurityAlgorithmsUpdatedEnabled; + bool isCellularIdentifierTransparencyEnabled = false; + bool isSecurityAlgorithmsUpdatedEnabled = false; virtual ndk::ScopedAStatus acknowledgeRequest(int32_t serial) override; -- GitLab From d1b814885f66f47f0993a0fd698640d014f78e2f Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Thu, 14 Dec 2023 11:13:59 -0800 Subject: [PATCH 216/418] Add tests for tunesTo in AIDL bcradio HAL utils Added unit tests for tunesTo method in utils library for AIDL broadcast radio HAL. Bug: 310708886 Test: atest broadcastradio_utils_aidl_test Change-Id: Id69467fdb873cd42f8a875bbd26155bb261d9481 --- .../test/BroadcastRadioUtilsTest.cpp | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp index b115f75edf..44f4d88059 100644 --- a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp @@ -355,6 +355,70 @@ TEST(BroadcastRadioUtilsTest, GetDabSCIdS) { ASSERT_EQ(utils::getDabSCIdS(sel), kDabSCIdS); } +TEST(BroadcastRadioUtilsTest, TunesToWithTheSameHdSelector) { + ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + ProgramSelector selTarget = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToAmFmSelectorWithDifferentSubChannels) { + ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + ProgramSelector selTarget = utils::makeSelectorAmfm(kHdFrequency); + + ASSERT_FALSE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToMainHdChannelWithDifferentSubChannels) { + ProgramSelector sel = utils::makeSelectorAmfm(kHdFrequency); + ProgramSelector selTarget = + utils::makeSelectorHd(kHdStationId, /* subChannel= */ 0, kHdFrequency); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithTheSameAmFmSelector) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + ProgramSelector selTarget = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithDifferentFrequencies) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + ProgramSelector selTarget = utils::makeSelectorAmfm(kFmFrequencyKHz + 200); + + ASSERT_FALSE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithTheSameDabSelector) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector selTarget = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithDabSelectorOfDifferentPrimaryIds) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt + 1, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector selTarget = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithDabSelectorOfDifferentSecondayIds) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble + 100, kDabFrequencyKhz); + ProgramSelector selTarget = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithDabSelectorWithoutSecondaryIds) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt); + ProgramSelector selTarget = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + TEST(BroadcastRadioUtilsTest, SatisfiesWithSatisfiedIdTypesFilter) { ProgramFilter filter = ProgramFilter{.identifierTypes = {IdentifierType::DAB_FREQUENCY_KHZ}}; ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); -- GitLab From 5554de2fa8bcb2a054f7209917b5580131595e85 Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Thu, 11 Jan 2024 20:41:44 +0000 Subject: [PATCH 217/418] Check for stream use case capability before stream use case test Bug: 299202800 Test: Vendor testing Merged-In: If30ead47072dc1f950b8fb6384072cc38cd51c58 Change-Id: If30ead47072dc1f950b8fb6384072cc38cd51c58 Signed-off-by: Jayant Chowdhary (cherry picked from commit da598226424472710e887e6f51bf560c4f871c3f) --- camera/provider/aidl/vts/camera_aidl_test.cpp | 32 ++++++++++++------- camera/provider/aidl/vts/camera_aidl_test.h | 3 +- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index 5f9d605ef3..cf657c1685 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -313,14 +313,7 @@ void CameraAidlTest::verifyStreamUseCaseCharacteristics(const camera_metadata_t* // Check capabilities int retcode = find_camera_metadata_ro_entry(metadata, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, &entry); - bool hasStreamUseCaseCap = false; - if ((0 == retcode) && (entry.count > 0)) { - if (std::find(entry.data.u8, entry.data.u8 + entry.count, - ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) != - entry.data.u8 + entry.count) { - hasStreamUseCaseCap = true; - } - } + bool hasStreamUseCaseCap = supportsStreamUseCaseCap(metadata); bool supportMandatoryUseCases = false; retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, @@ -2195,10 +2188,10 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres &cameraDevice /*out*/); camera_metadata_t* staticMeta = reinterpret_cast(meta.metadata.data()); - // Check if camera support depth only - if (isDepthOnly(staticMeta) || - (threshold.format == static_cast(PixelFormat::RAW16) && - !supportsCroppedRawUseCase(staticMeta))) { + // Check if camera support depth only or doesn't support stream use case capability + if (isDepthOnly(staticMeta) || !supportsStreamUseCaseCap(staticMeta) || + (threshold.format == static_cast(PixelFormat::RAW16) && + !supportsCroppedRawUseCase(staticMeta))) { ndk::ScopedAStatus ret = mSession->close(); mSession = nullptr; ASSERT_TRUE(ret.isOk()); @@ -3212,6 +3205,21 @@ bool CameraAidlTest::supportsCroppedRawUseCase(const camera_metadata_t *staticMe return false; } +bool CameraAidlTest::supportsStreamUseCaseCap(const camera_metadata_t* staticMeta) { + camera_metadata_ro_entry entry; + int retcode = find_camera_metadata_ro_entry(staticMeta, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, + &entry); + bool hasStreamUseCaseCap = false; + if ((0 == retcode) && (entry.count > 0)) { + if (std::find(entry.data.u8, entry.data.u8 + entry.count, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) != + entry.data.u8 + entry.count) { + hasStreamUseCaseCap = true; + } + } + return hasStreamUseCaseCap; +} + bool CameraAidlTest::isPerFrameControl(const camera_metadata_t* staticMeta) { camera_metadata_ro_entry syncLatencyEntry; int rc = find_camera_metadata_ro_entry(staticMeta, ANDROID_SYNC_MAX_LATENCY, diff --git a/camera/provider/aidl/vts/camera_aidl_test.h b/camera/provider/aidl/vts/camera_aidl_test.h index 6f8f380fa4..fa21a06e84 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.h +++ b/camera/provider/aidl/vts/camera_aidl_test.h @@ -415,7 +415,8 @@ class CameraAidlTest : public ::testing::TestWithParam { int32_t frameCount, const bool *overrideSequence, const bool *expectedResults); bool supportZoomSettingsOverride(const camera_metadata_t* staticMeta); - bool supportsCroppedRawUseCase(const camera_metadata_t *staticMeta); + static bool supportsStreamUseCaseCap(const camera_metadata_t* staticMeta); + static bool supportsCroppedRawUseCase(const camera_metadata_t* staticMeta); bool isPerFrameControl(const camera_metadata_t* staticMeta); void getSupportedSizes(const camera_metadata_t* ch, uint32_t tag, int32_t format, -- GitLab From a8b00cad62bcdb147ccee5eb2f57d3745c5a4a9c Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Thu, 14 Dec 2023 11:13:59 -0800 Subject: [PATCH 218/418] Add tests for isValid methods bcradio HAL utils Added unit tests for isValid methods in utils library for AIDL broadcast radio HAL. Bug: 310708886 Test: atest broadcastradio_utils_aidl_test Change-Id: I0ff19d624f83e48789142a5cba48b9c896dc4204 --- .../test/BroadcastRadioUtilsTest.cpp | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp index 44f4d88059..87223e857b 100644 --- a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp @@ -66,6 +66,177 @@ std::vector getBandTestCases() { .bandResult = utils::FrequencyBand::UNKNOWN}}); } +struct IsValidIdentifierTestCase { + std::string name; + ProgramIdentifier id; + bool valid; +}; + +std::vector getIsValidIdentifierTestCases() { + return std::vector({ + IsValidIdentifierTestCase{.name = "invalid_id_type", + .id = utils::makeIdentifier(IdentifierType::INVALID, 0), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_frequency_high", + .id = utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, 10000000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_frequency_low", + .id = utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, 100000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_dab_frequency", + .id = utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, 1000000u), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_am_fm_frequency_high", + .id = utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, 10000000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_am_fm_frequency_low", + .id = utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, 100u), + .valid = false}, + IsValidIdentifierTestCase{.name = "valid_am_fm_frequency", + .id = utils::makeIdentifier( + IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "drmo_frequency_high", + .id = utils::makeIdentifier(IdentifierType::DRMO_FREQUENCY_KHZ, 10000000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "drmo_frequency_low", + .id = utils::makeIdentifier(IdentifierType::DRMO_FREQUENCY_KHZ, 100u), + .valid = false}, + IsValidIdentifierTestCase{.name = "valid_drmo_frequency", + .id = utils::makeIdentifier( + IdentifierType::DRMO_FREQUENCY_KHZ, kFmFrequencyKHz), + .valid = true}, + IsValidIdentifierTestCase{.name = "invalid_rds_low", + .id = utils::makeIdentifier(IdentifierType::RDS_PI, 0x0), + .valid = false}, + IsValidIdentifierTestCase{.name = "invalid_rds_high", + .id = utils::makeIdentifier(IdentifierType::RDS_PI, 0x10000), + .valid = false}, + IsValidIdentifierTestCase{.name = "valid_rds", + .id = utils::makeIdentifier(IdentifierType::RDS_PI, 0x1000), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_hd_id_zero", + .id = utils::makeSelectorHd(/* stationId= */ 0u, kHdSubChannel, kHdFrequency) + .primaryId, + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_hd_suchannel", + .id = utils::makeSelectorHd(kHdStationId, /* subChannel= */ 8u, kHdFrequency) + .primaryId, + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_hd_frequency_low", + .id = utils::makeSelectorHd(kHdStationId, kHdSubChannel, /* frequency= */ 100u) + .primaryId, + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_hd_id", + .id = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency) + .primaryId, + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_hd_station_name", + .id = utils::makeIdentifier(IdentifierType::HD_STATION_NAME, 0x41422D464D), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_hd_station_name", + .id = utils::makeIdentifier(IdentifierType::HD_STATION_NAME, 0x414231464D), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_sid", + .id = utils::makeIdentifier(IdentifierType::DAB_SID_EXT, 0x0E100000000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_ecc_low", + .id = utils::makeIdentifier(IdentifierType::DAB_SID_EXT, 0x0F700000221u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_ecc_high", + .id = utils::makeIdentifier(IdentifierType::DAB_SID_EXT, 0x09900000221u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_dab_sid_ext", + .id = utils::makeIdentifier(IdentifierType::DAB_SID_EXT, kDabSidExt), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_ensemble_zero", + .id = utils::makeIdentifier(IdentifierType::DAB_ENSEMBLE, 0x0), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_ensemble_high", + .id = utils::makeIdentifier(IdentifierType::DAB_ENSEMBLE, 0x10000), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_dab_ensemble", + .id = utils::makeIdentifier(IdentifierType::DAB_ENSEMBLE, kDabEnsemble), + .valid = true}, + IsValidIdentifierTestCase{.name = "invalid_dab_scid_low", + .id = utils::makeIdentifier(IdentifierType::DAB_SCID, 0xF), + .valid = false}, + IsValidIdentifierTestCase{.name = "invalid_dab_scid_high", + .id = utils::makeIdentifier(IdentifierType::DAB_SCID, 0x1000), + .valid = false}, + IsValidIdentifierTestCase{.name = "valid_dab_scid", + .id = utils::makeIdentifier(IdentifierType::DAB_SCID, 0x100), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_drmo_id_zero", + .id = utils::makeIdentifier(IdentifierType::DRMO_SERVICE_ID, 0x0), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_drmo_id_high", + .id = utils::makeIdentifier(IdentifierType::DRMO_SERVICE_ID, 0x1000000), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_drmo_id", + .id = utils::makeIdentifier(IdentifierType::DRMO_SERVICE_ID, 0x100000), + .valid = true}, + }); +} + +struct IsValidSelectorTestCase { + std::string name; + ProgramSelector sel; + bool valid; +}; + +std::vector getIsValidSelectorTestCases() { + return std::vector({ + IsValidSelectorTestCase{.name = "valid_am_fm_selector", + .sel = utils::makeSelectorAmfm(kFmFrequencyKHz), + .valid = true}, + IsValidSelectorTestCase{ + .name = "valid_hd_selector", + .sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency), + .valid = true}, + IsValidSelectorTestCase{ + .name = "valid_dab_selector", + .sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz), + .valid = true}, + IsValidSelectorTestCase{.name = "valid_rds_selector", + .sel = ProgramSelector{.primaryId = utils::makeIdentifier( + IdentifierType::RDS_PI, 0x1000)}, + .valid = true}, + IsValidSelectorTestCase{.name = "selector_with_invalid_id", + .sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, + /* frequency= */ 100u), + .valid = false}, + IsValidSelectorTestCase{ + .name = "selector_with_invalid_primary_id_type", + .sel = ProgramSelector{.primaryId = utils::makeIdentifier( + IdentifierType::DAB_ENSEMBLE, kDabEnsemble)}, + .valid = false}, + }); +} + struct IsValidMetadataTestCase { std::string name; Metadata metadata; @@ -147,6 +318,34 @@ TEST_P(IsValidMetadataTest, IsValidMetadata) { ASSERT_EQ(utils::isValidMetadata(testParam.metadata), testParam.valid); } +class IsValidIdentifierTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(IsValidIdentifierTests, IsValidIdentifierTest, + testing::ValuesIn(getIsValidIdentifierTestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(IsValidIdentifierTest, IsValid) { + IsValidIdentifierTestCase testcase = GetParam(); + + ASSERT_EQ(utils::isValid(testcase.id), testcase.valid); +} + +class IsValidSelectorTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(IsValidSelectorTests, IsValidSelectorTest, + testing::ValuesIn(getIsValidSelectorTestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(IsValidSelectorTest, IsValid) { + IsValidSelectorTestCase testcase = GetParam(); + + ASSERT_EQ(utils::isValid(testcase.sel), testcase.valid); +} + TEST(BroadcastRadioUtilsTest, IsSupportedWithSupportedSelector) { ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); -- GitLab From 86883f2b54605700feb6a92b662fd0ef42488e37 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Thu, 14 Dec 2023 11:13:59 -0800 Subject: [PATCH 219/418] Add tests for comparator in AIDL bcradio HAL utils Added unit tests for comparators of program selector and program info in utils library for AIDL broadcast radio HAL. Bug: 310708886 Test: atest broadcastradio_utils_aidl_test Change-Id: I1a46196f183cb6a0a45342f3bb379900fd049f32 --- .../test/BroadcastRadioUtilsTest.cpp | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp index 87223e857b..c6d293faef 100644 --- a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp @@ -650,4 +650,80 @@ TEST(BroadcastRadioUtilsTest, SatisfiesWithUnsatisfiedIdsFilter) { ASSERT_FALSE(utils::satisfies(filter, sel)); } +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentAmFmFrequencies) { + ProgramSelector sel1 = utils::makeSelectorAmfm(kHdFrequency - 200); + ProgramSelector sel2 = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentAmFmSubChannels) { + ProgramSelector sel1 = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + ProgramSelector sel2 = utils::makeSelectorHd(kHdStationId, kHdSubChannel + 1, kHdFrequency); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabFrequencies) { + ProgramSelector sel1 = utils::makeSelectorDab(kDabSidExt + 100, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz + 100); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabEccCode) { + ProgramSelector sel1 = + utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = + utils::makeSelectorDab(/* stationId= */ 0x0E20000C221u, kDabEnsemble, kDabFrequencyKhz); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabEnsembles) { + ProgramSelector sel1 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble + 1, kDabFrequencyKhz); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabSid) { + ProgramSelector sel1 = + utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = + utils::makeSelectorDab(/* stationId= */ 0x0E10000C222u, kDabEnsemble, kDabFrequencyKhz); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabSCIdS) { + ProgramSelector sel1 = + utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = + utils::makeSelectorDab(/* stationId= */ 0x1E10000C221u, kDabEnsemble, kDabFrequencyKhz); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramInfoComparator) { + ProgramSelector sel1 = utils::makeSelectorAmfm(kFmFrequencyKHz); + ProgramSelector sel2 = utils::makeSelectorAmfm(kFmFrequencyKHz + 200); + ProgramInfo info1 = {.selector = sel1, + .logicallyTunedTo = sel1.primaryId, + .physicallyTunedTo = sel1.primaryId}; + ProgramInfo info2 = {.selector = sel2, + .logicallyTunedTo = sel2.primaryId, + .physicallyTunedTo = sel2.primaryId}; + + EXPECT_TRUE(utils::ProgramInfoComparator()(info1, info2)); + EXPECT_FALSE(utils::ProgramInfoComparator()(info2, info1)); +} + } // namespace aidl::android::hardware::broadcastradio -- GitLab From 23f338bac4eb995f0920a124633732b6e17ccf47 Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Tue, 16 Jan 2024 18:35:09 +0000 Subject: [PATCH 220/418] camera vts: Remove redundant capabilities fetch Bug: 299202800 Test: build Merged-In: Ia6ca1ee0fb65e357398ba62c6a787c6530b989e4 Change-Id: Ia6ca1ee0fb65e357398ba62c6a787c6530b989e4 Signed-off-by: Jayant Chowdhary (cherry picked from commit 571cbf1b4c50efbd65ea81c63598413a28121d78) --- camera/provider/aidl/vts/camera_aidl_test.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index cf657c1685..9559a1e965 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -310,14 +310,11 @@ void CameraAidlTest::verifyMonochromeCameraResult( void CameraAidlTest::verifyStreamUseCaseCharacteristics(const camera_metadata_t* metadata) { camera_metadata_ro_entry entry; - // Check capabilities - int retcode = - find_camera_metadata_ro_entry(metadata, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, &entry); bool hasStreamUseCaseCap = supportsStreamUseCaseCap(metadata); bool supportMandatoryUseCases = false; - retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, - &entry); + int retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, + &entry); if ((0 == retcode) && (entry.count > 0)) { supportMandatoryUseCases = true; for (size_t i = 0; i < kMandatoryUseCases.size(); i++) { -- GitLab From 4cab108176483f2a7a0916b7e9a977de068ea30e Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Wed, 17 Jan 2024 10:49:07 -0800 Subject: [PATCH 221/418] health: OWNERS -elsk +dvander. Test: N/A Change-Id: I8f5b3baf649c85a0af8c6c935ea1e847c08afea9 --- health/OWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/health/OWNERS b/health/OWNERS index 1d4d0864c2..e540d559e6 100644 --- a/health/OWNERS +++ b/health/OWNERS @@ -1,6 +1,6 @@ # Bug component: 30545 apelosi@google.com -elsk@google.com +dvander@google.com smoreland@google.com wjack@google.com -- GitLab From f489e8cac107c100d019dd75254dabbb85212b3b Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 17 Jan 2024 13:11:40 -0800 Subject: [PATCH 222/418] Update VHAL manifest interface version. We are serving VHAL v3. Test: None Bug: 320743432 Change-Id: I9728496411f2be9f4e7f622cbc4892965bbd9a6e --- automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml b/automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml index 9834cdbc67..b0c6ae7779 100644 --- a/automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml +++ b/automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml @@ -1,7 +1,7 @@ android.hardware.automotive.vehicle - 2 + 3 IVehicle/default -- GitLab From 6e53a23b45a2b1c9ae7c8ba9e0471eda6873ac83 Mon Sep 17 00:00:00 2001 From: Hao Chen Date: Thu, 18 Jan 2024 01:02:30 +0000 Subject: [PATCH 223/418] Release the Codec Output Buffers Test: `evs_app --test` and the video emulated camera can run for a long time. Bug: 277861838 Change-Id: Ie039e2cabf12e3e2a689181d4fbe415595ef26b4 --- .../impl/default/src/EvsVideoEmulatedCamera.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp b/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp index 42b80088a8..e3f7b5e125 100644 --- a/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp +++ b/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp @@ -246,13 +246,6 @@ void EvsVideoEmulatedCamera::onCodecOutputAvailable(const int32_t index, *(pixels++) = *(v_head++); } - const auto status = - AMediaCodec_releaseOutputBuffer(mVideoCodec.get(), index, /* render = */ false); - if (status != AMEDIA_OK) { - LOG(ERROR) << __func__ - << ": Received error in releasing output buffer. Error code: " << status; - } - // Release our output buffer mapper.unlock(renderBufferHandle); @@ -305,6 +298,12 @@ void EvsVideoEmulatedCamera::renderOneFrame() { return; } onCodecOutputAvailable(codecOutputputBufferIdx, info); + const auto release_status = AMediaCodec_releaseOutputBuffer( + mVideoCodec.get(), codecOutputputBufferIdx, /* render = */ false); + if (release_status != AMEDIA_OK) { + LOG(ERROR) << __func__ + << ": Received error in releasing output buffer. Error code: " << release_status; + } } void EvsVideoEmulatedCamera::initializeParameters() { -- GitLab From 78c233dc0329f72958151f222c48d8d25ccc7ffd Mon Sep 17 00:00:00 2001 From: Alisher Alikhodjaev Date: Thu, 11 Jan 2024 16:24:26 -0800 Subject: [PATCH 224/418] Per NCI spec there is no need to wait for credits One case was missed in the previous fix. This is an update. Bug: 312911587 Test: no regressions Change-Id: I7fefa92d5a66581431288ec902a56ed61e9cf310 (cherry picked from commit 46d9630125b3d1c6d7c0b62b0a63fbe9c08b2838) --- nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp index b36735f768..8210ff04cf 100644 --- a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp +++ b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp @@ -354,13 +354,6 @@ TEST_P(NfcHidlTest, Bandwidth) { res = nfc_cb_->WaitForCallback(kCallbackNameSendData); EXPECT_TRUE(res.no_timeout); EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); - if (nci_version == NCI_VERSION_2 && res.args->last_data_.size() > 13 && - res.args->last_data_[13] == 0x00) { - // Wait for CORE_CONN_CREDITS_NTF - res = nfc_cb_->WaitForCallback(kCallbackNameSendData); - EXPECT_TRUE(res.no_timeout); - } - cmd = CORE_CONN_CREATE_CMD; data = cmd; EXPECT_EQ(data.size(), nfc_->write(data)); -- GitLab From babe71d2a6eb2641cce6b166218959210d0a31aa Mon Sep 17 00:00:00 2001 From: Antoine SOULIER Date: Fri, 12 Jan 2024 23:20:58 +0000 Subject: [PATCH 225/418] A2DP HAL Reference Implementation: remove static object's Test: m Bug: 315652150 Change-Id: Iff72dbea0b9c9ed78f0a20538c66e9396e13bfe9 --- .../aidl/default/A2dpOffloadAudioProvider.cpp | 49 ++++++++++++------- .../aidl/default/A2dpOffloadAudioProvider.h | 12 +++-- .../audio/aidl/default/A2dpOffloadCodec.h | 3 +- .../aidl/default/A2dpOffloadCodecAac.cpp | 5 -- .../audio/aidl/default/A2dpOffloadCodecAac.h | 4 +- .../aidl/default/A2dpOffloadCodecFactory.cpp | 14 +++--- .../aidl/default/A2dpOffloadCodecFactory.h | 16 +++--- .../aidl/default/A2dpOffloadCodecSbc.cpp | 5 -- .../audio/aidl/default/A2dpOffloadCodecSbc.h | 4 +- .../default/BluetoothAudioProviderFactory.cpp | 11 +++-- .../default/BluetoothAudioProviderFactory.h | 4 ++ 11 files changed, 69 insertions(+), 58 deletions(-) diff --git a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp index ba7a89d8be..c7761c5e76 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp @@ -23,7 +23,6 @@ #include #include "A2dpOffloadCodecAac.h" -#include "A2dpOffloadCodecFactory.h" #include "A2dpOffloadCodecSbc.h" namespace aidl { @@ -32,17 +31,21 @@ namespace hardware { namespace bluetooth { namespace audio { -A2dpOffloadEncodingAudioProvider::A2dpOffloadEncodingAudioProvider() - : A2dpOffloadAudioProvider() { +A2dpOffloadEncodingAudioProvider::A2dpOffloadEncodingAudioProvider( + const A2dpOffloadCodecFactory& codec_factory) + : A2dpOffloadAudioProvider(codec_factory) { session_type_ = SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH; } -A2dpOffloadDecodingAudioProvider::A2dpOffloadDecodingAudioProvider() - : A2dpOffloadAudioProvider() { +A2dpOffloadDecodingAudioProvider::A2dpOffloadDecodingAudioProvider( + const A2dpOffloadCodecFactory& codec_factory) + : A2dpOffloadAudioProvider(codec_factory) { session_type_ = SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH; } -A2dpOffloadAudioProvider::A2dpOffloadAudioProvider() {} +A2dpOffloadAudioProvider::A2dpOffloadAudioProvider( + const A2dpOffloadCodecFactory& codec_factory) + : codec_factory_(codec_factory) {} bool A2dpOffloadAudioProvider::isValid(const SessionType& session_type) { return (session_type == session_type_); @@ -56,17 +59,29 @@ ndk::ScopedAStatus A2dpOffloadAudioProvider::startSession( auto a2dp_config = audio_config.get(); A2dpStatus a2dp_status = A2dpStatus::NOT_SUPPORTED_CODEC_TYPE; - if (a2dp_config.codecId == - A2dpOffloadCodecSbc::GetInstance()->GetCodecId()) { + auto codec = codec_factory_.GetCodec(a2dp_config.codecId); + if (!codec) { + LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_) + << " - CodecId=" << a2dp_config.codecId.toString() + << " is not found"; + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); + } + + if (codec->info.id == CodecId(CodecId::A2dp::SBC)) { SbcParameters sbc_parameters; - a2dp_status = A2dpOffloadCodecSbc::GetInstance()->ParseConfiguration( - a2dp_config.configuration, &sbc_parameters); - } else if (a2dp_config.codecId == - A2dpOffloadCodecAac::GetInstance()->GetCodecId()) { + auto codec_sbc = + std::static_pointer_cast(codec); + a2dp_status = codec_sbc->ParseConfiguration(a2dp_config.configuration, + &sbc_parameters); + + } else if (codec->info.id == CodecId(CodecId::A2dp::AAC)) { AacParameters aac_parameters; - a2dp_status = A2dpOffloadCodecAac::GetInstance()->ParseConfiguration( - a2dp_config.configuration, &aac_parameters); + + auto codec_aac = + std::static_pointer_cast(codec); + a2dp_status = codec_aac->ParseConfiguration(a2dp_config.configuration, + &aac_parameters); } if (a2dp_status != A2dpStatus::OK) { LOG(WARNING) << __func__ << " - Invalid Audio Configuration=" @@ -105,7 +120,7 @@ ndk::ScopedAStatus A2dpOffloadAudioProvider::onSessionReady( ndk::ScopedAStatus A2dpOffloadAudioProvider::parseA2dpConfiguration( const CodecId& codec_id, const std::vector& configuration, CodecParameters* codec_parameters, A2dpStatus* _aidl_return) { - auto codec = A2dpOffloadCodecFactory::GetInstance()->GetCodec(codec_id); + auto codec = codec_factory_.GetCodec(codec_id); if (!codec) { LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_) << " - CodecId=" << codec_id.toString() << " is not found"; @@ -124,8 +139,8 @@ ndk::ScopedAStatus A2dpOffloadAudioProvider::getA2dpConfiguration( *_aidl_return = std::nullopt; A2dpConfiguration avdtp_configuration; - if (A2dpOffloadCodecFactory::GetInstance()->GetConfiguration( - remote_a2dp_capabilities, hint, &avdtp_configuration)) + if (codec_factory_.GetConfiguration(remote_a2dp_capabilities, hint, + &avdtp_configuration)) *_aidl_return = std::make_optional(std::move(avdtp_configuration)); diff --git a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.h b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.h index 7cc6deeada..a2d03fe3f3 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.h @@ -16,6 +16,7 @@ #pragma once +#include "A2dpOffloadCodecFactory.h" #include "BluetoothAudioProvider.h" namespace aidl { @@ -26,8 +27,6 @@ namespace audio { class A2dpOffloadAudioProvider : public BluetoothAudioProvider { public: - A2dpOffloadAudioProvider(); - bool isValid(const SessionType& session_type) override; ndk::ScopedAStatus startSession( @@ -45,18 +44,23 @@ class A2dpOffloadAudioProvider : public BluetoothAudioProvider { const A2dpConfigurationHint& hint, std::optional* _aidl_return) override; + protected: + A2dpOffloadAudioProvider(const A2dpOffloadCodecFactory&); + private: + const A2dpOffloadCodecFactory& codec_factory_; + ndk::ScopedAStatus onSessionReady(DataMQDesc* _aidl_return) override; }; class A2dpOffloadEncodingAudioProvider : public A2dpOffloadAudioProvider { public: - A2dpOffloadEncodingAudioProvider(); + A2dpOffloadEncodingAudioProvider(const A2dpOffloadCodecFactory&); }; class A2dpOffloadDecodingAudioProvider : public A2dpOffloadAudioProvider { public: - A2dpOffloadDecodingAudioProvider(); + A2dpOffloadDecodingAudioProvider(const A2dpOffloadCodecFactory&); }; } // namespace audio diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodec.h b/bluetooth/audio/aidl/default/A2dpOffloadCodec.h index 7ed5872346..2f51c73857 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodec.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodec.h @@ -18,10 +18,9 @@ #include #include +#include #include -#include "BluetoothAudioProviderFactory.h" - namespace aidl::android::hardware::bluetooth::audio { class A2dpOffloadCodec { diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.cpp b/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.cpp index 0f5533a4d9..1570cd8e4f 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.cpp @@ -194,11 +194,6 @@ static ChannelMode GetChannelModeEnum(int channel_mode) { * AAC Class implementation */ -const A2dpOffloadCodecAac* A2dpOffloadCodecAac::GetInstance() { - static A2dpOffloadCodecAac instance; - return &instance; -} - A2dpOffloadCodecAac::A2dpOffloadCodecAac() : A2dpOffloadCodec(info_), info_({.id = CodecId(CodecId::A2dp::AAC), .name = "AAC"}) { diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.h b/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.h index eefa89b521..65e927d7f5 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.h @@ -29,14 +29,12 @@ struct AacParameters : public CodecParameters { class A2dpOffloadCodecAac : public A2dpOffloadCodec { CodecInfo info_; - A2dpOffloadCodecAac(); - A2dpStatus ParseConfiguration(const std::vector& configuration, CodecParameters* codec_parameters, AacParameters* aac_parameters) const; public: - static const A2dpOffloadCodecAac* GetInstance(); + A2dpOffloadCodecAac(); A2dpStatus ParseConfiguration( const std::vector& configuration, diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.cpp b/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.cpp index 73d8fb178f..658073c48f 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.cpp @@ -37,20 +37,18 @@ enum : bool { * Class implementation */ -const A2dpOffloadCodecFactory* A2dpOffloadCodecFactory::GetInstance() { - static A2dpOffloadCodecFactory instance; - return &instance; -} - A2dpOffloadCodecFactory::A2dpOffloadCodecFactory() : name("Offload"), codecs(ranked_codecs_) { ranked_codecs_.reserve(kEnableAac + kEnableSbc); - if (kEnableAac) ranked_codecs_.push_back(A2dpOffloadCodecAac::GetInstance()); - if (kEnableSbc) ranked_codecs_.push_back(A2dpOffloadCodecSbc::GetInstance()); + if (kEnableAac) + ranked_codecs_.push_back(std::make_shared()); + if (kEnableSbc) + ranked_codecs_.push_back(std::make_shared()); } -const A2dpOffloadCodec* A2dpOffloadCodecFactory::GetCodec(CodecId id) const { +std::shared_ptr A2dpOffloadCodecFactory::GetCodec( + CodecId id) const { auto codec = std::find_if(begin(ranked_codecs_), end(ranked_codecs_), [&](auto c) { return id == c->info.id; }); diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.h b/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.h index 3fb5b1dc64..1546cc4c8a 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.h @@ -16,22 +16,26 @@ #pragma once +#include +#include +#include + +#include + #include "A2dpOffloadCodec.h" namespace aidl::android::hardware::bluetooth::audio { class A2dpOffloadCodecFactory { - std::vector ranked_codecs_; - - A2dpOffloadCodecFactory(); + std::vector> ranked_codecs_; public: const std::string name; - const std::vector& codecs; + const std::vector>& codecs; - static const A2dpOffloadCodecFactory* GetInstance(); + A2dpOffloadCodecFactory(); - const A2dpOffloadCodec* GetCodec(CodecId id) const; + std::shared_ptr GetCodec(CodecId id) const; bool GetConfiguration(const std::vector&, const A2dpConfigurationHint& hint, diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.cpp b/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.cpp index 36d8f729eb..6b9046c09b 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.cpp @@ -257,11 +257,6 @@ static uint8_t GetBitpool(const A2dpBits& configuration, int bitrate) { * SBC Class implementation */ -const A2dpOffloadCodecSbc* A2dpOffloadCodecSbc::GetInstance() { - static A2dpOffloadCodecSbc instance; - return &instance; -} - A2dpOffloadCodecSbc::A2dpOffloadCodecSbc() : A2dpOffloadCodec(info_), info_({.id = CodecId(CodecId::A2dp::SBC), .name = "SBC"}) { diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.h b/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.h index c380850cbb..a39d7793bf 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.h @@ -33,14 +33,12 @@ struct SbcParameters : public CodecParameters { class A2dpOffloadCodecSbc : public A2dpOffloadCodec { CodecInfo info_; - A2dpOffloadCodecSbc(); - A2dpStatus ParseConfiguration(const std::vector& configuration, CodecParameters* codec_parameters, SbcParameters* sbc_parameters) const; public: - static const A2dpOffloadCodecSbc* GetInstance(); + A2dpOffloadCodecSbc(); A2dpStatus ParseConfiguration( const std::vector& configuration, diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp index e55a43438c..c7c6e6d6fc 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp +++ b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp @@ -22,7 +22,6 @@ #include #include "A2dpOffloadAudioProvider.h" -#include "A2dpOffloadCodecFactory.h" #include "A2dpSoftwareAudioProvider.h" #include "BluetoothAudioProvider.h" #include "HearingAidAudioProvider.h" @@ -53,7 +52,8 @@ ndk::ScopedAStatus BluetoothAudioProviderFactory::openProvider( provider = ndk::SharedRefBase::make(); break; case SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH: - provider = ndk::SharedRefBase::make(); + provider = ndk::SharedRefBase::make( + a2dp_offload_codec_factory_); break; case SessionType::HEARING_AID_SOFTWARE_ENCODING_DATAPATH: provider = ndk::SharedRefBase::make(); @@ -82,7 +82,8 @@ ndk::ScopedAStatus BluetoothAudioProviderFactory::openProvider( provider = ndk::SharedRefBase::make(); break; case SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH: - provider = ndk::SharedRefBase::make(); + provider = ndk::SharedRefBase::make( + a2dp_offload_codec_factory_); break; case SessionType::HFP_SOFTWARE_ENCODING_DATAPATH: provider = ndk::SharedRefBase::make(); @@ -160,8 +161,8 @@ ndk::ScopedAStatus BluetoothAudioProviderFactory::getProviderInfo( session_type == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH) { auto& provider_info = _aidl_return->emplace(); - provider_info.name = A2dpOffloadCodecFactory::GetInstance()->name; - for (auto codec : A2dpOffloadCodecFactory::GetInstance()->codecs) + provider_info.name = a2dp_offload_codec_factory_.name; + for (auto codec : a2dp_offload_codec_factory_.codecs) provider_info.codecInfos.push_back(codec->info); } diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.h b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.h index 1afae64941..6931884306 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.h +++ b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.h @@ -18,6 +18,8 @@ #include +#include "A2dpOffloadCodecFactory.h" + namespace aidl { namespace android { namespace hardware { @@ -25,6 +27,8 @@ namespace bluetooth { namespace audio { class BluetoothAudioProviderFactory : public BnBluetoothAudioProviderFactory { + const A2dpOffloadCodecFactory a2dp_offload_codec_factory_; + public: BluetoothAudioProviderFactory(); -- GitLab From 012b41807b999d296527a53c323f0efe97df3779 Mon Sep 17 00:00:00 2001 From: Antoine SOULIER Date: Tue, 16 Jan 2024 23:06:43 +0000 Subject: [PATCH 226/418] AIDL API Review changes Test: m Bug: 319669518 Change-Id: I9f6bb9479c5432b87c01b522a8b0e3211bfc030c --- .../bluetooth/audio/CodecParameters.aidl | 4 +-- .../audio/IBluetoothAudioProvider.aidl | 2 +- .../bluetooth/audio/A2dpConfiguration.aidl | 3 +- .../audio/A2dpRemoteCapabilities.aidl | 2 ++ .../audio/A2dpStreamConfiguration.aidl | 5 ++- .../bluetooth/audio/CodecParameters.aidl | 33 +++++++++++-------- .../audio/IBluetoothAudioProvider.aidl | 2 +- 7 files changed, 31 insertions(+), 20 deletions(-) diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecParameters.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecParameters.aidl index 60cf82a9e3..ac63c289fd 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecParameters.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecParameters.aidl @@ -39,7 +39,7 @@ parcelable CodecParameters { int bitdepth; int minBitrate; int maxBitrate; - boolean lowLatency; - boolean lossless; + boolean lowLatency = false; + boolean lossless = false; byte[] vendorSpecificParameters; } diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl index 87401ff7fd..0707d8fe4e 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -41,7 +41,7 @@ interface IBluetoothAudioProvider { void updateAudioConfiguration(in android.hardware.bluetooth.audio.AudioConfiguration audioConfig); void setLowLatencyModeAllowed(in boolean allowed); android.hardware.bluetooth.audio.A2dpStatus parseA2dpConfiguration(in android.hardware.bluetooth.audio.CodecId codecId, in byte[] configuration, out android.hardware.bluetooth.audio.CodecParameters codecParameters); - @nullable android.hardware.bluetooth.audio.A2dpConfiguration getA2dpConfiguration(in List remoteA2dpCapabilities, in android.hardware.bluetooth.audio.A2dpConfigurationHint hint); + @nullable android.hardware.bluetooth.audio.A2dpConfiguration getA2dpConfiguration(in android.hardware.bluetooth.audio.A2dpRemoteCapabilities[] remoteA2dpCapabilities, in android.hardware.bluetooth.audio.A2dpConfigurationHint hint); void setCodecPriority(in android.hardware.bluetooth.audio.CodecId codecId, int priority); List getLeAudioAseConfiguration(in @nullable List remoteSinkAudioCapabilities, in @nullable List remoteSourceAudioCapabilities, in List requirements); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationPair getLeAudioAseQosConfiguration(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement qosRequirement); diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpConfiguration.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpConfiguration.aidl index a7fd9ff014..db5212fd9b 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpConfiguration.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpConfiguration.aidl @@ -26,6 +26,7 @@ import android.hardware.bluetooth.audio.CodecParameters; parcelable A2dpConfiguration { /** * Remote Stream Endpoint Identifier + * This matches `A2dpRemoteCapabilities.seid` given by the framework. */ int remoteSeid; @@ -35,7 +36,7 @@ parcelable A2dpConfiguration { * `configuration`. Using `id.a2dp`, the format is given by the `Codec * Specific Information Elements` [A2DP - 4.3-6.2], and using `id.vendor`, * by `Vendor Specific Value` [A2DP - 4.7.2]. - * In any case, this byte array is limited by the framework to 128 Bytes. + * In any case, this byte array must be limited to 128 bytes. */ CodecId id; CodecParameters parameters; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl index 87277f150d..224bb60922 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl @@ -25,6 +25,8 @@ import android.hardware.bluetooth.audio.CodecId; parcelable A2dpRemoteCapabilities { /** * Remote Stream Endpoint identifier + * Allocated by the remote device to identify a specific codec and capabilities, + * in the meaning of the AVDTP standard. */ int seid; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl index 2a0c4d84ab..b8521f477b 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl @@ -21,7 +21,9 @@ import android.hardware.bluetooth.audio.CodecId; @VintfStability parcelable A2dpStreamConfiguration { /** - * Peer MTU (16 bits) + * Peer Maximum Transfer Unit (MTU), 16 bits value [Core - 3.A.5.1] + * It's the remote device indication of the maximum amount of data that + * can be received on the AVDTP Stream Channel. */ int peerMtu; @@ -29,6 +31,7 @@ parcelable A2dpStreamConfiguration { * Optional SCMS-T Content Protection header * that precedes audio content when enabled [A2DP - 3.2.1-2]. * The content protection byte is defined by [Assigned Number - 6.3.2]. + * When the content protection is not enabled, this field should be left `null`. */ @nullable byte[1] cpHeaderScmst; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecParameters.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecParameters.aidl index b6f8a94b4a..37f89423d2 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecParameters.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecParameters.aidl @@ -35,24 +35,29 @@ parcelable CodecParameters { int bitdepth; /** - * Encoding parameters: - * - * - Bitrate limits on a frame basis, defined in bits per second. - * The encoder bitrate mode can be encoded following this rule: - * . minBitrate equals to maxBitrate for constant bitrate - * . minBitrate set to 0, for VBR with peak bitrate at maxBitratre value. - * . minBitrate greater than 0, for ABR, the bitrate of the stream varies - * between minBitrate to maxBitrate according to link quality. - * The 0 value for both means "undefined" or "don't care". - * - * - Low-latency configuration privileged - * - Lossless effort indication. The 'False' value can be used as "don't care" + * Bitrate limits on a frame basis, defined in bits per second. + * The encoder bitrate mode can be encoded following this rule: + * . minBitrate equals to maxBitrate for constant bitrate + * . minBitrate set to 0, for VBR with peak bitrate at maxBitratre value. + * . minBitrate greater than 0, for ABR, the bitrate of the stream varies + * between minBitrate to maxBitrate according to link quality. + * The 0 value for both means "undefined" or "don't care". */ int minBitrate; int maxBitrate; - boolean lowLatency; - boolean lossless; + /** + * Low-latency configuration. The interpretation is vendor specific. + * When returned to the client, the assessment of the low latency configuration is left + * to the vendor's discretion. When set by the client, it indicates that we are entering + * a low-latency context (e.g. gaming), and such a configuration should be privileged. + */ + boolean lowLatency = false; + + /** + * Lossless effort indication. The 'False' value can be used as "don't care" + */ + boolean lossless = false; /** * Vendor specific parameters, inserted in the Vendor Specific HCI Command diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl index 8c6fe692b7..82da863c76 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -133,7 +133,7 @@ interface IBluetoothAudioProvider { * when no suitable configuration has been found. */ @nullable A2dpConfiguration getA2dpConfiguration( - in List remoteA2dpCapabilities, in A2dpConfigurationHint hint); + in A2dpRemoteCapabilities[] remoteA2dpCapabilities, in A2dpConfigurationHint hint); /** * Set specific codec priority -- GitLab From 25a0f6feceff4fbfe911ac16ef7238701f124e4f Mon Sep 17 00:00:00 2001 From: sadiqsada Date: Tue, 16 Jan 2024 15:16:10 -0800 Subject: [PATCH 227/418] Refactor plugin interface, streamer creation Bug: 288170590 Test: atest VtsHalTvTunerTargetTest Change-Id: Ib141bbb05df8ce17eb5fdb1fed017110fd46a510 --- tv/tuner/aidl/default/Demux.cpp | 57 ++++++++++++---------- tv/tuner/aidl/default/Demux.h | 6 ++- tv/tuner/aidl/default/Frontend.cpp | 77 +++++++++++++++++------------- tv/tuner/aidl/default/Frontend.h | 7 ++- 4 files changed, 85 insertions(+), 62 deletions(-) diff --git a/tv/tuner/aidl/default/Demux.cpp b/tv/tuner/aidl/default/Demux.cpp index de94467d14..2445a3e2a1 100644 --- a/tv/tuner/aidl/default/Demux.cpp +++ b/tv/tuner/aidl/default/Demux.cpp @@ -123,26 +123,28 @@ void Demux::setIptvThreadRunning(bool isIptvThreadRunning) { mIsIptvThreadRunningCv.notify_all(); } -void Demux::readIptvThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, size_t buf_size, - int timeout_ms, int buffer_timeout) { +void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer) { Timer *timer, *fullBufferTimer; while (true) { std::unique_lock lock(mIsIptvThreadRunningMutex); mIsIptvThreadRunningCv.wait(lock, [this] { return mIsIptvReadThreadRunning; }); - if (mIsIptvDvrFMQFull && fullBufferTimer->get_elapsed_time_ms() > buffer_timeout) { - ALOGE("DVR FMQ has not been flushed within timeout of %d ms", buffer_timeout); + if (mIsIptvDvrFMQFull && + fullBufferTimer->get_elapsed_time_ms() > IPTV_PLAYBACK_BUFFER_TIMEOUT) { + ALOGE("DVR FMQ has not been flushed within timeout of %d ms", + IPTV_PLAYBACK_BUFFER_TIMEOUT); delete fullBufferTimer; break; } timer = new Timer(); void* buf = malloc(sizeof(char) * IPTV_BUFFER_SIZE); if (buf == nullptr) ALOGI("Buffer allocation failed"); - ssize_t bytes_read = interface->read_stream(streamer, buf, buf_size, timeout_ms); + ssize_t bytes_read = + interface->read_stream(streamer, buf, IPTV_BUFFER_SIZE, IPTV_PLAYBACK_TIMEOUT); if (bytes_read == 0) { double elapsed_time = timer->get_elapsed_time_ms(); - if (elapsed_time > timeout_ms) { + if (elapsed_time > IPTV_PLAYBACK_TIMEOUT) { ALOGE("[Demux] timeout reached - elapsed_time: %f, timeout: %d", elapsed_time, - timeout_ms); + IPTV_PLAYBACK_TIMEOUT); } ALOGE("[Demux] Cannot read data from the socket"); delete timer; @@ -206,32 +208,37 @@ void Demux::readIptvThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, si // get plugin interface from frontend dtv_plugin* interface = mFrontend->getIptvPluginInterface(); + // if plugin interface is not on frontend, create a new plugin interface if (interface == nullptr) { - ALOGE("[Demux] getIptvPluginInterface(): plugin interface is null"); - return ::ndk::ScopedAStatus::fromServiceSpecificError( - static_cast(Result::INVALID_STATE)); + interface = mFrontend->createIptvPluginInterface(); + if (interface == nullptr) { + ALOGE("[ INFO ] Failed to load plugin."); + return ::ndk::ScopedAStatus::fromServiceSpecificError( + static_cast(Result::INVALID_STATE)); + } + } + + // get transport description from frontend + string transport_desc = mFrontend->getIptvTransportDescription(); + if (transport_desc.empty()) { + string content_url = "rtp://127.0.0.1:12345"; + transport_desc = "{ \"uri\": \"" + content_url + "\"}"; } - ALOGI("[Demux] getIptvPluginInterface(): plugin interface is not null"); + ALOGI("[Demux] transport_desc: %s", transport_desc.c_str()); // get streamer object from Frontend instance dtv_streamer* streamer = mFrontend->getIptvPluginStreamer(); if (streamer == nullptr) { - ALOGE("[Demux] getIptvPluginStreamer(): streamer is null"); - return ::ndk::ScopedAStatus::fromServiceSpecificError( - static_cast(Result::INVALID_STATE)); + streamer = mFrontend->createIptvPluginStreamer(interface, transport_desc.c_str()); + if (streamer == nullptr) { + ALOGE("[ INFO ] Failed to open stream"); + return ::ndk::ScopedAStatus::fromServiceSpecificError( + static_cast(Result::INVALID_STATE)); + } } - ALOGI("[Demux] getIptvPluginStreamer(): streamer is not null"); - // get transport description from frontend - string transport_desc = mFrontend->getIptvTransportDescription(); - ALOGI("[Demux] getIptvTransportDescription(): transport_desc: %s", transport_desc.c_str()); - - // call read_stream on the socket to populate the buffer with TS data - // while thread is alive, keep reading data - int timeout_ms = 20; - int buffer_timeout = 10000; // 10s - mDemuxIptvReadThread = std::thread(&Demux::readIptvThreadLoop, this, interface, streamer, - IPTV_BUFFER_SIZE, timeout_ms, buffer_timeout); + mDemuxIptvReadThread = + std::thread(&Demux::frontendIptvInputThreadLoop, this, interface, streamer); } return ::ndk::ScopedAStatus::ok(); } diff --git a/tv/tuner/aidl/default/Demux.h b/tv/tuner/aidl/default/Demux.h index ad7b7a77a1..b8d57dffea 100644 --- a/tv/tuner/aidl/default/Demux.h +++ b/tv/tuner/aidl/default/Demux.h @@ -56,6 +56,9 @@ class Frontend; class TimeFilter; class Tuner; +const int IPTV_PLAYBACK_TIMEOUT = 20; // ms +const int IPTV_PLAYBACK_BUFFER_TIMEOUT = 20000; // ms + class DvrPlaybackCallback : public BnDvrCallback { public: virtual ::ndk::ScopedAStatus onPlaybackStatus(PlaybackStatus status) override { @@ -103,8 +106,7 @@ class Demux : public BnDemux { void setIsRecording(bool isRecording); bool isRecording(); void startFrontendInputLoop(); - void readIptvThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, size_t size, - int timeout_ms, int buffer_timeout); + void frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer); /** * A dispatcher to read and dispatch input data to all the started filters. diff --git a/tv/tuner/aidl/default/Frontend.cpp b/tv/tuner/aidl/default/Frontend.cpp index 57ed1ba4f9..5cee3c7c59 100644 --- a/tv/tuner/aidl/default/Frontend.cpp +++ b/tv/tuner/aidl/default/Frontend.cpp @@ -215,8 +215,31 @@ Frontend::~Frontend() { return ::ndk::ScopedAStatus::ok(); } -void Frontend::readTuneByte(dtv_streamer* streamer, void* buf, size_t buf_size, int timeout_ms) { - ssize_t bytes_read = mIptvPluginInterface->read_stream(streamer, buf, buf_size, timeout_ms); +dtv_plugin* Frontend::createIptvPluginInterface() { + const char* path = "/vendor/lib/iptv_udp_plugin.so"; + DtvPlugin* plugin = new DtvPlugin(path); + bool plugin_loaded = plugin->load(); + if (!plugin_loaded) { + ALOGE("Failed to load plugin"); + return nullptr; + } + return plugin->interface(); +} + +dtv_streamer* Frontend::createIptvPluginStreamer(dtv_plugin* interface, + const char* transport_desc) { + dtv_streamer* streamer = interface->create_streamer(); + int open_fd = interface->open_stream(streamer, transport_desc); + if (open_fd < 0) { + return nullptr; + } + ALOGI("[ INFO ] open_stream successful, open_fd=%d", open_fd); + return streamer; +} + +void Frontend::readTuneByte(void* buf) { + ssize_t bytes_read = mIptvPluginInterface->read_stream(mIptvPluginStreamer, buf, + TUNE_BUFFER_SIZE, TUNE_BUFFER_TIMEOUT); if (bytes_read <= 0) { ALOGI("[ ERROR ] Tune byte couldn't be read."); return; @@ -242,53 +265,39 @@ void Frontend::readTuneByte(dtv_streamer* streamer, void* buf, size_t buf_size, ALOGI("[ INFO ] Frontend type is set to IPTV, tag = %d id=%d", in_settings.getTag(), mId); - // load udp plugin for reading TS data - const char* path = "/vendor/lib/iptv_udp_plugin.so"; - DtvPlugin* plugin = new DtvPlugin(path); - if (!plugin) { - ALOGE("Failed to create DtvPlugin, plugin_path is invalid"); + mIptvPluginInterface = createIptvPluginInterface(); + if (mIptvPluginInterface == nullptr) { + ALOGE("[ INFO ] Failed to load plugin."); return ::ndk::ScopedAStatus::fromServiceSpecificError( static_cast(Result::INVALID_ARGUMENT)); } - bool plugin_loaded = plugin->load(); - if (!plugin_loaded) { - ALOGE("Failed to load plugin"); - return ::ndk::ScopedAStatus::fromServiceSpecificError( - static_cast(Result::INVALID_ARGUMENT)); - } - mIptvPluginInterface = plugin->interface(); // validate content_url format std::string content_url = in_settings.get()->contentUrl; - std::string transport_desc = "{ \"uri\": \"" + content_url + "\"}"; - ALOGI("[ INFO ] transport_desc: %s", transport_desc.c_str()); - bool is_transport_desc_valid = plugin->validate(transport_desc.c_str()); + mIptvTransportDescription = "{ \"uri\": \"" + content_url + "\"}"; + ALOGI("[ INFO ] transport_desc: %s", mIptvTransportDescription.c_str()); + bool is_transport_desc_valid = + mIptvPluginInterface->validate(mIptvTransportDescription.c_str()); if (!is_transport_desc_valid) { // not of format protocol://ip:port ALOGE("[ INFO ] transport_desc is not valid"); return ::ndk::ScopedAStatus::fromServiceSpecificError( static_cast(Result::INVALID_ARGUMENT)); } - mIptvTransportDescription = transport_desc; // create a streamer and open it for reading data - dtv_streamer* streamer = mIptvPluginInterface->create_streamer(); - mIptvPluginStreamer = streamer; - int open_fd = mIptvPluginInterface->open_stream(streamer, transport_desc.c_str()); - if (open_fd < 0) { - ALOGE("[ INFO ] could not open stream"); + mIptvPluginStreamer = + createIptvPluginStreamer(mIptvPluginInterface, mIptvTransportDescription.c_str()); + + void* buf = malloc(sizeof(char) * TUNE_BUFFER_SIZE); + if (buf == nullptr) { + ALOGE("Failed to allocate 1 byte buffer for tuning."); return ::ndk::ScopedAStatus::fromServiceSpecificError( - static_cast(Result::INVALID_ARGUMENT)); + static_cast(Result::INVALID_STATE)); + } + mIptvFrontendTuneThread = std::thread(&Frontend::readTuneByte, this, buf); + if (mIptvFrontendTuneThread.joinable()) { + mIptvFrontendTuneThread.join(); } - ALOGI("[ INFO ] open_stream successful, open_fd=%d", open_fd); - - size_t buf_size = 1; - int timeout_ms = 2000; - void* buf = malloc(sizeof(char) * buf_size); - if (buf == nullptr) ALOGI("malloc buf failed [TUNE]"); - ALOGI("[ INFO ] [Tune] Allocated buffer of size %zu", buf_size); - mIptvFrontendTuneThread = - std::thread(&Frontend::readTuneByte, this, streamer, buf, buf_size, timeout_ms); - if (mIptvFrontendTuneThread.joinable()) mIptvFrontendTuneThread.join(); free(buf); } diff --git a/tv/tuner/aidl/default/Frontend.h b/tv/tuner/aidl/default/Frontend.h index 17a1aeeb40..7622ec0813 100644 --- a/tv/tuner/aidl/default/Frontend.h +++ b/tv/tuner/aidl/default/Frontend.h @@ -33,6 +33,9 @@ namespace tuner { class Tuner; +const int TUNE_BUFFER_SIZE = 1; // byte +const int TUNE_BUFFER_TIMEOUT = 2000; // ms + class Frontend : public BnFrontend { public: Frontend(FrontendType type, int32_t id); @@ -64,7 +67,9 @@ class Frontend : public BnFrontend { dtv_plugin* getIptvPluginInterface(); string getIptvTransportDescription(); dtv_streamer* getIptvPluginStreamer(); - void readTuneByte(dtv_streamer* streamer, void* buf, size_t size, int timeout_ms); + void readTuneByte(void* buf); + dtv_streamer* createIptvPluginStreamer(dtv_plugin* interface, const char* transport_desc); + dtv_plugin* createIptvPluginInterface(); bool isLocked(); void getFrontendInfo(FrontendInfo* _aidl_return); void setTunerService(std::shared_ptr tuner); -- GitLab From cf14e8ca5beef8a389896353d159d2848072e62d Mon Sep 17 00:00:00 2001 From: sadiqsada Date: Wed, 17 Jan 2024 10:06:28 -0800 Subject: [PATCH 228/418] mFilterCount cannot be negative mFilterCount is a reference counter for Filters, and it's decremented when Filter.stop() is called. Added a check to make sure the value is not decremented when it's already 0. Bug: 288170590 Test: atest VtsHalTvTunerTargetTest Change-Id: I72fe7e5c4babd7e7426d8a52b40887a8c411ce81 --- tv/tuner/aidl/default/Filter.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tv/tuner/aidl/default/Filter.cpp b/tv/tuner/aidl/default/Filter.cpp index 212d329cdc..5f7a4cda8d 100644 --- a/tv/tuner/aidl/default/Filter.cpp +++ b/tv/tuner/aidl/default/Filter.cpp @@ -366,9 +366,11 @@ Filter::~Filter() { ::ndk::ScopedAStatus Filter::stop() { ALOGV("%s", __FUNCTION__); - mFilterCount -= 1; - if (mFilterCount == 0) { - mDemux->setIptvThreadRunning(false); + if (mFilterCount > 0) { + mFilterCount -= 1; + if (mFilterCount.load() == 0) { + mDemux->setIptvThreadRunning(false); + } } mFilterThreadRunning = false; -- GitLab From c5707a25f18f7114a9e01a918f79bffa081adb15 Mon Sep 17 00:00:00 2001 From: sadiqsada Date: Wed, 17 Jan 2024 09:49:23 -0800 Subject: [PATCH 229/418] Fix tune byte alignment When reading data from the socket, one byte is read during tuning and remaining data is read during playback. Since the same streamer is used for reading data, there is an offset of 1 when tuning is performed before playback. The extra byte is stored in a buffer and prepended to the playback buffer. Bug: 288170590 Test: atest VtsHalTvTunerTargetTest Change-Id: Ie5d112dbc3c3e3bbb0bb07e60d15ddc26cacaf8c --- tv/tuner/aidl/default/Demux.cpp | 23 +++++++++++++++++++---- tv/tuner/aidl/default/Frontend.cpp | 7 +++++-- tv/tuner/aidl/default/Frontend.h | 2 ++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/tv/tuner/aidl/default/Demux.cpp b/tv/tuner/aidl/default/Demux.cpp index 2445a3e2a1..a9c205f6fc 100644 --- a/tv/tuner/aidl/default/Demux.cpp +++ b/tv/tuner/aidl/default/Demux.cpp @@ -125,6 +125,7 @@ void Demux::setIptvThreadRunning(bool isIptvThreadRunning) { void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer) { Timer *timer, *fullBufferTimer; + bool isTuneBytePushedToDvr = false; while (true) { std::unique_lock lock(mIsIptvThreadRunningMutex); mIsIptvThreadRunningCv.wait(lock, [this] { return mIsIptvReadThreadRunning; }); @@ -137,10 +138,24 @@ void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* str } timer = new Timer(); void* buf = malloc(sizeof(char) * IPTV_BUFFER_SIZE); - if (buf == nullptr) ALOGI("Buffer allocation failed"); - ssize_t bytes_read = - interface->read_stream(streamer, buf, IPTV_BUFFER_SIZE, IPTV_PLAYBACK_TIMEOUT); - if (bytes_read == 0) { + if (buf == nullptr) { + ALOGE("[Demux] Buffer allocation failed"); + return; + } + ssize_t bytes_read; + void* tuneByteBuffer = mFrontend->getTuneByteBuffer(); + if (!isTuneBytePushedToDvr && tuneByteBuffer != nullptr) { + memcpy(buf, tuneByteBuffer, 1); + char* offsetBuf = (char*)buf + 1; + bytes_read = interface->read_stream(streamer, (void*)offsetBuf, IPTV_BUFFER_SIZE - 1, + IPTV_PLAYBACK_TIMEOUT); + isTuneBytePushedToDvr = true; + } else { + bytes_read = + interface->read_stream(streamer, buf, IPTV_BUFFER_SIZE, IPTV_PLAYBACK_TIMEOUT); + } + + if (bytes_read <= 0) { double elapsed_time = timer->get_elapsed_time_ms(); if (elapsed_time > IPTV_PLAYBACK_TIMEOUT) { ALOGE("[Demux] timeout reached - elapsed_time: %f, timeout: %d", elapsed_time, diff --git a/tv/tuner/aidl/default/Frontend.cpp b/tv/tuner/aidl/default/Frontend.cpp index 5cee3c7c59..10316047ff 100644 --- a/tv/tuner/aidl/default/Frontend.cpp +++ b/tv/tuner/aidl/default/Frontend.cpp @@ -188,6 +188,9 @@ Frontend::~Frontend() { mCallback = nullptr; mIsLocked = false; mTuner = nullptr; + if (mTuneByteBuffer != nullptr) { + free(mTuneByteBuffer); + } } ::ndk::ScopedAStatus Frontend::close() { @@ -246,11 +249,12 @@ void Frontend::readTuneByte(void* buf) { } mCallback->onEvent(FrontendEventType::LOCKED); mIsLocked = true; + mTuneByteBuffer = buf; } ::ndk::ScopedAStatus Frontend::tune(const FrontendSettings& in_settings) { if (mCallback == nullptr) { - ALOGW("[ WARN ] Frontend callback is not set for tunin0g"); + ALOGW("[ WARN ] Frontend callback is not set for tuning"); return ::ndk::ScopedAStatus::fromServiceSpecificError( static_cast(Result::INVALID_STATE)); } @@ -298,7 +302,6 @@ void Frontend::readTuneByte(void* buf) { if (mIptvFrontendTuneThread.joinable()) { mIptvFrontendTuneThread.join(); } - free(buf); } return ::ndk::ScopedAStatus::ok(); diff --git a/tv/tuner/aidl/default/Frontend.h b/tv/tuner/aidl/default/Frontend.h index 7622ec0813..f3f8a8760d 100644 --- a/tv/tuner/aidl/default/Frontend.h +++ b/tv/tuner/aidl/default/Frontend.h @@ -68,6 +68,7 @@ class Frontend : public BnFrontend { string getIptvTransportDescription(); dtv_streamer* getIptvPluginStreamer(); void readTuneByte(void* buf); + void* getTuneByteBuffer() { return mTuneByteBuffer; }; dtv_streamer* createIptvPluginStreamer(dtv_plugin* interface, const char* transport_desc); dtv_plugin* createIptvPluginInterface(); bool isLocked(); @@ -95,6 +96,7 @@ class Frontend : public BnFrontend { string mIptvTransportDescription; dtv_streamer* mIptvPluginStreamer; std::thread mIptvFrontendTuneThread; + void* mTuneByteBuffer = nullptr; }; } // namespace tuner -- GitLab From 5494506c79c1d29cae34277cf99512c4e04ce00e Mon Sep 17 00:00:00 2001 From: sadiqsada Date: Thu, 18 Jan 2024 13:39:05 -0800 Subject: [PATCH 230/418] Terminate IPTV read thread on demux close IPTV reading thread doesn't have a termination condition. This CL adds a flag mIsIptvReadThreadTerminated which tracks whether the thread resources should be cleaned up. Bug: 288170590 Test: atest VtsHalTvTunerTargetTest Change-Id: I3a19e1045ee67dac2d95457d217adb1375674ed4 --- tv/tuner/aidl/default/Demux.cpp | 40 +++++++++++++++++++++------------ tv/tuner/aidl/default/Demux.h | 9 ++++++-- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/tv/tuner/aidl/default/Demux.cpp b/tv/tuner/aidl/default/Demux.cpp index a9c205f6fc..5eeb36a4ca 100644 --- a/tv/tuner/aidl/default/Demux.cpp +++ b/tv/tuner/aidl/default/Demux.cpp @@ -53,9 +53,6 @@ void Demux::setTunerService(std::shared_ptr tuner) { Demux::~Demux() { ALOGV("%s", __FUNCTION__); - if (mDemuxIptvReadThread.joinable()) { - mDemuxIptvReadThread.join(); - } close(); } @@ -123,12 +120,17 @@ void Demux::setIptvThreadRunning(bool isIptvThreadRunning) { mIsIptvThreadRunningCv.notify_all(); } -void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer) { +void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, void* buf) { Timer *timer, *fullBufferTimer; bool isTuneBytePushedToDvr = false; while (true) { std::unique_lock lock(mIsIptvThreadRunningMutex); - mIsIptvThreadRunningCv.wait(lock, [this] { return mIsIptvReadThreadRunning; }); + mIsIptvThreadRunningCv.wait( + lock, [this] { return mIsIptvReadThreadRunning || mIsIptvReadThreadTerminated; }); + if (mIsIptvReadThreadTerminated) { + ALOGI("[Demux] IPTV reading thread for playback terminated"); + break; + } if (mIsIptvDvrFMQFull && fullBufferTimer->get_elapsed_time_ms() > IPTV_PLAYBACK_BUFFER_TIMEOUT) { ALOGE("DVR FMQ has not been flushed within timeout of %d ms", @@ -137,11 +139,6 @@ void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* str break; } timer = new Timer(); - void* buf = malloc(sizeof(char) * IPTV_BUFFER_SIZE); - if (buf == nullptr) { - ALOGE("[Demux] Buffer allocation failed"); - return; - } ssize_t bytes_read; void* tuneByteBuffer = mFrontend->getTuneByteBuffer(); if (!isTuneBytePushedToDvr && tuneByteBuffer != nullptr) { @@ -187,8 +184,6 @@ void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* str default: ALOGI("Invalid DVR Status"); } - - free(buf); } } @@ -251,9 +246,16 @@ void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* str static_cast(Result::INVALID_STATE)); } } - + stopIptvFrontendInput(); + mIsIptvReadThreadTerminated = false; + void* buf = malloc(sizeof(char) * IPTV_BUFFER_SIZE); + if (buf == nullptr) { + ALOGE("[Demux] Buffer allocation failed"); + return ::ndk::ScopedAStatus::fromServiceSpecificError( + static_cast(Result::INVALID_STATE)); + } mDemuxIptvReadThread = - std::thread(&Demux::frontendIptvInputThreadLoop, this, interface, streamer); + std::thread(&Demux::frontendIptvInputThreadLoop, this, interface, streamer, buf); } return ::ndk::ScopedAStatus::ok(); } @@ -370,6 +372,7 @@ void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* str ALOGV("%s", __FUNCTION__); stopFrontendInput(); + stopIptvFrontendInput(); set::iterator it; for (it = mPlaybackFilterIds.begin(); it != mPlaybackFilterIds.end(); it++) { @@ -565,6 +568,15 @@ void Demux::stopFrontendInput() { } } +void Demux::stopIptvFrontendInput() { + ALOGD("[Demux] stop iptv frontend on demux"); + if (mDemuxIptvReadThread.joinable()) { + mIsIptvReadThreadTerminated = true; + mIsIptvThreadRunningCv.notify_all(); + mDemuxIptvReadThread.join(); + } +} + void Demux::setIsRecording(bool isRecording) { mIsRecording = isRecording; } diff --git a/tv/tuner/aidl/default/Demux.h b/tv/tuner/aidl/default/Demux.h index b8d57dffea..af040d4bfd 100644 --- a/tv/tuner/aidl/default/Demux.h +++ b/tv/tuner/aidl/default/Demux.h @@ -106,7 +106,7 @@ class Demux : public BnDemux { void setIsRecording(bool isRecording); bool isRecording(); void startFrontendInputLoop(); - void frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer); + void frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, void* buf); /** * A dispatcher to read and dispatch input data to all the started filters. @@ -130,6 +130,10 @@ class Demux : public BnDemux { * Setter for IPTV Reading thread */ void setIptvThreadRunning(bool isIptvThreadRunning); + /** + * Stops IPTV playback reading thread. + */ + void stopIptvFrontendInput(); private: // Tuner service @@ -208,7 +212,8 @@ class Demux : public BnDemux { /** * Controls IPTV reading thread status */ - bool mIsIptvReadThreadRunning; + bool mIsIptvReadThreadRunning = false; + std::atomic mIsIptvReadThreadTerminated = false; std::mutex mIsIptvThreadRunningMutex; std::condition_variable mIsIptvThreadRunningCv; -- GitLab From db9c51aaf3bf5f3476de299c15bea48846c57c8c Mon Sep 17 00:00:00 2001 From: sadiqsada Date: Thu, 18 Jan 2024 13:49:09 -0800 Subject: [PATCH 231/418] Reenable VTS tests for IPTV Some of the VTS tests were disabled because they were failing because of IPTV implmementation. Reenabling them since VTS is passing with the fixes. Bug: 288170590 Test: atest VtsHalTvTunerTargetTest Change-Id: I5863c0e561a059f093fc59eae28826fb17648dfa --- .../functional/VtsHalTvTunerTargetTest.cpp | 46 ++----------------- 1 file changed, 3 insertions(+), 43 deletions(-) diff --git a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp index 671d07965a..2b39bc6ab0 100644 --- a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp +++ b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp @@ -684,10 +684,6 @@ TEST_P(TunerDemuxAidlTest, openDemux) { if (!live.hasFrontendConnection) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -784,10 +780,6 @@ TEST_P(TunerFilterAidlTest, StartFilterInDemux) { if (!live.hasFrontendConnection) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } // TODO use parameterized tests auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { @@ -802,10 +794,6 @@ TEST_P(TunerFilterAidlTest, ConfigIpFilterInDemuxWithCid) { if (!live.hasFrontendConnection) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -821,10 +809,6 @@ TEST_P(TunerFilterAidlTest, ReconfigFilterToReceiveStartId) { if (!live.hasFrontendConnection) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } // TODO use parameterized tests auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { @@ -1128,7 +1112,7 @@ TEST_P(TunerRecordAidlTest, RecordDataFlowWithTsRecordFilterTest) { if (!record.support) { return; } - // Do not execute tests for IPTV Frontend + // Recording is not currently supported for IPTV frontend if (frontendMap[live.frontendId].type == FrontendType::IPTV) { return; } @@ -1146,7 +1130,7 @@ TEST_P(TunerRecordAidlTest, AttachFiltersToRecordTest) { if (!record.support) { return; } - // Do not execute tests for IPTV Frontend + // Recording is not currently supported for IPTV frontend if (frontendMap[live.frontendId].type == FrontendType::IPTV) { return; } @@ -1182,7 +1166,7 @@ TEST_P(TunerRecordAidlTest, SetStatusCheckIntervalHintToRecordTest) { if (!record.support) { return; } - // Do not execute tests for IPTV Frontend + // Recording is not currently supported for IPTV frontend if (frontendMap[live.frontendId].type == FrontendType::IPTV) { return; } @@ -1287,10 +1271,6 @@ TEST_P(TunerFrontendAidlTest, LinkToCiCam) { TEST_P(TunerFrontendAidlTest, getHardwareInfo) { description("Test Frontend get hardware info"); - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } if (!live.hasFrontendConnection) { return; } @@ -1338,10 +1318,6 @@ TEST_P(TunerBroadcastAidlTest, BroadcastDataFlowAudioFilterTest) { if (!live.hasFrontendConnection) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -1369,10 +1345,6 @@ TEST_P(TunerBroadcastAidlTest, IonBufferTest) { if (!live.hasFrontendConnection) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -1402,10 +1374,6 @@ TEST_P(TunerBroadcastAidlTest, MediaFilterWithSharedMemoryHandle) { if (!live.hasFrontendConnection) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } auto live_configs = generateLiveConfigurations(); for (auto& configuration : live_configs) { live = configuration; @@ -1419,10 +1387,6 @@ TEST_P(TunerDescramblerAidlTest, CreateDescrambler) { if (!descrambling.support) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } vector descrambling_configs = generateDescramblingConfigurations(); if (descrambling_configs.empty()) { @@ -1459,10 +1423,6 @@ TEST_P(TunerDescramblerAidlTest, ScrambledBroadcastDataFlowMediaFiltersTest) { if (!descrambling.support) { return; } - // Do not execute tests for IPTV Frontend - if (frontendMap[live.frontendId].type == FrontendType::IPTV) { - return; - } vector descrambling_configs = generateDescramblingConfigurations(); if (descrambling_configs.empty()) { -- GitLab From 140f3e8c718adbcd483ca40d2c6ab1754fe52bc1 Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Wed, 17 Jan 2024 22:19:28 +0000 Subject: [PATCH 232/418] media c2.aidl: Add IPooledGraphicBufferAllocator support Support media.bufferpool2 based output graphic buffer allocator. Bug: 254050314 Change-Id: I7f21f08582d09b76e9222e002e02a8d8794f08b5 --- .../android/hardware/media/c2/IComponent.aidl | 12 ++- .../c2/IPooledGraphicBufferAllocator.aidl | 49 ++++++++++++ .../android/hardware/media/c2/IComponent.aidl | 25 +++++- .../c2/IPooledGraphicBufferAllocator.aidl | 77 +++++++++++++++++++ 4 files changed, 156 insertions(+), 7 deletions(-) create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl create mode 100644 media/c2/aidl/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl index 4439bc5e43..0a7e3c4b53 100644 --- a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl @@ -51,12 +51,18 @@ interface IComponent { long blockPoolId; android.hardware.media.c2.IConfigurable configurable; } - parcelable C2AidlGbAllocator { + parcelable GbAllocator { + ParcelFileDescriptor waitableFd; android.hardware.media.c2.IGraphicBufferAllocator igba; + } + parcelable PooledGbAllocator { ParcelFileDescriptor waitableFd; + long receiverId; + android.hardware.media.c2.IPooledGraphicBufferAllocator ipgba; } - union BlockPoolAllocator { + parcelable BlockPoolAllocator { int allocatorId; - android.hardware.media.c2.IComponent.C2AidlGbAllocator allocator; + @nullable android.hardware.media.c2.IComponent.GbAllocator gbAllocator; + @nullable android.hardware.media.c2.IComponent.PooledGbAllocator pooledGbAllocator; } } diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl new file mode 100644 index 0000000000..1a8c66d1db --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IPooledGraphicBufferAllocator { + android.hardware.media.c2.IPooledGraphicBufferAllocator.Allocation allocate(in android.hardware.media.c2.IPooledGraphicBufferAllocator.Description desc); + boolean deallocate(in int id); + parcelable Allocation { + int bufferId; + @nullable ParcelFileDescriptor fence; + } + parcelable Description { + int widthPixels; + int heightPixels; + int format; + long usage; + } +} diff --git a/media/c2/aidl/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/android/hardware/media/c2/IComponent.aidl index 6bd30b483a..6bcb5ff0ea 100644 --- a/media/c2/aidl/android/hardware/media/c2/IComponent.aidl +++ b/media/c2/aidl/android/hardware/media/c2/IComponent.aidl @@ -23,6 +23,7 @@ import android.hardware.media.c2.IGraphicBufferAllocator; import android.hardware.media.c2.IInputSink; import android.hardware.media.c2.IInputSurface; import android.hardware.media.c2.IInputSurfaceConnection; +import android.hardware.media.c2.IPooledGraphicBufferAllocator; import android.hardware.media.c2.WorkBundle; import android.os.ParcelFileDescriptor; @@ -56,20 +57,36 @@ interface IComponent { * graphic blocks. the waitable fd is used to create a specific type of * C2Fence which can be used for waiting until to allocate is not blocked. */ - parcelable C2AidlGbAllocator { + parcelable GbAllocator { + ParcelFileDescriptor waitableFd; IGraphicBufferAllocator igba; + } + + /** + * C2AIDL allocator interface based on media.bufferpool2 along with a waitable fd. + * + * The interface is used from a specific type of C2BlockPool to allocate + * graphic blocks. the waitable fd is used to create a specific type of + * C2Fence which can be used for waiting until to allocate is not blocked. + * receiverId is id of receiver IConnection of media.bufferpool2. + */ + parcelable PooledGbAllocator { ParcelFileDescriptor waitableFd; + long receiverId; + IPooledGraphicBufferAllocator ipgba; } + /** * Allocator for C2BlockPool. * * C2BlockPool will use a C2Allocator which is specified by an id. - * or C2AIDL allocator interface directly. + * Based on allocator id, allocator is specified. */ - union BlockPoolAllocator { + parcelable BlockPoolAllocator { int allocatorId; - C2AidlGbAllocator allocator; + @nullable GbAllocator gbAllocator; + @nullable PooledGbAllocator pooledGbAllocator; } /** diff --git a/media/c2/aidl/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl b/media/c2/aidl/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl new file mode 100644 index 0000000000..b599d52419 --- /dev/null +++ b/media/c2/aidl/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.media.c2; + +import android.os.ParcelFileDescriptor; + +/** + * Interface for decoder output buffer allocator for HAL process + * + * A graphic buffer for decoder output is allocated by the interface. + */ +@VintfStability +interface IPooledGraphicBufferAllocator { + /** + * A graphic buffer allocation. + * + * bufferId is id of buffer from a media.bufferpool2. The buffer is + * android.hardware.HardwareBuffer. + * fence is provided in order to signal readiness of the buffer I/O inside + * underlying Graphics subsystem. This is called a sync fence throughout Android framework. + */ + parcelable Allocation { + int bufferId; + @nullable ParcelFileDescriptor fence; + } + + /** + * Parameters for a graphic buffer allocation. + * + * Refer to AHardwareBuffer_Desc(libnativewindow) for details. + */ + parcelable Description { + int widthPixels; + int heightPixels; + int format; // AHardwareBuffer_Format + long usage; // AHardwareBuffer_UsageFlags + } + + /** + * Allocate a graphic buffer. + * deallocate() must be called after the allocated buffer is no longer needed. + * + * @param desc Allocation parameters. + * @return an id of a buffer, the id is created from media.bufferpool2 in order for + * caching and recycling, + * If underlying allocator is blocked, c2::Status::Blocked will be returned. + * Waitable fd must be obtained using the ndk object locally. The waitable fd must + * be passed to the receiver during BlockPool creation request via AIDL. + * @throws ServiceSpecificException with one of the following values: + * - `c2::Status::BAD_STATE` - The client is not in running states. + * - `c2::Status::BLOCKED` - Underlying graphics system is blocked. + * - `c2::Status::CORRUPTED` - Some unknown error occurred. + */ + Allocation allocate(in Description desc); + + /** + * De-allocate a graphic buffer by graphic buffer's unique id. + * + * @param id buffer id. + * @return {@code true} when de-allocate happened, {@code false} otherwise. + */ + boolean deallocate(in int id); +} -- GitLab From ae009083696b291a6fada63972dcad26041f28df Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Wed, 17 Jan 2024 21:35:23 +0000 Subject: [PATCH 233/418] media.bufferpool2: Support receiver side initated buffer transfer Bug: 254050314 Change-Id: I4c1b49e3bb99b8dbdccc44e5e1562833a585d454 --- .../media/bufferpool2/IClientManager.aidl | 1 + .../media/bufferpool2/IClientManager.aidl | 20 ++++++++++++++++++- .../bufferpool/aidl/default/ClientManager.cpp | 8 ++++++++ .../include/bufferpool2/ClientManager.h | 5 +++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl index 5899a403a6..298cb13ec3 100644 --- a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl @@ -35,6 +35,7 @@ package android.hardware.media.bufferpool2; @VintfStability interface IClientManager { android.hardware.media.bufferpool2.IClientManager.Registration registerSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); + android.hardware.media.bufferpool2.IClientManager.Registration registerPassiveSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); @VintfStability parcelable Registration { long connectionId; diff --git a/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl b/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl index a3054cb131..2bc77bcd68 100644 --- a/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl +++ b/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl @@ -40,7 +40,8 @@ interface IClientManager { /** * Sets up a buffer receiving communication node for the specified * buffer pool. A manager must create a IConnection to the buffer - * pool if it does not already have a connection. + * pool if it does not already have a connection. To transfer buffers + * using the interface, the sender must initiates transfer. * * @param bufferPool a buffer pool which is specified with the IAccessor. * The specified buffer pool is the owner of received buffers. @@ -52,4 +53,21 @@ interface IClientManager { * ResultStatus::CRITICAL_ERROR - Other errors. */ Registration registerSender(in IAccessor bufferPool); + + /** + * Sets up a buffer receiving communication node for the specified + * buffer pool. A manager must create a IConnection to the buffer + * pool if it does not already have a connection. To transfer buffers + * using the interface, the receiver must initiates transfer(on demand). + * + * @param bufferPool a buffer pool which is specified with the IAccessor. + * The specified buffer pool is the owner of received buffers. + * @return the Id of the communication node to the buffer pool. + * This id is used in FMQ to notify IAccessor that a buffer has been + * sent to that connection during transfers. + * @throws ServiceSpecificException with one of the following values: + * ResultStatus::NO_MEMORY - Memory allocation failure occurred. + * ResultStatus::CRITICAL_ERROR - Other errors. + */ + Registration registerPassiveSender(in IAccessor bufferPool); } diff --git a/media/bufferpool/aidl/default/ClientManager.cpp b/media/bufferpool/aidl/default/ClientManager.cpp index de1db50cd1..138790d650 100644 --- a/media/bufferpool/aidl/default/ClientManager.cpp +++ b/media/bufferpool/aidl/default/ClientManager.cpp @@ -422,6 +422,14 @@ void ClientManager::Impl::cleanUp(bool clearCache) { return ::ndk::ScopedAStatus::ok(); } +::ndk::ScopedAStatus ClientManager::registerPassiveSender( + const std::shared_ptr& in_bufferPool, Registration* _aidl_return) { + // TODO + (void) in_bufferPool; + (void) _aidl_return; + return ::ndk::ScopedAStatus::fromServiceSpecificError(ResultStatus::NOT_FOUND); +} + // Methods for local use. std::shared_ptr ClientManager::sInstance; std::mutex ClientManager::sInstanceLock; diff --git a/media/bufferpool/aidl/default/include/bufferpool2/ClientManager.h b/media/bufferpool/aidl/default/include/bufferpool2/ClientManager.h index bff75ba597..4b0916f3b8 100644 --- a/media/bufferpool/aidl/default/include/bufferpool2/ClientManager.h +++ b/media/bufferpool/aidl/default/include/bufferpool2/ClientManager.h @@ -34,6 +34,11 @@ struct ClientManager : public BnClientManager { ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* _aidl_return) override; + ::ndk::ScopedAStatus registerPassiveSender( + const std::shared_ptr& in_bufferPool, + ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* _aidl_return) + override; + /** Gets an instance. */ static std::shared_ptr getInstance(); -- GitLab From b61ee9eb3960a55040c658f403b24f1a69b24d81 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 15 Dec 2023 16:05:31 -0800 Subject: [PATCH 234/418] Add tuner callback for default bcradio HAL Implemented mocked tuner callback and added unit test for getting and setting the default broadcast radio HAL implementation. Bug: 316630344 Test: atest DefaultBroadcastRadioHalTestCase Change-Id: I4d41746f7725a79a8d398a1fb798fbc7cab94e09 --- .../test/DefaultBroadcastRadioHalTest.cpp | 32 ++++++ .../test/MockBroadcastRadioCallback.cpp | 93 ++++++++++++++++ .../default/test/MockBroadcastRadioCallback.h | 103 ++++++++++++++++++ 3 files changed, 228 insertions(+) create mode 100644 broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp create mode 100644 broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h diff --git a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp index a3704365bb..f0cc9a2390 100644 --- a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp +++ b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp @@ -14,10 +14,13 @@ * limitations under the License. */ +#include "MockBroadcastRadioCallback.h" + #include #include #include +#include #include namespace aidl::android::hardware::broadcastradio { @@ -74,10 +77,19 @@ const VirtualRadio& getAmFmMockTestRadio() { class DefaultBroadcastRadioHalTest : public testing::Test { public: void SetUp() override { + ::android::base::SetDefaultTag("BcRadioAidlDef.test"); const VirtualRadio& amFmRadioMockTest = getAmFmMockTestRadio(); mBroadcastRadioHal = ::ndk::SharedRefBase::make(amFmRadioMockTest); + mTunerCallback = ndk::SharedRefBase::make(); + } + + void TearDown() override { + mBroadcastRadioHal->unsetTunerCallback(); + EXPECT_FALSE(mTunerCallback->isTunerFailed()); } + std::shared_ptr mBroadcastRadioHal; + std::shared_ptr mTunerCallback; }; TEST_F(DefaultBroadcastRadioHalTest, GetAmFmRegionConfig) { @@ -136,4 +148,24 @@ TEST_F(DefaultBroadcastRadioHalTest, GetProperties) { } } +TEST_F(DefaultBroadcastRadioHalTest, SetTunerCallback) { + auto halResult = mBroadcastRadioHal->setTunerCallback(mTunerCallback); + + ASSERT_TRUE(halResult.isOk()); +} + +TEST_F(DefaultBroadcastRadioHalTest, SetTunerCallbackWithNull) { + auto halResult = mBroadcastRadioHal->setTunerCallback(nullptr); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_ARGUMENTS)); +} + +TEST_F(DefaultBroadcastRadioHalTest, UnsetTunerCallbackWithNull) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + + auto halResult = mBroadcastRadioHal->unsetTunerCallback(); + + ASSERT_TRUE(halResult.isOk()); +} + } // namespace aidl::android::hardware::broadcastradio diff --git a/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp new file mode 100644 index 0000000000..48f65fc9d8 --- /dev/null +++ b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "MockBroadcastRadioCallback.h" + +#include + +namespace aidl::android::hardware::broadcastradio { + +namespace { +using std::vector; +} + +MockBroadcastRadioCallback::MockBroadcastRadioCallback() { + mAntennaConnectionState = true; +} + +ScopedAStatus MockBroadcastRadioCallback::onTuneFailed(Result result, + const ProgramSelector& selector) { + LOG(DEBUG) << "onTuneFailed with result with " << selector.toString().c_str(); + if (result != Result::CANCELED) { + std::lock_guard lk(mLock); + tunerFailed = true; + } + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onCurrentProgramInfoChanged(const ProgramInfo& info) { + LOG(DEBUG) << "onCurrentProgramInfoChanged with " << info.toString().c_str(); + { + std::lock_guard lk(mLock); + mCurrentProgramInfo = info; + } + + mOnCurrentProgramInfoChangedFlag.notify(); + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onProgramListUpdated( + [[maybe_unused]] const ProgramListChunk& chunk) { + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onParametersUpdated( + [[maybe_unused]] const vector& parameters) { + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onAntennaStateChange(bool connected) { + if (!connected) { + std::lock_guard lk(mLock); + mAntennaConnectionState = false; + } + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onConfigFlagUpdated([[maybe_unused]] ConfigFlag in_flag, + [[maybe_unused]] bool in_value) { + return ndk::ScopedAStatus::ok(); +} + +bool MockBroadcastRadioCallback::waitOnCurrentProgramInfoChangedCallback() { + return mOnCurrentProgramInfoChangedFlag.wait(); +} + +void MockBroadcastRadioCallback::reset() { + mOnCurrentProgramInfoChangedFlag.reset(); +} + +bool MockBroadcastRadioCallback::isTunerFailed() { + std::lock_guard lk(mLock); + return tunerFailed; +} + +ProgramInfo MockBroadcastRadioCallback::getCurrentProgramInfo() { + std::lock_guard lk(mLock); + return mCurrentProgramInfo; +} + +} // namespace aidl::android::hardware::broadcastradio diff --git a/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h new file mode 100644 index 0000000000..2ae03e3f16 --- /dev/null +++ b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include + +namespace aidl::android::hardware::broadcastradio { + +namespace { +using ::ndk::ScopedAStatus; + +} // namespace + +class MockBroadcastRadioCallback final : public BnTunerCallback { + public: + explicit MockBroadcastRadioCallback(); + ScopedAStatus onTuneFailed(Result result, const ProgramSelector& selector) override; + ScopedAStatus onCurrentProgramInfoChanged(const ProgramInfo& info) override; + ScopedAStatus onProgramListUpdated(const ProgramListChunk& chunk) override; + ScopedAStatus onParametersUpdated(const std::vector& parameters) override; + ScopedAStatus onAntennaStateChange(bool connected) override; + ScopedAStatus onConfigFlagUpdated(ConfigFlag in_flag, bool in_value) override; + + bool waitOnCurrentProgramInfoChangedCallback(); + bool isTunerFailed(); + void reset(); + + ProgramInfo getCurrentProgramInfo(); + + private: + class CallbackFlag final { + public: + CallbackFlag(int timeoutMs) { mTimeoutMs = timeoutMs; } + /** + * Notify that the callback is called. + */ + void notify() { + std::unique_lock lock(mMutex); + mCalled = true; + lock.unlock(); + mCv.notify_all(); + }; + + /** + * Wait for the timeout passed into the constructor. + */ + bool wait() { + std::unique_lock lock(mMutex); + return mCv.wait_for(lock, std::chrono::milliseconds(mTimeoutMs), + [this] { return mCalled; }); + }; + + /** + * Reset the callback to not called. + */ + void reset() { + std::unique_lock lock(mMutex); + mCalled = false; + } + + private: + std::mutex mMutex; + bool mCalled GUARDED_BY(mMutex) = false; + std::condition_variable mCv; + int mTimeoutMs; + }; + + std::mutex mLock; + bool mAntennaConnectionState GUARDED_BY(mLock); + bool tunerFailed GUARDED_BY(mLock) = false; + ProgramInfo mCurrentProgramInfo GUARDED_BY(mLock); + utils::ProgramInfoSet mProgramList GUARDED_BY(mLock); + CallbackFlag mOnCurrentProgramInfoChangedFlag = CallbackFlag(IBroadcastRadio::TUNER_TIMEOUT_MS); +}; + +} // namespace aidl::android::hardware::broadcastradio -- GitLab From 2478e178a1d947172a3e0a51167d6261dbb828ac Mon Sep 17 00:00:00 2001 From: Hongguang Chen Date: Fri, 19 Jan 2024 16:55:03 -0800 Subject: [PATCH 235/418] Rename mDNS offload feature name Bug: 318332352 Test: pm list features Test: atest android.app.cts.SystemFeaturesTest Test: atest VtsHalWifiStaIfaceTargetTest Change-Id: I57d8f955c3f5d39814f36b662fee8d045c8c5150 --- wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f09a26bbe6..fa7149ff55 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -71,7 +71,7 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { // Checks if the mDNS Offload is supported by any NIC. bool isMdnsOffloadPresentInNIC() { - return testing::deviceSupportsFeature("android.hardware.mdns_offload"); + return testing::deviceSupportsFeature("com.google.android.tv.mdns_offload"); } // Detected panel TV device by using ro.oem.key1 property. -- GitLab From aee7ba034565da6fc6457e44fd3bd54ff89f6f0e Mon Sep 17 00:00:00 2001 From: Hongguang Chen Date: Fri, 19 Jan 2024 16:55:03 -0800 Subject: [PATCH 236/418] Rename mDNS offload feature name Bug: 318332352 Test: pm list features Test: atest android.app.cts.SystemFeaturesTest Test: atest VtsHalWifiStaIfaceTargetTest Merged-In: I57d8f955c3f5d39814f36b662fee8d045c8c5150 Change-Id: I57d8f955c3f5d39814f36b662fee8d045c8c5150 --- wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f09a26bbe6..fa7149ff55 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -71,7 +71,7 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { // Checks if the mDNS Offload is supported by any NIC. bool isMdnsOffloadPresentInNIC() { - return testing::deviceSupportsFeature("android.hardware.mdns_offload"); + return testing::deviceSupportsFeature("com.google.android.tv.mdns_offload"); } // Detected panel TV device by using ro.oem.key1 property. -- GitLab From d2e9dff01afc5dbf89d1661d3091aeab0ea452b9 Mon Sep 17 00:00:00 2001 From: Ted Wang Date: Tue, 7 Nov 2023 09:13:33 +0000 Subject: [PATCH 237/418] Bluetooth Finder: Interface for Bluetooth Finder and Freeze the AIDL API This allows NearbyService, which depends on this API, to be merged from git_main to udc-mainline-prod. Only the API is merged, without VTS and default implementation since this is a V+ feature. Bug: 307897939 Test: m android.hardware.bluetooth.finder-update-api Merged-In: I111b9e20831c094dcb42432e9d83f9fd326ff953 Change-Id: I111b9e20831c094dcb42432e9d83f9fd326ff953 (cherry picked from commit 36556927b19dc01389fd9f91340f816be4dc09ef) --- bluetooth/finder/aidl/Android.bp | 42 +++++++++++++++++ .../android.hardware.bluetooth.finder/1/.hash | 1 + .../hardware/bluetooth/finder/Eid.aidl | 38 +++++++++++++++ .../bluetooth/finder/IBluetoothFinder.aidl | 40 ++++++++++++++++ .../hardware/bluetooth/finder/Eid.aidl | 38 +++++++++++++++ .../bluetooth/finder/IBluetoothFinder.aidl | 40 ++++++++++++++++ .../hardware/bluetooth/finder/Eid.aidl | 25 ++++++++++ .../bluetooth/finder/IBluetoothFinder.aidl | 46 +++++++++++++++++++ .../compatibility_matrix.9.xml | 8 ++++ 9 files changed, 278 insertions(+) create mode 100644 bluetooth/finder/aidl/Android.bp create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/Eid.aidl create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/IBluetoothFinder.aidl create mode 100644 bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl create mode 100644 bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl diff --git a/bluetooth/finder/aidl/Android.bp b/bluetooth/finder/aidl/Android.bp new file mode 100644 index 0000000000..76cc3adcca --- /dev/null +++ b/bluetooth/finder/aidl/Android.bp @@ -0,0 +1,42 @@ +// Copyright (C) 2023 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +aidl_interface { + name: "android.hardware.bluetooth.finder", + vendor_available: true, + srcs: ["android/hardware/bluetooth/finder/*.aidl"], + stability: "vintf", + + backend: { + ndk: { + enabled: true, + }, + java: { + enabled: true, + platform_apis: true, + }, + }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + +} diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash new file mode 100644 index 0000000000..0c1f694c8b --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash @@ -0,0 +1 @@ +078986eb5ef2dd183974ee4c9a79dc9b71bea088 diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl new file mode 100644 index 0000000000..42461c5904 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +parcelable Eid { + byte[20] bytes; +} diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl new file mode 100644 index 0000000000..4bc9041499 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +interface IBluetoothFinder { + void sendEids(in android.hardware.bluetooth.finder.Eid[] eids); + void setPoweredOffFinderMode(in boolean enable); + boolean getPoweredOffFinderMode(); +} diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/Eid.aidl new file mode 100644 index 0000000000..42461c5904 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/Eid.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +parcelable Eid { + byte[20] bytes; +} diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/IBluetoothFinder.aidl new file mode 100644 index 0000000000..4bc9041499 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +interface IBluetoothFinder { + void sendEids(in android.hardware.bluetooth.finder.Eid[] eids); + void setPoweredOffFinderMode(in boolean enable); + boolean getPoweredOffFinderMode(); +} diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl new file mode 100644 index 0000000000..ae9b1590ee --- /dev/null +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.finder; + +/** + * Ephemeral Identifier + */ +@VintfStability +parcelable Eid { + byte[20] bytes; +} diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl new file mode 100644 index 0000000000..615739b1cf --- /dev/null +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.finder; + +import android.hardware.bluetooth.finder.Eid; + +@VintfStability +interface IBluetoothFinder { + /** + * API to set the EIDs to the Bluetooth Controller + * + * @param eids array of 20 bytes EID to the Bluetooth + * controller + */ + void sendEids(in Eid[] eids); + + /** + * API to enable the powered-off finder feature, which allows the Bluetooth controller to send + * beacons after the device is powered off. + * + * @param enable true to enable; false to disable + */ + void setPoweredOffFinderMode(in boolean enable); + + /** + * API for retrieving feature enablement status + * + * @return the value last set by setPoweredOffFinderMode, false if setPoweredOffFinderMode was + * never been invoked since boot. + */ + boolean getPoweredOffFinderMode(); +} diff --git a/compatibility_matrices/compatibility_matrix.9.xml b/compatibility_matrices/compatibility_matrix.9.xml index 2f18a380d3..0a17b9462c 100644 --- a/compatibility_matrices/compatibility_matrix.9.xml +++ b/compatibility_matrices/compatibility_matrix.9.xml @@ -155,6 +155,14 @@ default + + android.hardware.bluetooth.finder + 1 + + IBluetoothFinder + default + + android.hardware.boot -- GitLab From 333f641f86739662e0b83c4c5ac5e92526e1a2b3 Mon Sep 17 00:00:00 2001 From: Yahav Nussbaum Date: Thu, 4 Jan 2024 22:30:03 +0000 Subject: [PATCH 238/418] Make android.hardware.bluetooth.finder apex_avilable for com.android.tethering Bug: 307897939 Test: m android.hardware.bluetooth.finder-update-api (cherry picked from https://android-review.googlesource.com/q/commit:2f1b39cce9a24a969edba744384a2cd4c310f71c) Merged-In: I7c40cdfc36180d0ab25d9862b29bb4015d03adb0 Change-Id: I7c40cdfc36180d0ab25d9862b29bb4015d03adb0 --- bluetooth/finder/aidl/Android.bp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bluetooth/finder/aidl/Android.bp b/bluetooth/finder/aidl/Android.bp index 76cc3adcca..cc05cd8ee1 100644 --- a/bluetooth/finder/aidl/Android.bp +++ b/bluetooth/finder/aidl/Android.bp @@ -28,7 +28,11 @@ aidl_interface { }, java: { enabled: true, - platform_apis: true, + sdk_version: "module_current", + min_sdk_version: "30", + apex_available: [ + "com.android.tethering", + ], }, }, versions_with_info: [ -- GitLab From a47e995b3b3f09e5d514a214bfbd2c6008bebe96 Mon Sep 17 00:00:00 2001 From: Yahav Nussbaum Date: Sat, 6 Jan 2024 16:53:01 +0000 Subject: [PATCH 239/418] Clarify that an EID is a Find My Device network EID Bug: 318931934 Test: m android.hardware.bluetooth.finder-update-api (cherry picked from https://android-review.googlesource.com/q/commit:31f1ad2409a33bc11fcc2e2a2e8b7f9e73d7af24) Merged-In: Ie888bc81bd8b91040aa308b9b0d2be4a6137e483 Change-Id: Ie888bc81bd8b91040aa308b9b0d2be4a6137e483 --- .../finder/aidl/android/hardware/bluetooth/finder/Eid.aidl | 2 +- .../android/hardware/bluetooth/finder/IBluetoothFinder.aidl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl index ae9b1590ee..0de306f819 100644 --- a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl @@ -17,7 +17,7 @@ package android.hardware.bluetooth.finder; /** - * Ephemeral Identifier + * Find My Device network ephemeral identifier */ @VintfStability parcelable Eid { diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl index 615739b1cf..a374c2ad09 100644 --- a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -21,7 +21,7 @@ import android.hardware.bluetooth.finder.Eid; @VintfStability interface IBluetoothFinder { /** - * API to set the EIDs to the Bluetooth Controller + * API to set Find My Device network EIDs to the Bluetooth Controller * * @param eids array of 20 bytes EID to the Bluetooth * controller -- GitLab From ffe00b7fb8af77232c39021d88ae508d216dcc4d Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 15 Dec 2023 16:05:31 -0800 Subject: [PATCH 240/418] Add tune test for default bcradio HAL Added unit tests for tune method in the default AIDL broadcast radio HAL implementation. Bug: 316630344 Test: atest DefaultBroadcastRadioHalTestCase Change-Id: I62c6ca088c8797fe6c3e9ea1d1fe76d5d7aa5c23 --- .../test/DefaultBroadcastRadioHalTest.cpp | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp index f0cc9a2390..8e85a1b40b 100644 --- a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp +++ b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp @@ -72,6 +72,13 @@ const VirtualRadio& getAmFmMockTestRadio() { return amFmRadioMockTestRadio; } +int getSignalAcquisitionFlags(const ProgramInfo& info) { + return (info.infoFlags & + (ProgramInfo::FLAG_SIGNAL_ACQUISITION | ProgramInfo::FLAG_HD_SIS_ACQUISITION | + ProgramInfo::FLAG_HD_AUDIO_ACQUISITION)) >> + 6; +} + } // namespace class DefaultBroadcastRadioHalTest : public testing::Test { @@ -88,6 +95,28 @@ class DefaultBroadcastRadioHalTest : public testing::Test { EXPECT_FALSE(mTunerCallback->isTunerFailed()); } + void verifyUpdatedProgramInfo(const ProgramSelector& sel) { + ASSERT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); + ProgramInfo infoCb1 = mTunerCallback->getCurrentProgramInfo(); + mTunerCallback->reset(); + if (sel.primaryId.type == IdentifierType::HD_STATION_ID_EXT) { + EXPECT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); + ProgramInfo infoCb2 = mTunerCallback->getCurrentProgramInfo(); + mTunerCallback->reset(); + EXPECT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); + ProgramInfo infoCb3 = mTunerCallback->getCurrentProgramInfo(); + mTunerCallback->reset(); + EXPECT_EQ(infoCb1.selector, sel); + EXPECT_EQ(getSignalAcquisitionFlags(infoCb1), 0b001); + EXPECT_EQ(infoCb2.selector, sel); + EXPECT_EQ(getSignalAcquisitionFlags(infoCb2), 0b011); + EXPECT_EQ(infoCb3.selector, sel); + EXPECT_EQ(getSignalAcquisitionFlags(infoCb3), 0b111); + } else { + EXPECT_EQ(infoCb1.selector, sel); + } + } + std::shared_ptr mBroadcastRadioHal; std::shared_ptr mTunerCallback; }; @@ -168,4 +197,53 @@ TEST_F(DefaultBroadcastRadioHalTest, UnsetTunerCallbackWithNull) { ASSERT_TRUE(halResult.isOk()); } +TEST_F(DefaultBroadcastRadioHalTest, TuneWithAmFmSelectorInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + + auto halResult = mBroadcastRadioHal->tune(kFmSel1); + + ASSERT_TRUE(halResult.isOk()); + ASSERT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); + ProgramInfo infoCb = mTunerCallback->getCurrentProgramInfo(); + EXPECT_EQ(infoCb.selector, kFmSel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWithHdSelectorInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + + auto halResult = mBroadcastRadioHal->tune(kFmHdFreq1Sel2); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel2); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWitFrequencyOfHdProgramInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + + auto halResult = mBroadcastRadioHal->tune( + utils::makeSelectorAmfm(utils::getHdFrequency(kFmHdFreq1Sel1))); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWithInvalidSelector) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + ProgramSelector invalidSelector = {utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, 0), + {}}; + + auto halResult = mBroadcastRadioHal->tune(invalidSelector); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_ARGUMENTS)); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWithoutTunerCallback) { + auto halResult = mBroadcastRadioHal->tune(kFmSel1); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); +} + } // namespace aidl::android::hardware::broadcastradio -- GitLab From 1c1fc91e543428546b34773d3dd16b63a449451f Mon Sep 17 00:00:00 2001 From: Matt Buckley Date: Mon, 22 Jan 2024 23:44:13 +0000 Subject: [PATCH 241/418] Add timestamps to FMQ ChannelMessage Figuring out relative message ordering is harder with FMQ because messages on different channels without timestamps do not have a guaranteed ordering. This CL adds timestamps to all channel messages to ensure relative ordering is always known precisely, and to make timing more accurate. Bug: 321810554 Test: atest VtsHalPowerTargetTest Change-Id: Iac341dec2526ac46ae9db57aadbd267224a77989 --- .../android/hardware/power/ChannelMessage.aidl | 3 ++- .../android/hardware/power/WorkDurationFixedV1.aidl | 1 - .../aidl/android/hardware/power/ChannelMessage.aidl | 13 ++++++++----- .../android/hardware/power/WorkDurationFixedV1.aidl | 6 ------ 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl index 25f01c0d91..ab38fcc21f 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl @@ -35,10 +35,11 @@ package android.hardware.power; @FixedSize @VintfStability parcelable ChannelMessage { int sessionID; + long timeStampNanos; android.hardware.power.ChannelMessage.ChannelMessageContents data; @FixedSize @VintfStability union ChannelMessageContents { - int[20] tids = {(-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */, (-1) /* -1 */}; + long[16] reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; long targetDuration; android.hardware.power.SessionHint hint; android.hardware.power.ChannelMessage.ChannelMessageContents.SessionModeSetter mode; diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl index 8cd246d6bf..45310b8927 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl @@ -34,7 +34,6 @@ package android.hardware.power; @FixedSize @VintfStability parcelable WorkDurationFixedV1 { - long timeStampNanos; long durationNanos; long workPeriodStartTimestampNanos; long cpuDurationNanos; diff --git a/power/aidl/android/hardware/power/ChannelMessage.aidl b/power/aidl/android/hardware/power/ChannelMessage.aidl index 4747d90463..fa169114bc 100644 --- a/power/aidl/android/hardware/power/ChannelMessage.aidl +++ b/power/aidl/android/hardware/power/ChannelMessage.aidl @@ -37,6 +37,12 @@ parcelable ChannelMessage { */ int sessionID; + /** + * Timestamp in nanoseconds based on CLOCK_MONOTONIC when the message was sent, + * used to ensure all messages can be processed in a coherent order. + */ + long timeStampNanos; + /** * A union defining the different messages that can be passed through the * channel. Each type corresponds to a different call in IPowerHintSession. @@ -47,12 +53,9 @@ parcelable ChannelMessage { @VintfStability union ChannelMessageContents { /** - * List of TIDs for this session to change to. Can be used in cases - * where HintManagerService is not needed to validate the TIDs, such as - * when all TIDs directly belong to the process that owns the session. + * Reserves the maximum fixed size for the ChannelMessage. */ - int[20] tids = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; + long[16] reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; /** * Setting this field will update the session’s target duration, equivalent diff --git a/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl b/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl index 2d202ff198..ef5c755cdb 100644 --- a/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl +++ b/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl @@ -19,12 +19,6 @@ package android.hardware.power; @FixedSize @VintfStability parcelable WorkDurationFixedV1 { - /** - * Timestamp in nanoseconds based on CLOCK_MONOTONIC when the duration - * sample was measured. - */ - long timeStampNanos; - /** * Total work duration in nanoseconds. */ -- GitLab From 6c9bdb839f86874ccff3b8d16c9275e02087b4fc Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Tue, 23 Jan 2024 09:32:04 +0000 Subject: [PATCH 242/418] KeyMint: test HAL version matches feature Test: VtsAidlKeyMintTargetTest Bug: 304309651 Change-Id: I7e38c2ab3ff4f6b5f9035af865ca5ebe6ff24cc1 --- .../vts/functional/KeyMintAidlTestBase.cpp | 44 ++++++++++ .../aidl/vts/functional/KeyMintAidlTestBase.h | 2 + .../aidl/vts/functional/KeyMintTest.cpp | 85 +++++++++++++++++++ 3 files changed, 131 insertions(+) diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp index d3f6ae393e..087f7632b0 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp @@ -64,6 +64,13 @@ namespace test { namespace { +// Possible values for the feature version. Assumes that future KeyMint versions +// will continue with the 100 * AIDL_version numbering scheme. +// +// Must be kept in numerically increasing order. +const int32_t kFeatureVersions[] = {10, 11, 20, 30, 40, 41, 100, 200, + 300, 400, 500, 600, 700, 800, 900}; + // Invalid value for a patchlevel (which is of form YYYYMMDD). const uint32_t kInvalidPatchlevel = 99998877; @@ -2278,6 +2285,43 @@ bool check_feature(const std::string& name) { return hasFeature; } +// Return the numeric value associated with a feature. +std::optional keymint_feature_value(bool strongbox) { + std::string name = strongbox ? FEATURE_STRONGBOX_KEYSTORE : FEATURE_HARDWARE_KEYSTORE; + ::android::String16 name16(name.c_str()); + ::android::sp<::android::IServiceManager> sm(::android::defaultServiceManager()); + ::android::sp<::android::IBinder> binder( + sm->waitForService(::android::String16("package_native"))); + if (binder == nullptr) { + GTEST_LOG_(ERROR) << "waitForService package_native failed"; + return std::nullopt; + } + ::android::sp<::android::content::pm::IPackageManagerNative> packageMgr = + ::android::interface_cast<::android::content::pm::IPackageManagerNative>(binder); + if (packageMgr == nullptr) { + GTEST_LOG_(ERROR) << "Cannot find package manager"; + return std::nullopt; + } + + // Package manager has no mechanism to retrieve the version of a feature, + // only to indicate whether a certain version or above is present. + std::optional result = std::nullopt; + for (auto version : kFeatureVersions) { + bool hasFeature = false; + auto status = packageMgr->hasSystemFeature(name16, version, &hasFeature); + if (!status.isOk()) { + GTEST_LOG_(ERROR) << "hasSystemFeature('" << name << "', " << version + << ") failed: " << status; + return result; + } else if (hasFeature) { + result = version; + } else { + break; + } + } + return result; +} + } // namespace test } // namespace aidl::android::hardware::security::keymint diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h index 4fb711c7bb..4ed769878a 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h @@ -56,6 +56,7 @@ constexpr uint64_t kOpHandleSentinel = 0xFFFFFFFFFFFFFFFF; const string FEATURE_KEYSTORE_APP_ATTEST_KEY = "android.hardware.keystore.app_attest_key"; const string FEATURE_STRONGBOX_KEYSTORE = "android.hardware.strongbox_keystore"; +const string FEATURE_HARDWARE_KEYSTORE = "android.hardware.hardware_keystore"; // RAII class to ensure that a keyblob is deleted regardless of how a test exits. class KeyBlobDeleter { @@ -444,6 +445,7 @@ void check_maced_pubkey(const MacedPublicKey& macedPubKey, bool testMode, void p256_pub_key(const vector& coseKeyData, EVP_PKEY_Ptr* signingKey); void device_id_attestation_check_acceptable_error(Tag tag, const ErrorCode& result); bool check_feature(const std::string& name); +std::optional keymint_feature_value(bool strongbox); AuthorizationSet HwEnforcedAuthorizations(const vector& key_characteristics); AuthorizationSet SwEnforcedAuthorizations(const vector& key_characteristics); diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index a2e20dcce5..3d2d7fb83b 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -8794,6 +8795,90 @@ TEST_P(VsrRequirementTest, Vsr14Test) { INSTANTIATE_KEYMINT_AIDL_TEST(VsrRequirementTest); +class InstanceTest : public testing::Test { + protected: + static void SetUpTestSuite() { + auto params = ::android::getAidlHalInstanceNames(IKeyMintDevice::descriptor); + for (auto& param : params) { + ASSERT_TRUE(AServiceManager_isDeclared(param.c_str())) + << "IKeyMintDevice instance " << param << " found but not declared."; + ::ndk::SpAIBinder binder(AServiceManager_waitForService(param.c_str())); + auto keymint = IKeyMintDevice::fromBinder(binder); + ASSERT_NE(keymint, nullptr) << "Failed to get IKeyMintDevice instance " << param; + + KeyMintHardwareInfo info; + ASSERT_TRUE(keymint->getHardwareInfo(&info).isOk()); + ASSERT_EQ(keymints_.count(info.securityLevel), 0) + << "There must be exactly one IKeyMintDevice with security level " + << info.securityLevel; + + keymints_[info.securityLevel] = std::move(keymint); + } + } + + int32_t AidlVersion(shared_ptr keymint) { + int32_t version = 0; + auto status = keymint->getInterfaceVersion(&version); + if (!status.isOk()) { + ADD_FAILURE() << "Failed to determine interface version"; + } + return version; + } + + static std::map> keymints_; +}; + +std::map> InstanceTest::keymints_; + +// @VsrTest = VSR-3.10-017 +// Check that the AIDL version advertised by the HAL service matches +// the value in the package manager feature version. +TEST_F(InstanceTest, AidlVersionInFeature) { + if (is_gsi_image()) { + GTEST_SKIP() << "Versions not required to match under GSI"; + } + if (keymints_.count(SecurityLevel::TRUSTED_ENVIRONMENT) == 1) { + auto tee = keymints_.find(SecurityLevel::TRUSTED_ENVIRONMENT)->second; + int32_t tee_aidl_version = AidlVersion(tee) * 100; + std::optional tee_feature_version = keymint_feature_value(/* strongbox */ false); + ASSERT_TRUE(tee_feature_version.has_value()); + EXPECT_EQ(tee_aidl_version, tee_feature_version.value()); + } + if (keymints_.count(SecurityLevel::STRONGBOX) == 1) { + auto sb = keymints_.find(SecurityLevel::STRONGBOX)->second; + int32_t sb_aidl_version = AidlVersion(sb) * 100; + std::optional sb_feature_version = keymint_feature_value(/* strongbox */ true); + ASSERT_TRUE(sb_feature_version.has_value()); + EXPECT_EQ(sb_aidl_version, sb_feature_version.value()); + } +} + +// @VsrTest = VSR-3.10-017 +// Check that if package manager advertises support for KeyMint of a particular version, that +// version is present as a HAL service. +TEST_F(InstanceTest, FeatureVersionInAidl) { + if (is_gsi_image()) { + GTEST_SKIP() << "Versions not required to match under GSI"; + } + std::optional tee_feature_version = keymint_feature_value(/* strongbox */ false); + if (tee_feature_version.has_value() && tee_feature_version.value() >= 100) { + // Feature flag advertises the existence of KeyMint; check it is present. + ASSERT_EQ(keymints_.count(SecurityLevel::TRUSTED_ENVIRONMENT), 1); + auto tee = keymints_.find(SecurityLevel::TRUSTED_ENVIRONMENT)->second; + int32_t tee_aidl_version = AidlVersion(tee) * 100; + EXPECT_EQ(tee_aidl_version, tee_feature_version.value()); + } + + std::optional sb_feature_version = keymint_feature_value(/* strongbox */ true); + if (sb_feature_version.has_value() && sb_feature_version.value() >= 100) { + // Feature flag advertises the existence of KeyMint; check it is present. + ASSERT_EQ(keymints_.count(SecurityLevel::STRONGBOX), 1); + auto sb = keymints_.find(SecurityLevel::STRONGBOX)->second; + int32_t sb_aidl_version = AidlVersion(sb) * 100; + EXPECT_EQ(sb_aidl_version, sb_feature_version.value()); + } +} + } // namespace aidl::android::hardware::security::keymint::test using aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase; -- GitLab From ec10c484b7d7b028cb271b6fd790ec9cd507d98a Mon Sep 17 00:00:00 2001 From: Seth Moore Date: Tue, 23 Jan 2024 20:37:24 +0000 Subject: [PATCH 243/418] Fix incorrect code comment about keymint version Test: No test, just a comment change Bug: 321632558 Change-Id: I7f5db4959dd9e3bc598fa2939121f37b3f0abb04 --- security/keymint/aidl/vts/functional/KeyMintTest.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index a2e20dcce5..4dc303c470 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -1027,9 +1027,9 @@ TEST_P(NewKeyGenerationTest, RsaWithMissingValidity) { * The KeyMint V1 spec required that CERTIFICATE_NOT_{BEFORE,AFTER} be * specified for asymmetric key generation. However, this was not * checked at the time so we can only be strict about checking this for - * implementations of KeyMint version 2 and above. + * implementations of KeyMint version 3 and above. */ - GTEST_SKIP() << "Validity strict since KeyMint v2"; + GTEST_SKIP() << "Validity strict since KeyMint v3"; } // Per RFC 5280 4.1.2.5, an undefined expiration (not-after) field should be set to // GeneralizedTime 999912312359559, which is 253402300799000 ms from Jan 1, 1970. -- GitLab From 5e7fcb4bbda34bdef17b5797efc0dc79f5af574c Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Wed, 8 Nov 2023 07:00:22 -0800 Subject: [PATCH 244/418] Remove superfluous include directives Remove #include "AudioHalBinderServiceUtil.h" from source files that do not use the AudioHalBinderServiceUtil class directly. Change-Id: Iff085856df91c2818dbd06bf790233cbb82a3379 Signed-off-by: Bart Van Assche --- audio/aidl/vts/EffectFactoryHelper.h | 1 + audio/aidl/vts/EffectHelper.h | 1 - audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp | 1 - audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp | 1 - audio/aidl/vts/VtsHalEqualizerTargetTest.cpp | 1 - 5 files changed, 1 insertion(+), 4 deletions(-) diff --git a/audio/aidl/vts/EffectFactoryHelper.h b/audio/aidl/vts/EffectFactoryHelper.h index ca36655655..7100431dc5 100644 --- a/audio/aidl/vts/EffectFactoryHelper.h +++ b/audio/aidl/vts/EffectFactoryHelper.h @@ -24,6 +24,7 @@ #include #include +#include "AudioHalBinderServiceUtil.h" #include "TestUtils.h" using namespace android; diff --git a/audio/aidl/vts/EffectHelper.h b/audio/aidl/vts/EffectHelper.h index 9fa7f9f74a..0be4e5094f 100644 --- a/audio/aidl/vts/EffectHelper.h +++ b/audio/aidl/vts/EffectHelper.h @@ -35,7 +35,6 @@ #include #include -#include "AudioHalBinderServiceUtil.h" #include "EffectFactoryHelper.h" #include "TestUtils.h" diff --git a/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp b/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp index 523f20da99..adf1da77cd 100644 --- a/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp @@ -32,7 +32,6 @@ #include -#include "AudioHalBinderServiceUtil.h" #include "EffectFactoryHelper.h" #include "TestUtils.h" diff --git a/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp b/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp index 01cdd816f5..1e6a49f80d 100644 --- a/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp @@ -29,7 +29,6 @@ #include #include -#include "AudioHalBinderServiceUtil.h" #include "EffectFactoryHelper.h" #include "EffectHelper.h" #include "TestUtils.h" diff --git a/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp b/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp index 76838cef5a..d7dbe3883a 100644 --- a/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp +++ b/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp @@ -29,7 +29,6 @@ #include #include -#include "AudioHalBinderServiceUtil.h" #include "EffectHelper.h" #include "TestUtils.h" -- GitLab From 3fd567437c093ed4c7fa06d0bec1c622f5b00416 Mon Sep 17 00:00:00 2001 From: sangyun Date: Wed, 24 Jan 2024 13:40:54 +0900 Subject: [PATCH 245/418] Allows to skip old tests for new networks. If the getDataRegistrationState interface is tested on a new RAT (e.g. 5g) that was not supported in this version, this allows the test to be skipped for newer networks. Bug: 303672201 Test: atest VtsHalRadioV1_0TargetTest:PerInstance/RadioHidlTest Change-Id: I1bbaefd1f1f41bb4b46fb515e5a1bc6b80153c74 --- radio/1.0/vts/functional/radio_hidl_hal_data.cpp | 8 +++++++- radio/1.2/vts/functional/radio_hidl_hal_api.cpp | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/radio/1.0/vts/functional/radio_hidl_hal_data.cpp b/radio/1.0/vts/functional/radio_hidl_hal_data.cpp index 38cb33b07e..e89f4ee5df 100644 --- a/radio/1.0/vts/functional/radio_hidl_hal_data.cpp +++ b/radio/1.0/vts/functional/radio_hidl_hal_data.cpp @@ -16,6 +16,7 @@ #include #include +#include #include using namespace ::android::hardware::radio::V1_0; @@ -72,11 +73,16 @@ TEST_P(RadioHidlTest, getDataRegistrationState) { CellIdentityTdscdma cit = cellIdentities.cellIdentityTdscdma[0]; hidl_mcc = cit.mcc; hidl_mnc = cit.mnc; - } else { + } else if (cellInfoType == CellInfoType::CDMA) { // CellIndentityCdma has no mcc and mnc. EXPECT_EQ(CellInfoType::CDMA, cellInfoType); EXPECT_EQ(1, cellIdentities.cellIdentityCdma.size()); checkMccMnc = false; + } else { + // This test can be skipped for newer networks if a new RAT (e.g. 5g) that was not + // supported in this version is added to the response from a modem that supports a new + // version of this interface. + GTEST_SKIP() << "Exempt from 1.0 test: camped on a new network:" << (int)cellInfoType; } // Check only one CellIdentity is size 1, and others must be 0. diff --git a/radio/1.2/vts/functional/radio_hidl_hal_api.cpp b/radio/1.2/vts/functional/radio_hidl_hal_api.cpp index 2bce2f957b..51ca96734f 100644 --- a/radio/1.2/vts/functional/radio_hidl_hal_api.cpp +++ b/radio/1.2/vts/functional/radio_hidl_hal_api.cpp @@ -807,11 +807,16 @@ TEST_P(RadioHidlTest_v1_2, getDataRegistrationState) { cellIdentities.cellIdentityTdscdma[0]; hidl_mcc = cit.base.mcc; hidl_mnc = cit.base.mnc; - } else { + } else if (cellInfoType == CellInfoType::CDMA) { // CellIndentityCdma has no mcc and mnc. EXPECT_EQ(CellInfoType::CDMA, cellInfoType); EXPECT_EQ(1, cellIdentities.cellIdentityCdma.size()); checkMccMnc = false; + } else { + // This test can be skipped for newer networks if a new RAT (e.g. 5g) that was not + // supported in this version is added to the response from a modem that supports a new + // version of this interface. + GTEST_SKIP() << "Exempt from 1.2 test: camped on a new network:" << (int)cellInfoType; } // Check only one CellIdentity is size 1, and others must be 0. -- GitLab From 9eab79b8c9d714496de74533ca9408929b238250 Mon Sep 17 00:00:00 2001 From: Shikha Panwar Date: Fri, 19 Jan 2024 11:05:11 +0000 Subject: [PATCH 246/418] Sk VTS: Use libdice_policy_builder With libdice_policy being refactored, get VTS to use the builder library. Test: Built the test-suite Bug: 291238565 Change-Id: I149ec1ba9ee66fd19cbf0d0a6f3baa12ea2474ed --- security/secretkeeper/aidl/vts/Android.bp | 4 ++-- security/secretkeeper/aidl/vts/secretkeeper_cli.rs | 5 +++-- security/secretkeeper/aidl/vts/secretkeeper_test_client.rs | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/security/secretkeeper/aidl/vts/Android.bp b/security/secretkeeper/aidl/vts/Android.bp index 9d1701a303..0061e88363 100644 --- a/security/secretkeeper/aidl/vts/Android.bp +++ b/security/secretkeeper/aidl/vts/Android.bp @@ -50,7 +50,7 @@ rust_test { "libbinder_rs", "libciborium", "libcoset", - "libdice_policy", + "libdice_policy_builder", "liblog_rust", "libsecretkeeper_client", "libsecretkeeper_comm_nostd", @@ -72,7 +72,7 @@ rust_binary { "libbinder_rs", "libclap", "libcoset", - "libdice_policy", + "libdice_policy_builder", "libhex", "liblog_rust", "libsecretkeeper_client", diff --git a/security/secretkeeper/aidl/vts/secretkeeper_cli.rs b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs index 5f0848252b..0c138112fd 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_cli.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs @@ -24,7 +24,8 @@ use authgraph_boringssl::BoringSha256; use authgraph_core::traits::Sha256; use clap::{Args, Parser, Subcommand}; use coset::CborSerializable; -use dice_policy::{ConstraintSpec, ConstraintType, DicePolicy, MissingAction}; +use dice_policy_builder::{ConstraintSpec, ConstraintType, MissingAction, policy_for_dice_chain}; + use secretkeeper_client::{dice::OwnedDiceArtifactsWithExplicitKey, SkSession}; use secretkeeper_comm::data_types::{ error::SecretkeeperError, @@ -146,7 +147,7 @@ impl SkClient { MissingAction::Ignore, ), ]; - DicePolicy::from_dice_chain(dice, &constraint_spec) + policy_for_dice_chain(dice, &constraint_spec) .unwrap() .to_vec() .context("serialize DICE policy") diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index 8c33f0412d..483aed6263 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -20,7 +20,7 @@ use authgraph_vts_test as ag_vts; use authgraph_boringssl as boring; use authgraph_core::key; use coset::{CborSerializable, CoseEncrypt0}; -use dice_policy::{ConstraintSpec, ConstraintType, DicePolicy, MissingAction}; +use dice_policy_builder::{ConstraintSpec, ConstraintType, MissingAction, policy_for_dice_chain}; use rdroidtest::{ignore_if, rdroidtest}; use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; use secretkeeper_client::SkSession; @@ -258,7 +258,7 @@ fn sealing_policy(dice: &[u8]) -> Vec { ), ]; - DicePolicy::from_dice_chain(dice, &constraint_spec).unwrap().to_vec().unwrap() + policy_for_dice_chain(dice, &constraint_spec).unwrap().to_vec().unwrap() } /// Perform AuthGraph key exchange, returning the session keys and session ID. -- GitLab From 1e93ca6c743b4b7b19c0bdb0674e953ebadebcf4 Mon Sep 17 00:00:00 2001 From: Jeff Pu Date: Wed, 24 Jan 2024 10:51:31 -0500 Subject: [PATCH 247/418] Support configuration reset and dump Bug: 294254230 Test: atest android.hardware.biometrics.face.* -c adb shell cmd android.hardware.biometrics.face.IFace/virtual resetconfig adb shell dumpsys face Change-Id: I6dc5657104da103860cca133beba21e1b10cb423 --- biometrics/face/aidl/default/Face.cpp | 110 +++++++++++++++++- biometrics/face/aidl/default/Face.h | 10 ++ .../face/aidl/default/FakeFaceEngine.cpp | 1 + biometrics/face/aidl/default/Session.cpp | 29 ++++- biometrics/face/aidl/default/Session.h | 23 +++- 5 files changed, 166 insertions(+), 7 deletions(-) diff --git a/biometrics/face/aidl/default/Face.cpp b/biometrics/face/aidl/default/Face.cpp index 652a7e1f6c..5ae0df6e56 100644 --- a/biometrics/face/aidl/default/Face.cpp +++ b/biometrics/face/aidl/default/Face.cpp @@ -14,11 +14,23 @@ * limitations under the License. */ +#undef LOG_TAG +#define LOG_TAG "FaceVirtualHal" + #include "Face.h" #include "Session.h" #include "FakeFaceEngine.h" +#include +#include + +#include +#include +#include + +using namespace ::android::face::virt; + namespace aidl::android::hardware::biometrics::face { const int kSensorId = 4; @@ -68,11 +80,105 @@ ndk::ScopedAStatus Face::getSensorProps(std::vector* return_val) { return ndk::ScopedAStatus::ok(); } -ndk::ScopedAStatus Face::createSession(int32_t /*sensorId*/, int32_t /*userId*/, +ndk::ScopedAStatus Face::createSession(int32_t sensorId, int32_t userId, const std::shared_ptr& cb, std::shared_ptr* return_val) { - *return_val = SharedRefBase::make(std::make_unique(), cb); + mSession = SharedRefBase::make(std::make_unique(), cb); + *return_val = mSession; + + mSession->linkToDeath(cb->asBinder().get()); + + LOG(INFO) << __func__ << ": sensorId:" << sensorId << " userId:" << userId; return ndk::ScopedAStatus::ok(); } +binder_status_t Face::dump(int fd, const char** /*args*/, uint32_t numArgs) { + if (fd < 0) { + LOG(ERROR) << __func__ << "fd invalid: " << fd; + return STATUS_BAD_VALUE; + } else { + LOG(INFO) << __func__ << " fd:" << fd << "numArgs:" << numArgs; + } + + dprintf(fd, "----- FaceVirtualHal::dump -----\n"); + std::vector sps(1); + getSensorProps(&sps); + for (auto& sp : sps) { + ::android::base::WriteStringToFd(sp.toString(), fd); + } + if (mSession != nullptr) { + ::android::base::WriteStringToFd(mSession->toString(), fd); + } else { + dprintf(fd, "\nWARNING: no ISession found\n"); + } + + fsync(fd); + return STATUS_OK; +} + +binder_status_t Face::handleShellCommand(int in, int out, int err, const char** args, + uint32_t numArgs) { + LOG(INFO) << __func__ << " in:" << in << " out:" << out << " err:" << err + << " numArgs:" << numArgs; + + if (numArgs == 0) { + LOG(INFO) << __func__ << ": available commands"; + onHelp(out); + return STATUS_OK; + } + + for (auto&& str : std::vector(args, args + numArgs)) { + std::string option = str.data(); + if (option.find("clearconfig") != std::string::npos || + option.find("resetconfig") != std::string::npos) { + resetConfigToDefault(); + } + if (option.find("help") != std::string::npos) { + onHelp(out); + } + } + + return STATUS_OK; +} + +void Face::onHelp(int fd) { + dprintf(fd, "Virtual Face HAL commands:\n"); + dprintf(fd, " help: print this help\n"); + dprintf(fd, " resetconfig: reset all configuration to default\n"); + dprintf(fd, "\n"); + fsync(fd); +} + +void Face::resetConfigToDefault() { + LOG(INFO) << __func__ << ": reset virtual Face HAL configuration to default"; +#define RESET_CONFIG_O(__NAME__) \ + if (FaceHalProperties::__NAME__()) FaceHalProperties::__NAME__(std::nullopt) +#define RESET_CONFIG_V(__NAME__) \ + if (!FaceHalProperties::__NAME__().empty()) FaceHalProperties::__NAME__({std::nullopt}) + + RESET_CONFIG_O(type); + RESET_CONFIG_O(strength); + RESET_CONFIG_V(enrollments); + RESET_CONFIG_O(enrollment_hit); + RESET_CONFIG_V(features); + RESET_CONFIG_O(next_enrollment); + RESET_CONFIG_O(authenticator_id); + RESET_CONFIG_O(challenge); + RESET_CONFIG_O(lockout); + RESET_CONFIG_O(operation_authenticate_fails); + RESET_CONFIG_O(operation_detect_interaction_fails); + RESET_CONFIG_O(operation_enroll_fails); + RESET_CONFIG_V(operation_authenticate_latency); + RESET_CONFIG_V(operation_detect_interaction_latency); + RESET_CONFIG_V(operation_enroll_latency); + RESET_CONFIG_O(operation_authenticate_duration); + RESET_CONFIG_O(operation_authenticate_error); + RESET_CONFIG_O(operation_authenticate_acquired); + RESET_CONFIG_O(lockout_enable); + RESET_CONFIG_O(lockout_timed_enable); + RESET_CONFIG_O(lockout_timed_threshold); + RESET_CONFIG_O(lockout_timed_duration); + RESET_CONFIG_O(lockout_permanent_threshold); +} + } // namespace aidl::android::hardware::biometrics::face diff --git a/biometrics/face/aidl/default/Face.h b/biometrics/face/aidl/default/Face.h index 786b4f89fe..93fddb0474 100644 --- a/biometrics/face/aidl/default/Face.h +++ b/biometrics/face/aidl/default/Face.h @@ -17,16 +17,26 @@ #pragma once #include +#include "Session.h" namespace aidl::android::hardware::biometrics::face { class Face : public BnFace { public: + Face() : mSession(nullptr) {} ndk::ScopedAStatus getSensorProps(std::vector* _aidl_return) override; ndk::ScopedAStatus createSession(int32_t sensorId, int32_t userId, const std::shared_ptr& cb, std::shared_ptr* _aidl_return) override; + + binder_status_t dump(int fd, const char** args, uint32_t numArgs); + binder_status_t handleShellCommand(int in, int out, int err, const char** argv, uint32_t argc); + + private: + std::shared_ptr mSession; + void resetConfigToDefault(); + void onHelp(int); }; } // namespace aidl::android::hardware::biometrics::face diff --git a/biometrics/face/aidl/default/FakeFaceEngine.cpp b/biometrics/face/aidl/default/FakeFaceEngine.cpp index bdc13fd403..bf75874aea 100644 --- a/biometrics/face/aidl/default/FakeFaceEngine.cpp +++ b/biometrics/face/aidl/default/FakeFaceEngine.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#undef LOG_TAG #define LOG_TAG "FaceVirtualHalEngine" #include "FakeFaceEngine.h" diff --git a/biometrics/face/aidl/default/Session.cpp b/biometrics/face/aidl/default/Session.cpp index 6f3f2fc22f..673d879d79 100644 --- a/biometrics/face/aidl/default/Session.cpp +++ b/biometrics/face/aidl/default/Session.cpp @@ -14,20 +14,38 @@ * limitations under the License. */ +#undef LOG_TAG +#define LOG_TAG "FaceVirtualHalSession" + #include #include "Session.h" -#undef LOG_TAG -#define LOG_TAG "FaceVirtualHalSession" - namespace aidl::android::hardware::biometrics::face { constexpr size_t MAX_WORKER_QUEUE_SIZE = 5; +void onClientDeath(void* cookie) { + LOG(INFO) << "FaceService has died"; + Session* session = static_cast(cookie); + if (session && !session->isClosed()) { + session->close(); + } +} + Session::Session(std::unique_ptr engine, std::shared_ptr cb) - : mEngine(std::move(engine)), mCb(std::move(cb)), mRandom(std::mt19937::default_seed) { + : mEngine(std::move(engine)), + mCb(std::move(cb)), + mRandom(std::mt19937::default_seed), + mStateClosed(false) { + CHECK(mEngine); + CHECK(mCb); mThread = std::make_unique(MAX_WORKER_QUEUE_SIZE); + mDeathRecipient = AIBinder_DeathRecipient_new(onClientDeath); +} + +binder_status_t Session::linkToDeath(AIBinder* binder) { + return AIBinder_linkToDeath(binder, mDeathRecipient, this); } ndk::ScopedAStatus Session::generateChallenge() { @@ -144,9 +162,12 @@ ndk::ScopedAStatus Session::resetLockout(const keymaster::HardwareAuthToken& hat } ndk::ScopedAStatus Session::close() { + LOG(INFO) << "close"; if (mCb) { mCb->onSessionClosed(); } + AIBinder_DeathRecipient_delete(mDeathRecipient); + mStateClosed = true; return ndk::ScopedAStatus::ok(); } diff --git a/biometrics/face/aidl/default/Session.h b/biometrics/face/aidl/default/Session.h index ce6e7f1b88..f79ad00ab6 100644 --- a/biometrics/face/aidl/default/Session.h +++ b/biometrics/face/aidl/default/Session.h @@ -33,6 +33,11 @@ namespace keymaster = aidl::android::hardware::keymaster; using aidl::android::hardware::common::NativeHandle; +enum class SessionState { + IDLING, + CLOSED, +}; + class Session : public BnSession { public: explicit Session(std::unique_ptr engine, std::shared_ptr cb); @@ -93,12 +98,28 @@ class Session : public BnSession { const FaceEnrollOptions& options, std::shared_ptr* out) override; + binder_status_t linkToDeath(AIBinder* binder); + + virtual std::string toString() const { + std::ostringstream os; + os << std::endl << "----- Face::Session:: -----" << std::endl; + os << "mStateClosed:" << mStateClosed << std::endl; + os << mEngine->toString(); + + return os.str(); + } + + bool isClosed() { return mStateClosed; } + private: std::unique_ptr mEngine; std::shared_ptr mCb; std::mt19937 mRandom; std::unique_ptr mThread; - std::shared_ptr mCancellationSignal; + + // Binder death handler. + AIBinder_DeathRecipient* mDeathRecipient; + bool mStateClosed; }; } // namespace aidl::android::hardware::biometrics::face -- GitLab From 850621640a05e872e6d980daaebe58763ae17c29 Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Wed, 24 Jan 2024 19:23:19 +0000 Subject: [PATCH 248/418] Camera: ANAPIC AIDL feedback - In metadata comments, add reference source file where details can be found - Fix grammar in ICameraDeviceSession.aidl comments Bug: 318762864 Test: build Change-Id: Id0f88aacd60e9ae444a0f6d4a9dfca67f8d75eaa Signed-off-by: Jayant Chowdhary --- .../android/hardware/camera/device/ICameraDeviceSession.aidl | 4 ++-- .../hardware/camera/metadata/AutomotiveLensFacing.aidl | 1 + .../android/hardware/camera/metadata/AutomotiveLocation.aidl | 1 + .../aidl/android/hardware/camera/metadata/BlackLevelLock.aidl | 1 + .../camera/metadata/ColorCorrectionAberrationMode.aidl | 1 + .../android/hardware/camera/metadata/ColorCorrectionMode.aidl | 1 + .../hardware/camera/metadata/ControlAeAntibandingMode.aidl | 1 + .../aidl/android/hardware/camera/metadata/ControlAeLock.aidl | 1 + .../hardware/camera/metadata/ControlAeLockAvailable.aidl | 1 + .../aidl/android/hardware/camera/metadata/ControlAeMode.aidl | 1 + .../hardware/camera/metadata/ControlAePrecaptureTrigger.aidl | 1 + .../aidl/android/hardware/camera/metadata/ControlAeState.aidl | 1 + .../aidl/android/hardware/camera/metadata/ControlAfMode.aidl | 1 + .../hardware/camera/metadata/ControlAfSceneChange.aidl | 1 + .../aidl/android/hardware/camera/metadata/ControlAfState.aidl | 1 + .../android/hardware/camera/metadata/ControlAfTrigger.aidl | 1 + .../android/hardware/camera/metadata/ControlAutoframing.aidl | 1 + .../hardware/camera/metadata/ControlAutoframingAvailable.aidl | 1 + .../hardware/camera/metadata/ControlAutoframingState.aidl | 1 + .../aidl/android/hardware/camera/metadata/ControlAwbLock.aidl | 1 + .../hardware/camera/metadata/ControlAwbLockAvailable.aidl | 1 + .../aidl/android/hardware/camera/metadata/ControlAwbMode.aidl | 1 + .../android/hardware/camera/metadata/ControlAwbState.aidl | 1 + .../hardware/camera/metadata/ControlCaptureIntent.aidl | 1 + .../android/hardware/camera/metadata/ControlEffectMode.aidl | 1 + .../android/hardware/camera/metadata/ControlEnableZsl.aidl | 1 + .../hardware/camera/metadata/ControlExtendedSceneMode.aidl | 1 + .../hardware/camera/metadata/ControlLowLightBoostState.aidl | 1 + .../aidl/android/hardware/camera/metadata/ControlMode.aidl | 1 + .../android/hardware/camera/metadata/ControlSceneMode.aidl | 1 + .../hardware/camera/metadata/ControlSettingsOverride.aidl | 1 + .../camera/metadata/ControlVideoStabilizationMode.aidl | 1 + .../aidl/android/hardware/camera/metadata/DemosaicMode.aidl | 1 + .../metadata/DepthAvailableDepthStreamConfigurations.aidl | 1 + ...thAvailableDepthStreamConfigurationsMaximumResolution.aidl | 1 + .../DepthAvailableDynamicDepthStreamConfigurations.aidl | 1 + ...ableDynamicDepthStreamConfigurationsMaximumResolution.aidl | 1 + .../hardware/camera/metadata/DepthDepthIsExclusive.aidl | 1 + .../hardware/camera/metadata/DistortionCorrectionMode.aidl | 1 + .../aidl/android/hardware/camera/metadata/EdgeMode.aidl | 1 + .../android/hardware/camera/metadata/FlashInfoAvailable.aidl | 1 + .../aidl/android/hardware/camera/metadata/FlashMode.aidl | 1 + .../aidl/android/hardware/camera/metadata/FlashState.aidl | 1 + .../metadata/HeicAvailableHeicStreamConfigurations.aidl | 1 + ...eicAvailableHeicStreamConfigurationsMaximumResolution.aidl | 1 + .../android/hardware/camera/metadata/HeicInfoSupported.aidl | 1 + .../aidl/android/hardware/camera/metadata/HotPixelMode.aidl | 1 + .../camera/metadata/InfoSupportedBufferManagementVersion.aidl | 1 + .../hardware/camera/metadata/InfoSupportedHardwareLevel.aidl | 1 + .../metadata/JpegrAvailableJpegRStreamConfigurations.aidl | 1 + ...grAvailableJpegRStreamConfigurationsMaximumResolution.aidl | 1 + .../android/hardware/camera/metadata/LedAvailableLeds.aidl | 1 + .../aidl/android/hardware/camera/metadata/LedTransmit.aidl | 1 + .../aidl/android/hardware/camera/metadata/LensFacing.aidl | 1 + .../camera/metadata/LensInfoFocusDistanceCalibration.aidl | 1 + .../camera/metadata/LensOpticalStabilizationMode.aidl | 1 + .../android/hardware/camera/metadata/LensPoseReference.aidl | 1 + .../aidl/android/hardware/camera/metadata/LensState.aidl | 1 + .../camera/metadata/LogicalMultiCameraSensorSyncType.aidl | 1 + .../android/hardware/camera/metadata/NoiseReductionMode.aidl | 1 + .../android/hardware/camera/metadata/QuirksPartialResult.aidl | 1 + .../camera/metadata/RequestAvailableCapabilities.aidl | 1 + .../metadata/RequestAvailableColorSpaceProfilesMap.aidl | 1 + .../metadata/RequestAvailableDynamicRangeProfilesMap.aidl | 1 + .../android/hardware/camera/metadata/RequestMetadataMode.aidl | 1 + .../aidl/android/hardware/camera/metadata/RequestType.aidl | 1 + .../hardware/camera/metadata/ScalerAvailableFormats.aidl | 1 + .../ScalerAvailableRecommendedStreamConfigurations.aidl | 1 + .../camera/metadata/ScalerAvailableStreamConfigurations.aidl | 1 + .../ScalerAvailableStreamConfigurationsMaximumResolution.aidl | 1 + .../camera/metadata/ScalerAvailableStreamUseCases.aidl | 1 + .../android/hardware/camera/metadata/ScalerCroppingType.aidl | 1 + .../camera/metadata/ScalerMultiResolutionStreamSupported.aidl | 1 + ...alerPhysicalCameraMultiResolutionStreamConfigurations.aidl | 1 + .../android/hardware/camera/metadata/ScalerRotateAndCrop.aidl | 1 + .../camera/metadata/SensorInfoColorFilterArrangement.aidl | 1 + .../camera/metadata/SensorInfoLensShadingApplied.aidl | 1 + .../hardware/camera/metadata/SensorInfoTimestampSource.aidl | 1 + .../android/hardware/camera/metadata/SensorPixelMode.aidl | 1 + .../hardware/camera/metadata/SensorRawBinningFactorUsed.aidl | 1 + .../hardware/camera/metadata/SensorReadoutTimestamp.aidl | 3 ++- .../hardware/camera/metadata/SensorReferenceIlluminant1.aidl | 1 + .../hardware/camera/metadata/SensorTestPatternMode.aidl | 1 + .../aidl/android/hardware/camera/metadata/ShadingMode.aidl | 1 + .../hardware/camera/metadata/StatisticsFaceDetectMode.aidl | 1 + .../hardware/camera/metadata/StatisticsHistogramMode.aidl | 1 + .../hardware/camera/metadata/StatisticsHotPixelMapMode.aidl | 1 + .../camera/metadata/StatisticsLensShadingMapMode.aidl | 1 + .../hardware/camera/metadata/StatisticsOisDataMode.aidl | 1 + .../hardware/camera/metadata/StatisticsSceneFlicker.aidl | 1 + .../hardware/camera/metadata/StatisticsSharpnessMapMode.aidl | 1 + .../android/hardware/camera/metadata/SyncFrameNumber.aidl | 1 + .../aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl | 1 + .../aidl/android/hardware/camera/metadata/TonemapMode.aidl | 1 + .../android/hardware/camera/metadata/TonemapPresetCurve.aidl | 1 + 95 files changed, 97 insertions(+), 3 deletions(-) diff --git a/camera/device/aidl/android/hardware/camera/device/ICameraDeviceSession.aidl b/camera/device/aidl/android/hardware/camera/device/ICameraDeviceSession.aidl index ffc1a11e5b..62a19cff93 100644 --- a/camera/device/aidl/android/hardware/camera/device/ICameraDeviceSession.aidl +++ b/camera/device/aidl/android/hardware/camera/device/ICameraDeviceSession.aidl @@ -89,12 +89,12 @@ interface ICameraDeviceSession { * with processCaptureResult (and its respective releaseFence has been * signaled) the framework may free or reuse it at any time. * - * This method wil only be called by the framework if + * This method must only be called by the framework if * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is either not advertised or is * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_AIDL. If the value of * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE, configureStreamsV2 - * will be called instead. + * must be called instead. * * ------------------------------------------------------------------------ * diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLensFacing.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLensFacing.aidl index 8cd222948c..19822fcf6e 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLensFacing.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLensFacing.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.automotive.lens.facing enumeration values * @see ANDROID_AUTOMOTIVE_LENS_FACING + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLocation.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLocation.aidl index 0ef64b4c43..6c3edbe677 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLocation.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLocation.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.automotive.location enumeration values * @see ANDROID_AUTOMOTIVE_LOCATION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/BlackLevelLock.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/BlackLevelLock.aidl index 4746cf3e4d..8d3443a9b4 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/BlackLevelLock.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/BlackLevelLock.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.blackLevel.lock enumeration values * @see ANDROID_BLACK_LEVEL_LOCK + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl index 890ac0eac0..a0f6c83bb1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.colorCorrection.aberrationMode enumeration values * @see ANDROID_COLOR_CORRECTION_ABERRATION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionMode.aidl index 080ca027f6..2a51bfcfc0 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.colorCorrection.mode enumeration values * @see ANDROID_COLOR_CORRECTION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl index 8a2f501d81..47f7ebf1f4 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeAntibandingMode enumeration values * @see ANDROID_CONTROL_AE_ANTIBANDING_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLock.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLock.aidl index ab56fdc5f2..e226ac0a2c 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLock.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLock.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeLock enumeration values * @see ANDROID_CONTROL_AE_LOCK + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLockAvailable.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLockAvailable.aidl index b846fc182a..a62cd27b65 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLockAvailable.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLockAvailable.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeLockAvailable enumeration values * @see ANDROID_CONTROL_AE_LOCK_AVAILABLE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeMode.aidl index 70174bed27..9f7aaaea99 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeMode enumeration values * @see ANDROID_CONTROL_AE_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl index 2229712d9a..5275cd1ca1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aePrecaptureTrigger enumeration values * @see ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeState.aidl index af8c2cf38d..ffdf7d403f 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeState enumeration values * @see ANDROID_CONTROL_AE_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfMode.aidl index 344f2de3f9..cff3a258e7 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.afMode enumeration values * @see ANDROID_CONTROL_AF_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfSceneChange.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfSceneChange.aidl index 153611a028..dce31dede0 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfSceneChange.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfSceneChange.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.afSceneChange enumeration values * @see ANDROID_CONTROL_AF_SCENE_CHANGE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfState.aidl index 2c8d60201b..cbdc28f53a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.afState enumeration values * @see ANDROID_CONTROL_AF_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfTrigger.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfTrigger.aidl index b68d4c7528..0c82b25fb8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfTrigger.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfTrigger.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.afTrigger enumeration values * @see ANDROID_CONTROL_AF_TRIGGER + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframing.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframing.aidl index 0fef3735b1..ba184912e4 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframing.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframing.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.autoframing enumeration values * @see ANDROID_CONTROL_AUTOFRAMING + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl index da0d34894d..fd45647be1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.autoframingAvailable enumeration values * @see ANDROID_CONTROL_AUTOFRAMING_AVAILABLE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingState.aidl index 13183a5314..9ac200ab3a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.autoframingState enumeration values * @see ANDROID_CONTROL_AUTOFRAMING_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLock.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLock.aidl index f7229f2034..a1e6a79c2a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLock.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLock.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.awbLock enumeration values * @see ANDROID_CONTROL_AWB_LOCK + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl index 0cb6ebed7f..4a69f87e79 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.awbLockAvailable enumeration values * @see ANDROID_CONTROL_AWB_LOCK_AVAILABLE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbMode.aidl index 2f9b801eec..043841a1ae 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.awbMode enumeration values * @see ANDROID_CONTROL_AWB_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbState.aidl index 1a93191487..835d299d21 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.awbState enumeration values * @see ANDROID_CONTROL_AWB_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlCaptureIntent.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlCaptureIntent.aidl index 132d98c1d7..1cd5467117 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlCaptureIntent.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlCaptureIntent.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.captureIntent enumeration values * @see ANDROID_CONTROL_CAPTURE_INTENT + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlEffectMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlEffectMode.aidl index 1668cb390b..f4586c2d32 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlEffectMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlEffectMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.effectMode enumeration values * @see ANDROID_CONTROL_EFFECT_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlEnableZsl.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlEnableZsl.aidl index a83c05164c..6fffa5e9d3 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlEnableZsl.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlEnableZsl.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.enableZsl enumeration values * @see ANDROID_CONTROL_ENABLE_ZSL + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl index 2fe66cffd7..b95a4f5972 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.extendedSceneMode enumeration values * @see ANDROID_CONTROL_EXTENDED_SCENE_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlLowLightBoostState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlLowLightBoostState.aidl index 67591c8067..19be8fcc29 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlLowLightBoostState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlLowLightBoostState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.lowLightBoostState enumeration values * @see ANDROID_CONTROL_LOW_LIGHT_BOOST_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlMode.aidl index d9ab9ab10a..b964d45d47 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.mode enumeration values * @see ANDROID_CONTROL_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlSceneMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlSceneMode.aidl index 0f90aaad2b..f5c0a4afed 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlSceneMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlSceneMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.sceneMode enumeration values * @see ANDROID_CONTROL_SCENE_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlSettingsOverride.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlSettingsOverride.aidl index d97f7c83ac..d0ee99271e 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlSettingsOverride.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlSettingsOverride.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.settingsOverride enumeration values * @see ANDROID_CONTROL_SETTINGS_OVERRIDE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl index 497846c71f..94cc62650a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.videoStabilizationMode enumeration values * @see ANDROID_CONTROL_VIDEO_STABILIZATION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DemosaicMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DemosaicMode.aidl index 7d8cdcf588..0c389aa092 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DemosaicMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DemosaicMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.demosaic.mode enumeration values * @see ANDROID_DEMOSAIC_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl index 7deb350045..3cc882b374 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.availableDepthStreamConfigurations enumeration values * @see ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl index 5d06be1782..658f3bb428 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.availableDepthStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl index 39a99b963e..1ec3d115ab 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.availableDynamicDepthStreamConfigurations enumeration values * @see ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl index 30ea9b71b5..b0ad00e334 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.availableDynamicDepthStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl index 4af81d9c89..de31b41ad5 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.depthIsExclusive enumeration values * @see ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DistortionCorrectionMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DistortionCorrectionMode.aidl index 3456207757..fbf7abb9ce 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DistortionCorrectionMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DistortionCorrectionMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.distortionCorrection.mode enumeration values * @see ANDROID_DISTORTION_CORRECTION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/EdgeMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/EdgeMode.aidl index 1e155233a3..81bd04c779 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/EdgeMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/EdgeMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.edge.mode enumeration values * @see ANDROID_EDGE_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/FlashInfoAvailable.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/FlashInfoAvailable.aidl index 05280377c7..b938d82f69 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/FlashInfoAvailable.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/FlashInfoAvailable.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.flash.info.available enumeration values * @see ANDROID_FLASH_INFO_AVAILABLE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/FlashMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/FlashMode.aidl index e17559699d..b279c44448 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/FlashMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/FlashMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.flash.mode enumeration values * @see ANDROID_FLASH_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/FlashState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/FlashState.aidl index fc398f8f06..b029566760 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/FlashState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/FlashState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.flash.state enumeration values * @see ANDROID_FLASH_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl index fc9b6ecc4f..c31cfbaa26 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.heic.availableHeicStreamConfigurations enumeration values * @see ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl index 13b50ab5ad..bf5d92ede8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.heic.availableHeicStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/HeicInfoSupported.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/HeicInfoSupported.aidl index c4e04f1ac0..88825e6e15 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/HeicInfoSupported.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/HeicInfoSupported.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.heic.info.supported enumeration values * @see ANDROID_HEIC_INFO_SUPPORTED + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/HotPixelMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/HotPixelMode.aidl index 7b7aa215a9..bd995690d9 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/HotPixelMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/HotPixelMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.hotPixel.mode enumeration values * @see ANDROID_HOT_PIXEL_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl index 964d07903c..a84f3cc11c 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.info.supportedBufferManagementVersion enumeration values * @see ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl index f242009943..0ea628733f 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.info.supportedHardwareLevel enumeration values * @see ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl index 911a062355..834ed5da46 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.jpegr.availableJpegRStreamConfigurations enumeration values * @see ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl index 9e78662b5b..eb0d84780d 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.jpegr.availableJpegRStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LedAvailableLeds.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LedAvailableLeds.aidl index f26fcde890..ba564c491f 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LedAvailableLeds.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LedAvailableLeds.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.led.availableLeds enumeration values * @see ANDROID_LED_AVAILABLE_LEDS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LedTransmit.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LedTransmit.aidl index 62c9bd7875..f8b40cafb8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LedTransmit.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LedTransmit.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.led.transmit enumeration values * @see ANDROID_LED_TRANSMIT + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensFacing.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensFacing.aidl index 0677ea9372..fa9cb149f2 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensFacing.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensFacing.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.facing enumeration values * @see ANDROID_LENS_FACING + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl index 1c82bb03e4..2060e9729d 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.info.focusDistanceCalibration enumeration values * @see ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl index e350e1599d..03f8711fc0 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.opticalStabilizationMode enumeration values * @see ANDROID_LENS_OPTICAL_STABILIZATION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensPoseReference.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensPoseReference.aidl index 3e6034b067..124c670077 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensPoseReference.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensPoseReference.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.poseReference enumeration values * @see ANDROID_LENS_POSE_REFERENCE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensState.aidl index 0e5a04c45c..216bfb174c 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.state enumeration values * @see ANDROID_LENS_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl index 623a15cc0f..ee6a1a0e8a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.logicalMultiCamera.sensorSyncType enumeration values * @see ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/NoiseReductionMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/NoiseReductionMode.aidl index 947361d41c..7303512f3e 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/NoiseReductionMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/NoiseReductionMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.noiseReduction.mode enumeration values * @see ANDROID_NOISE_REDUCTION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/QuirksPartialResult.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/QuirksPartialResult.aidl index 15a79b0969..3af9f858b1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/QuirksPartialResult.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/QuirksPartialResult.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.quirks.partialResult enumeration values * @see ANDROID_QUIRKS_PARTIAL_RESULT + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl index ebe0b4c4a3..a8e5fe0cb4 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.availableCapabilities enumeration values * @see ANDROID_REQUEST_AVAILABLE_CAPABILITIES + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl index b397dea8d2..ee36480379 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.availableColorSpaceProfilesMap enumeration values * @see ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="long") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl index f04fae3e43..d7598d6387 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.availableDynamicRangeProfilesMap enumeration values * @see ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="long") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestMetadataMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestMetadataMode.aidl index 37d40957e5..d526393105 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestMetadataMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestMetadataMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.metadataMode enumeration values * @see ANDROID_REQUEST_METADATA_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestType.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestType.aidl index 5010a37c93..a8c97cb1b7 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestType.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestType.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.type enumeration values * @see ANDROID_REQUEST_TYPE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableFormats.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableFormats.aidl index a8e67bbab9..fb42654d56 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableFormats.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableFormats.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableFormats enumeration values * @see ANDROID_SCALER_AVAILABLE_FORMATS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl index 57c398928a..7498abf0b1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableRecommendedStreamConfigurations enumeration values * @see ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl index 2b493ae6eb..66599ae521 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableStreamConfigurations enumeration values * @see ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl index 4f6cb5eedc..ec9c5db454 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl index da27a48e32..eed16fa556 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableStreamUseCases enumeration values * @see ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="long") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerCroppingType.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerCroppingType.aidl index e44eff16e4..bf3672dae8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerCroppingType.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerCroppingType.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.croppingType enumeration values * @see ANDROID_SCALER_CROPPING_TYPE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl index f7cbc0fe16..d75aa7d04d 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.multiResolutionStreamSupported enumeration values * @see ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl index 9427854a63..c725572e67 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.physicalCameraMultiResolutionStreamConfigurations enumeration values * @see ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl index 905015374c..b49dec0c4c 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.rotateAndCrop enumeration values * @see ANDROID_SCALER_ROTATE_AND_CROP + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl index 59a4038ea0..1d8190c9e1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.info.colorFilterArrangement enumeration values * @see ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl index 8892ad33d1..c5169af328 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.info.lensShadingApplied enumeration values * @see ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl index 2a5860b023..de65ef754e 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.info.timestampSource enumeration values * @see ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorPixelMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorPixelMode.aidl index 3dda07ba1e..a76e479565 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorPixelMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorPixelMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.pixelMode enumeration values * @see ANDROID_SENSOR_PIXEL_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl index 20e92e4311..8b421bac67 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.rawBinningFactorUsed enumeration values * @see ANDROID_SENSOR_RAW_BINNING_FACTOR_USED + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl index 1678515a69..f5ab3691ba 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024 The Android Open Source Project + * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.readoutTimestamp enumeration values * @see ANDROID_SENSOR_READOUT_TIMESTAMP + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl index c8c92167d5..a0a3a40664 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.referenceIlluminant1 enumeration values * @see ANDROID_SENSOR_REFERENCE_ILLUMINANT1 + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorTestPatternMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorTestPatternMode.aidl index 29aede4bbc..4ad05032e7 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorTestPatternMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorTestPatternMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.testPatternMode enumeration values * @see ANDROID_SENSOR_TEST_PATTERN_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ShadingMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ShadingMode.aidl index 6939b72fdc..20801957a8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ShadingMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ShadingMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.shading.mode enumeration values * @see ANDROID_SHADING_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl index 0d177919d6..55d79cd400 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.faceDetectMode enumeration values * @see ANDROID_STATISTICS_FACE_DETECT_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHistogramMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHistogramMode.aidl index a9b6f68dad..de1cfee964 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHistogramMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHistogramMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.histogramMode enumeration values * @see ANDROID_STATISTICS_HISTOGRAM_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl index 286291a851..b81a7cde36 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.hotPixelMapMode enumeration values * @see ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl index d21b2227f9..3a91c71d21 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.lensShadingMapMode enumeration values * @see ANDROID_STATISTICS_LENS_SHADING_MAP_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsOisDataMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsOisDataMode.aidl index afb281f909..42801ed4c3 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsOisDataMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsOisDataMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.oisDataMode enumeration values * @see ANDROID_STATISTICS_OIS_DATA_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl index da2402af07..371e9fb031 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.sceneFlicker enumeration values * @see ANDROID_STATISTICS_SCENE_FLICKER + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl index ed6c65ccb3..487e8ace3a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.sharpnessMapMode enumeration values * @see ANDROID_STATISTICS_SHARPNESS_MAP_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SyncFrameNumber.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SyncFrameNumber.aidl index e33319e3d0..148718decd 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SyncFrameNumber.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SyncFrameNumber.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sync.frameNumber enumeration values * @see ANDROID_SYNC_FRAME_NUMBER + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl index cb0668fcab..7df4ff0fd7 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sync.maxLatency enumeration values * @see ANDROID_SYNC_MAX_LATENCY + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/TonemapMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/TonemapMode.aidl index d4b7e0ebce..ed53060848 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/TonemapMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/TonemapMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.tonemap.mode enumeration values * @see ANDROID_TONEMAP_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/TonemapPresetCurve.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/TonemapPresetCurve.aidl index 2da3704348..c6fed00e6f 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/TonemapPresetCurve.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/TonemapPresetCurve.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.tonemap.presetCurve enumeration values * @see ANDROID_TONEMAP_PRESET_CURVE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") -- GitLab From 92f705cee51938f485b3a8ca1e09910761f7eac0 Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Fri, 19 Jan 2024 22:22:01 +0000 Subject: [PATCH 249/418] Use onUnlinked in health HAL It's possible to get an onBinderDied callback after a call to AIBinder_unlinkToDeath() so we can't delete the objects in callbacks_ until we are done using the void* cookie. Handling the cleanup in onBinderUnlinked will handle the case where we manually unlink it as well as the case where it's unlinked due to death. Test: atest VtsHalHealthTargetTest Bug: 319210610 Change-Id: Iee4783217cc88134af6de0fe66128684ca984dba --- health/aidl/default/Health.cpp | 34 ++++++++++++++----- health/aidl/default/LinkedCallback.cpp | 26 +++++--------- health/aidl/default/LinkedCallback.h | 17 +++------- .../aidl/default/include/health-impl/Health.h | 3 +- 4 files changed, 41 insertions(+), 39 deletions(-) diff --git a/health/aidl/default/Health.cpp b/health/aidl/default/Health.cpp index 8174bc8ea4..37662eacf3 100644 --- a/health/aidl/default/Health.cpp +++ b/health/aidl/default/Health.cpp @@ -36,6 +36,11 @@ void OnCallbackDiedWrapped(void* cookie) { LinkedCallback* linked = reinterpret_cast(cookie); linked->OnCallbackDied(); } +// Delete the owned cookie. +void onCallbackUnlinked(void* cookie) { + LinkedCallback* linked = reinterpret_cast(cookie); + delete linked; +} } // namespace /* @@ -57,6 +62,7 @@ Health::Health(std::string_view instance_name, std::unique_ptr lock(callbacks_lock_); - auto matches = [callback](const auto& linked) { - return linked->callback()->asBinder() == callback->asBinder(); // compares binder object + auto matches = [callback](const auto& cb) { + return cb->asBinder() == callback->asBinder(); // compares binder object }; - auto it = std::remove_if(callbacks_.begin(), callbacks_.end(), matches); - bool removed = (it != callbacks_.end()); - callbacks_.erase(it, callbacks_.end()); // calls unlinkToDeath on deleted callbacks. + bool removed = false; + for (auto it = callbacks_.begin(); it != callbacks_.end();) { + if (it->second->asBinder() == callback->asBinder()) { + auto status = AIBinder_unlinkToDeath(callback->asBinder().get(), death_recipient_.get(), + reinterpret_cast(it->first)); + if (status != STATUS_OK && status != STATUS_DEAD_OBJECT) { + LOG(WARNING) << __func__ + << "Cannot unlink to death: " << ::android::statusToString(status); + } + it = callbacks_.erase(it); + removed = true; + } else { + it++; + } + } return removed ? ndk::ScopedAStatus::ok() : ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); } @@ -347,8 +365,8 @@ ndk::ScopedAStatus Health::update() { void Health::OnHealthInfoChanged(const HealthInfo& health_info) { // Notify all callbacks std::unique_lock lock(callbacks_lock_); - for (const auto& linked : callbacks_) { - auto res = linked->callback()->healthInfoChanged(health_info); + for (const auto& [_, callback] : callbacks_) { + auto res = callback->healthInfoChanged(health_info); if (!res.isOk()) { LOG(DEBUG) << "Cannot call healthInfoChanged:" << res.getDescription() << ". Do nothing here if callback is dead as it will be cleaned up later."; diff --git a/health/aidl/default/LinkedCallback.cpp b/health/aidl/default/LinkedCallback.cpp index 26e99f95d3..df471a37bd 100644 --- a/health/aidl/default/LinkedCallback.cpp +++ b/health/aidl/default/LinkedCallback.cpp @@ -24,35 +24,24 @@ namespace aidl::android::hardware::health { -::android::base::Result> LinkedCallback::Make( +::android::base::Result LinkedCallback::Make( std::shared_ptr service, std::shared_ptr callback) { - std::unique_ptr ret(new LinkedCallback()); + LinkedCallback* ret(new LinkedCallback()); + // pass ownership of this object to the death recipient binder_status_t linkRet = AIBinder_linkToDeath(callback->asBinder().get(), service->death_recipient_.get(), - reinterpret_cast(ret.get())); + reinterpret_cast(ret)); if (linkRet != ::STATUS_OK) { LOG(WARNING) << __func__ << "Cannot link to death: " << linkRet; return ::android::base::Error(-linkRet); } ret->service_ = service; - ret->callback_ = std::move(callback); + ret->callback_ = callback; return ret; } LinkedCallback::LinkedCallback() = default; -LinkedCallback::~LinkedCallback() { - if (callback_ == nullptr) { - return; - } - auto status = - AIBinder_unlinkToDeath(callback_->asBinder().get(), service()->death_recipient_.get(), - reinterpret_cast(this)); - if (status != STATUS_OK && status != STATUS_DEAD_OBJECT) { - LOG(WARNING) << __func__ << "Cannot unlink to death: " << ::android::statusToString(status); - } -} - std::shared_ptr LinkedCallback::service() { auto service_sp = service_.lock(); CHECK_NE(nullptr, service_sp); @@ -60,7 +49,10 @@ std::shared_ptr LinkedCallback::service() { } void LinkedCallback::OnCallbackDied() { - service()->unregisterCallback(callback_); + auto sCb = callback_.lock(); + if (sCb) { + service()->unregisterCallback(sCb); + } } } // namespace aidl::android::hardware::health diff --git a/health/aidl/default/LinkedCallback.h b/health/aidl/default/LinkedCallback.h index da494c9191..8c9c997302 100644 --- a/health/aidl/default/LinkedCallback.h +++ b/health/aidl/default/LinkedCallback.h @@ -32,19 +32,10 @@ namespace aidl::android::hardware::health { class LinkedCallback { public: // Automatically linkToDeath upon construction with the returned object as the cookie. - // service->death_reciepient() should be from CreateDeathRecipient(). - // Not using a strong reference to |service| to avoid circular reference. The lifetime - // of |service| must be longer than this LinkedCallback object. - static ::android::base::Result> Make( + // The deathRecipient owns the LinkedCallback object and will delete it with + // cookie when it's unlinked. + static ::android::base::Result Make( std::shared_ptr service, std::shared_ptr callback); - - // Automatically unlinkToDeath upon destruction. So, it is always safe to reinterpret_cast - // the cookie back to the LinkedCallback object. - ~LinkedCallback(); - - // The wrapped IHealthInfoCallback object. - const std::shared_ptr& callback() const { return callback_; } - // On callback died, unreigster it from the service. void OnCallbackDied(); @@ -55,7 +46,7 @@ class LinkedCallback { std::shared_ptr service(); std::weak_ptr service_; - std::shared_ptr callback_; + std::weak_ptr callback_; }; } // namespace aidl::android::hardware::health diff --git a/health/aidl/default/include/health-impl/Health.h b/health/aidl/default/include/health-impl/Health.h index dc3a0ef8fe..429ae2ab96 100644 --- a/health/aidl/default/include/health-impl/Health.h +++ b/health/aidl/default/include/health-impl/Health.h @@ -16,6 +16,7 @@ #pragma once +#include #include #include @@ -112,7 +113,7 @@ class Health : public BnHealth, public HalHealthLoopCallback { ndk::ScopedAIBinder_DeathRecipient death_recipient_; int binder_fd_ = -1; std::mutex callbacks_lock_; - std::vector> callbacks_; + std::map> callbacks_; }; } // namespace aidl::android::hardware::health -- GitLab From 408949f0f716dce43e1c42b949b2abdbcbd4ca61 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Thu, 25 Jan 2024 09:18:23 +0900 Subject: [PATCH 250/418] Regsiter BT HAL services if they are declared Since finder/ranging/lmp_event HAL services are new and their interfaces are not frozen yet, they can't register services in -next- configuration. Bug: 322204309 Bug: 319155748 Test: run CF in -next- build Change-Id: I4729d8763842c719682ce0124bbaaed86164a7d5 --- bluetooth/finder/aidl/default/service.cpp | 14 +++++++++----- bluetooth/lmp_event/aidl/default/src/main.rs | 11 ++++++----- bluetooth/ranging/aidl/default/service.cpp | 14 +++++++++----- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/bluetooth/finder/aidl/default/service.cpp b/bluetooth/finder/aidl/default/service.cpp index a117df850d..fe8904bde5 100644 --- a/bluetooth/finder/aidl/default/service.cpp +++ b/bluetooth/finder/aidl/default/service.cpp @@ -35,12 +35,16 @@ int main(int /* argc */, char** /* argv */) { ndk::SharedRefBase::make(); std::string instance = std::string() + BluetoothFinder::descriptor + "/default"; - auto result = - AServiceManager_addService(service->asBinder().get(), instance.c_str()); - if (result == STATUS_OK) { - ABinderProcess_joinThreadPool(); + if (AServiceManager_isDeclared(instance.c_str())) { + auto result = + AServiceManager_addService(service->asBinder().get(), instance.c_str()); + if (result != STATUS_OK) { + ALOGE("Could not register as a service!"); + } } else { - ALOGE("Could not register as a service!"); + ALOGE("Could not register as a service because it's not declared."); } + // Keep running + ABinderProcess_joinThreadPool(); return 0; } diff --git a/bluetooth/lmp_event/aidl/default/src/main.rs b/bluetooth/lmp_event/aidl/default/src/main.rs index cbdd4d1521..dfb097f2ae 100644 --- a/bluetooth/lmp_event/aidl/default/src/main.rs +++ b/bluetooth/lmp_event/aidl/default/src/main.rs @@ -41,10 +41,11 @@ fn main() { let lmp_event_service = lmp_event::LmpEvent::new(); let lmp_event_service_binder = BnBluetoothLmpEvent::new_binder(lmp_event_service, BinderFeatures::default()); - binder::add_service( - &format!("{}/default", lmp_event::LmpEvent::get_descriptor()), - lmp_event_service_binder.as_binder(), - ).expect("Failed to register service"); - + let descriptor = format!("{}/default", lmp_event::LmpEvent::get_descriptor()); + if binder::is_declared(&descriptor).expect("Failed to check if declared") { + binder::add_service(&descriptor, lmp_event_service_binder.as_binder()).expect("Failed to register service"); + } else { + info!("{LOG_TAG}: Failed to register service. Not declared."); + } binder::ProcessState::join_thread_pool() } diff --git a/bluetooth/ranging/aidl/default/service.cpp b/bluetooth/ranging/aidl/default/service.cpp index 83e539ec4f..35a3f559aa 100644 --- a/bluetooth/ranging/aidl/default/service.cpp +++ b/bluetooth/ranging/aidl/default/service.cpp @@ -37,12 +37,16 @@ int main(int /* argc */, char** /* argv */) { ndk::SharedRefBase::make(); std::string instance = std::string() + BluetoothChannelSounding::descriptor + "/default"; - auto result = - AServiceManager_addService(service->asBinder().get(), instance.c_str()); - if (result == STATUS_OK) { - ABinderProcess_joinThreadPool(); + if (AServiceManager_isDeclared(instance.c_str())) { + auto result = + AServiceManager_addService(service->asBinder().get(), instance.c_str()); + if (result != STATUS_OK) { + ALOGE("Could not register as a service!"); + } } else { - ALOGE("Could not register as a service!"); + ALOGE("Could not register as a service because it's not declared."); } + // Keep running + ABinderProcess_joinThreadPool(); return 0; } -- GitLab From 0ab3d973501b165a2525754480bcba7a2769ef77 Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Wed, 20 Dec 2023 17:12:03 +0000 Subject: [PATCH 251/418] KeyMint: show vbmeta digest values on mismatch Bug: 314044749 Test: VtsAidlKeyMintTargetTest Change-Id: I0db1af44445fd5c73517a82eec9f3208fd305b21 --- security/keymint/aidl/vts/functional/BootloaderStateTest.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp b/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp index 54f187c611..808ed18eca 100644 --- a/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp +++ b/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp @@ -149,7 +149,9 @@ TEST_P(BootloaderStateTest, VbmetaDigest) { digest512.data()); ASSERT_TRUE((attestedVbmetaDigest_ == digest256) || (attestedVbmetaDigest_ == digest512)) - << "Attested digest does not match computed digest."; + << "Attested vbmeta digest (" << bin2hex(attestedVbmetaDigest_) + << ") does not match computed digest (sha256: " << bin2hex(digest256) + << ", sha512: " << bin2hex(digest512) << ")."; } INSTANTIATE_KEYMINT_AIDL_TEST(BootloaderStateTest); -- GitLab From aeaabf3c1f8ab93464339f38aca8c4c959d1f820 Mon Sep 17 00:00:00 2001 From: Ray Chin Date: Thu, 25 Jan 2024 16:52:18 +0800 Subject: [PATCH 252/418] Bypass Live if there is no HW FE nor SW FE. Bug: 321774563 Test: atest VtsHalTvTunerTargetTest on cf_x86_tv-userdebug Change-Id: I801bd81f80e4b15f1e3064ed796951aead087557 --- .../VtsHalTvTunerTestConfigurations.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h index 5c13ed081a..ff94639466 100644 --- a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h +++ b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h @@ -731,9 +731,20 @@ inline void determineLive() { if (videoFilterIds.empty() || audioFilterIds.empty() || frontendMap.empty()) { return; } - if (hasSwFe && !hasHwFe && dvrMap.empty()) { - ALOGD("Cannot configure Live. Only software frontends and no dvr connections"); - return; + if (!hasHwFe) { + if (hasSwFe) { + if (dvrMap.empty()) { + ALOGD("Cannot configure Live. Only software frontends and no dvr connections."); + return; + } + // Live is available if there is SW FE and some DVR is attached. + } else { + // We will arrive here because frontendMap won't be empty since + // there will be at least a default frontend declared. But the + // default frontend doesn't count as "hasSwFe". + ALOGD("Cannot configure Live. No frontend declared at all."); + return; + } } ALOGD("Can support live"); live.hasFrontendConnection = true; -- GitLab From b9e34c718e4c077282ff50ba79e704d9d72dd7b7 Mon Sep 17 00:00:00 2001 From: Eva Chen Date: Tue, 12 Dec 2023 14:17:45 -0800 Subject: [PATCH 253/418] Add ULTRASONICS_SENSOR_POSITION to emulator defaults. Flag android_vic_vehicle_properties needs to be enabled. Bug: 292141998 Bug: 316088542 Test: atest VtsHalAutomotiveVehicle_TargetTest Test: atest CtsCarTestCases:CarPropertyManagerTest Test: atest CtsCarTestCases:VehiclePropertyIdsTest Change-Id: I4fe29258193138008155857c7a6fe7ae8367ef70 --- .../config/DefaultProperties.json | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 56d8b4bccb..0fd8c2389e 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -3455,6 +3455,145 @@ ] } }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_POSITION", + "comment": + "Default values for 12 individual ultrasonic sensors installed on the vehicle. Six sensors on the front bumper. Six sensors on the back bumper.", + "areas": [ + { + "defaultValue": { + "int32Values": [ + -1000, + 3900, + 0 + ] + }, + "areaId": 1, + "comment": "Rough numbers representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + -600, + 4000, + 0 + ] + }, + "areaId": 2, + "comment": "Rough numbers representing front 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + -200, + 4000, + 0 + ] + }, + "areaId": 4, + "comment": "Rough numbers representing front 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 200, + 4000, + 0 + ] + }, + "areaId": 8, + "comment": "Rough numbers representing front 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 600, + 4000, + 0 + ] + }, + "areaId": 16, + "comment": "Rough numbers representing front 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 1000, + 3900, + 0 + ] + }, + "areaId": 32, + "comment": "Rough numbers representing front right most sensor." + }, + { + "defaultValue": { + "int32Values": [ + -1000, + -900, + 0 + ] + }, + "areaId": 64, + "comment": "Rough numbers representing back left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + -600, + -1000, + 0 + ] + }, + "areaId": 128, + "comment": "Rough numbers representing back 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + -200, + -1000, + 0 + ] + }, + "areaId": 256, + "comment": "Rough numbers representing back 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 200, + -1000, + 0 + ] + }, + "areaId": 512, + "comment": "Rough numbers representing back 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 600, + -1000, + 0 + ] + }, + "areaId": 1024, + "comment": "Rough numbers representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 1000, + -900, + 0 + ] + }, + "areaId": 2048, + "comment": "Rough numbers representing back right most sensor." + } + ] + }, { "property": "VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", "defaultValue": { -- GitLab From ead15a23bc1d8c328d31035ae8c8356d8792fb22 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 24 Jan 2024 16:14:21 -0800 Subject: [PATCH 254/418] Add retry in setProp test. Set property operation is async so getting the property value immediately after setting the property might not return the new value. This CL adds the logic to retry when we do not get the expected values back. This CL also skips the test case if getting property or setting property returns unavailable. Test: atest VtsHalAutomotiveVehicle_TargetTest Bug: 322070490 Change-Id: If9349a097a92c51101c7b5f4bf807b610ab2cb0b --- .../VtsHalAutomotiveVehicle_TargetTest.cpp | 78 ++++++++++++++++++- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index f8ddfaa9cf..1c1504fba1 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -48,9 +48,11 @@ using ::aidl::android::hardware::automotive::vehicle::VehicleProperty; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyAccess; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyChangeMode; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyGroup; +using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyStatus; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyType; using ::aidl::android::hardware::automotive::vehicle::VersionForVehicleProperty; using ::android::getAidlHalInstanceNames; +using ::android::uptimeMillis; using ::android::base::ScopedLockAssertion; using ::android::base::StringPrintf; using ::android::frameworks::automotive::vhal::ErrorCode; @@ -59,6 +61,7 @@ using ::android::frameworks::automotive::vhal::IHalPropConfig; using ::android::frameworks::automotive::vhal::IHalPropValue; using ::android::frameworks::automotive::vhal::ISubscriptionCallback; using ::android::frameworks::automotive::vhal::IVhalClient; +using ::android::frameworks::automotive::vhal::VhalClientResult; using ::android::hardware::getAllHalInstanceNames; using ::android::hardware::Sanitize; using ::android::hardware::automotive::vehicle::isSystemProp; @@ -67,6 +70,8 @@ using ::android::hardware::automotive::vehicle::toInt; using ::testing::Ge; constexpr int32_t kInvalidProp = 0x31600207; +// The timeout for retrying getting prop value after setting prop value. +constexpr int64_t kRetryGetPropAfterSetPropTimeoutMillis = 10'000; struct ServiceDescriptor { std::string name; @@ -124,6 +129,10 @@ class VtsHalAutomotiveVehicleTargetTest : public testing::TestWithParam>& result); + static bool isResultOkayWithValue( + const VhalClientResult>& result, int32_t value); + public: void verifyProperty(VehicleProperty propId, VehiclePropertyAccess access, VehiclePropertyChangeMode changeMode, VehiclePropertyGroup group, @@ -269,6 +278,30 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, getInvalidProp) { "Expect failure to get property for invalid prop: %" PRId32, kInvalidProp); } +bool VtsHalAutomotiveVehicleTargetTest::isResultOkayWithValue( + const VhalClientResult>& result, int32_t value) { + return result.ok() && result.value() != nullptr && + result.value()->getStatus() == VehiclePropertyStatus::AVAILABLE && + result.value()->getInt32Values().size() == 1 && + result.value()->getInt32Values()[0] == value; +} + +bool VtsHalAutomotiveVehicleTargetTest::isUnavailable( + const VhalClientResult>& result) { + if (result.ok()) { + return false; + } + if (result.error().code() == ErrorCode::NOT_AVAILABLE_FROM_VHAL) { + return true; + } + if (result.value() != nullptr && + result.value()->getStatus() == VehiclePropertyStatus::UNAVAILABLE) { + return true; + } + + return false; +} + // Test set() on read_write properties. TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { ALOGD("VtsHalAutomotiveVehicleTargetTest::setProp"); @@ -296,6 +329,14 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { auto propToGet = mVhalClient->createHalPropValue(propId); auto getValueResult = mVhalClient->getValueSync(*propToGet); + if (isUnavailable(getValueResult)) { + ALOGW("getProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip testing setProp", + propId); + return; + } + ASSERT_TRUE(getValueResult.ok()) << StringPrintf("Failed to get value for property: %" PRId32 ", error: %s", propId, getValueResult.error().message().c_str()); @@ -308,17 +349,48 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { "Expect exactly 1 int value for boolean property: %" PRId32 ", got %zu", propId, intValueSize); - int setValue = value.getInt32Values()[0] == 1 ? 0 : 1; + int32_t setValue = value.getInt32Values()[0] == 1 ? 0 : 1; auto propToSet = mVhalClient->createHalPropValue(propId); propToSet->setInt32Values({setValue}); auto setValueResult = mVhalClient->setValueSync(*propToSet); + if (!setValueResult.ok() && + setValueResult.error().code() == ErrorCode::NOT_AVAILABLE_FROM_VHAL) { + ALOGW("setProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip verifying getProperty returns the same value", + propId); + return; + } + ASSERT_TRUE(setValueResult.ok()) << StringPrintf("Failed to set value for property: %" PRId32 ", error: %s", propId, setValueResult.error().message().c_str()); + // Retry getting the value until we pass the timeout. getValue might not return + // the expected value immediately since setValue is async. + auto timeoutMillis = uptimeMillis() + kRetryGetPropAfterSetPropTimeoutMillis; + + while (true) { + getValueResult = mVhalClient->getValueSync(*propToGet); + if (isResultOkayWithValue(getValueResult, setValue)) { + break; + } + if (uptimeMillis() >= timeoutMillis) { + // Reach timeout, the following assert should fail. + break; + } + // Sleep for 100ms between each getValueSync retry. + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + + if (isUnavailable(getValueResult)) { + ALOGW("getProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip verifying the return value", + propId); + return; + } - // check set success - getValueResult = mVhalClient->getValueSync(*propToGet); ASSERT_TRUE(getValueResult.ok()) << StringPrintf("Failed to get value for property: %" PRId32 ", error: %s", propId, getValueResult.error().message().c_str()); -- GitLab From 8818f193db2d60a50039ede7a7031c638a479261 Mon Sep 17 00:00:00 2001 From: Eva Chen Date: Thu, 25 Jan 2024 18:21:43 -0800 Subject: [PATCH 255/418] Change ULTRASONICS_SENSOR_ORIENTATION hal from int32_vec to float_vec. Bug: 292141998 Test: atest VtsHalAutomotiveVehicle_TargetTest Test: atest CtsCarTestCases:CarPropertyManagerTest Test: atest CtsCarTestCases:VehiclePropertyIdsTest Change-Id: Ifec1f9684b9263c20e2ded2036eea7721e4fd96d --- .../android/hardware/automotive/vehicle/VehicleProperty.aidl | 2 +- .../android/hardware/automotive/vehicle/VehicleProperty.aidl | 2 +- .../vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl index 52876d15bb..2e25466886 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -199,7 +199,7 @@ enum VehicleProperty { VEHICLE_MAP_SERVICE = (((0x0C00 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299895808 */, LOCATION_CHARACTERIZATION = (((0x0C10 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410064 */, ULTRASONICS_SENSOR_POSITION = (((0x0C20 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916128 */, - ULTRASONICS_SENSOR_ORIENTATION = (((0x0C21 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916129 */, + ULTRASONICS_SENSOR_ORIENTATION = (((0x0C21 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT_VEC) /* 409013281 */, ULTRASONICS_SENSOR_FIELD_OF_VIEW = (((0x0C22 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916130 */, ULTRASONICS_SENSOR_DETECTION_RANGE = (((0x0C23 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916131 */, ULTRASONICS_SENSOR_SUPPORTED_RANGES = (((0x0C24 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916132 */, diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index 026c040139..693d656cf1 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -3561,7 +3561,7 @@ enum VehicleProperty { * @version 3 */ ULTRASONICS_SENSOR_ORIENTATION = 0x0C21 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR - + VehiclePropertyType.INT32_VEC, + + VehiclePropertyType.FLOAT_VEC, /** * Static data for the field of view of each ultrasonic sensor in degrees. diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index f8ddfaa9cf..0bc1dbbb74 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -598,7 +598,7 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorPositionConfig) TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorOrientationConfig) { verifyProperty(VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION, VehiclePropertyAccess::READ, VehiclePropertyChangeMode::STATIC, VehiclePropertyGroup::SYSTEM, - VehicleArea::VENDOR, VehiclePropertyType::INT32_VEC); + VehicleArea::VENDOR, VehiclePropertyType::FLOAT_VEC); } TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorFieldOfViewConfig) { -- GitLab From e1d4bc559154e6a9fea6a2b98c682eeddb07ca59 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 25 Jan 2024 23:46:51 +0000 Subject: [PATCH 256/418] Assert that at least one Weaver slot is used Uncomment an assertion that had been temporarily commented out because AOSP was out-of-date. This addresses a TODO in the code. Test: atest VtsHalWeaverTargetTest Change-Id: Ie572bb5fa05fcae3845aa46478cde0ac49206137 --- weaver/vts/VtsHalWeaverTargetTest.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/weaver/vts/VtsHalWeaverTargetTest.cpp b/weaver/vts/VtsHalWeaverTargetTest.cpp index 754d46710b..40e955808b 100644 --- a/weaver/vts/VtsHalWeaverTargetTest.cpp +++ b/weaver/vts/VtsHalWeaverTargetTest.cpp @@ -222,9 +222,8 @@ void WeaverTest::FindFreeSlots() { } // Starting in Android 14, the system will always use at least one Weaver slot if Weaver is // supported at all. Make sure we saw at least one. - // TODO: uncomment after Android 14 is merged into AOSP - // ASSERT_FALSE(used_slots.empty()) - //<< "Could not determine which Weaver slots are in use by the system"; + ASSERT_FALSE(used_slots.empty()) + << "Could not determine which Weaver slots are in use by the system"; // Find the first free slot. int found = 0; -- GitLab From 984293ed7d7178914ee244288476fd0f555d5aba Mon Sep 17 00:00:00 2001 From: Eva Chen Date: Tue, 12 Dec 2023 14:47:07 -0800 Subject: [PATCH 257/418] Add ULTRASONICS_SENSOR_ORIENTATION to emulator defaults. Flag android_vic_vehicle_properties needs to be enabled. Bug: 292141998 Bug: 316088542 Test: atest VtsHalAutomotiveVehicle_TargetTest Test: atest CtsCarTestCases:CarPropertyManagerTest Test: atest CtsCarTestCases:VehiclePropertyIdsTest Change-Id: I424eed0fbbde04976893b5867ff41ff586c172ce --- .../config/DefaultProperties.json | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 0fd8c2389e..8be040bd79 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -3594,6 +3594,169 @@ } ] }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION", + "comment": + "Default values for 12 individual ultrasonic sensors installed on the vehicle. Six sensors on the front bumper. Six sensors on the back bumper.", + "areas": [ + { + "defaultValue": { + "floatValues": [ + 0.924, + 0, + 0, + 0.383 + ] + }, + "areaId": 1, + "comment": + "Rough quaternion values [w, x, y, z] representing front left most sensor rotated 45 degrees counter-clockwise." + }, + { + "defaultValue": { + "floatValues": [ + 1, + 0, + 0, + 0 + ] + }, + "areaId": 2, + "comment": + "Rough quaternion values [w, x, y, z] representing front 2nd to the left sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 1, + 0, + 0, + 0 + ] + }, + "areaId": 4, + "comment": + "Rough quaternion values [w, x, y, z] representing front 3rd to the left sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 1, + 0, + 0, + 0 + ] + }, + "areaId": 8, + "comment": + "Rough quaternion values [w, x, y, z] representing front 3rd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 1, + 0, + 0, + 0 + ] + }, + "areaId": 16, + "comment": + "Rough quaternion values [w, x, y, z] representing front 2nd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 0.924, + 0, + 0, + -0.383 + ] + }, + "areaId": 32, + "comment": + "Rough quaternion values [w, x, y, z] representing front right most sensor rotated 45 degrees clockwise." + }, + { + "defaultValue": { + "floatValues": [ + 60, + 61, + 62, + 63 + ] + }, + "areaId": 64, + "comment": + "Rough quaternion values [w, x, y, z] representing back left most sensor rotated 45 degrees counter-clockwise." + }, + { + "defaultValue": { + "floatValues": [ + 70, + 71, + 72, + 73 + ] + }, + "areaId": 128, + "comment": + "Rough quaternion values [w, x, y, z] representing back 2nd to the left sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 81, + 82, + 83, + 84 + ] + }, + "areaId": 256, + "comment": + "Rough quaternion values [w, x, y, z] representing back 3rd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 90, + 91, + 92, + 93 + ] + }, + "areaId": 512, + "comment": + "Rough quaternion values [w, x, y, z] representing back 3rd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 100, + 101, + 102, + 103 + ] + }, + "areaId": 1024, + "comment": + "Rough quaternion values [w, x, y, z] representing back 2nd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 110, + 111, + 112, + 113 + ] + }, + "areaId": 2048, + "comment": + "Rough quaternion values [w, x, y, z] representing back right most sensor rotated 45 degrees clockwise." + } + ] + }, { "property": "VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", "defaultValue": { -- GitLab From 064fb92949cf7ba23855de2cbcec095087ee39db Mon Sep 17 00:00:00 2001 From: Eva Chen Date: Tue, 12 Dec 2023 14:32:08 -0800 Subject: [PATCH 258/418] Add ULTRASONICS_SENSOR_FIELD_OF_VIEW to emulator defaults. Flag android_vic_vehicle_properties needs to be enabled. Bug: 292141998 Bug: 316088542 Test: atest VtsHalAutomotiveVehicle_TargetTest Test: atest CtsCarTestCases:CarPropertyManagerTest Test: atest CtsCarTestCases:VehiclePropertyIdsTest Change-Id: Ibc57c1688131a424e597df0cd579b1e9799157a7 --- .../config/DefaultProperties.json | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 8be040bd79..ceec1e251e 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -3757,6 +3757,133 @@ } ] }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW", + "comment": + "Default values for 12 individual ultrasonic sensors installed on the vehicle. Six sensors on the front bumper. Six sensors on the back bumper.", + "areas": [ + { + "defaultValue": { + "int32Values": [ + 85, + 45 + ] + }, + "areaId": 1, + "comment": "Rough values representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 2, + "comment": "Rough values representing front 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 4, + "comment": "Rough values representing front 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 8, + "comment": "Rough values representing front 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 16, + "comment": "Rough values representing front 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 85, + 45 + ] + }, + "areaId": 32, + "comment": "Rough values representing front right most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 85, + 45 + ] + }, + "areaId": 64, + "comment": "Rough values representing back left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 128, + "comment": "Rough values representing back 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 256, + "comment": "Rough values representing back 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 512, + "comment": "Rough values representing back 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 1024, + "comment": "Rough values representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 85, + 45 + ] + }, + "areaId": 2048, + "comment": "Rough values representing back right most sensor." + } + ] + }, { "property": "VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", "defaultValue": { -- GitLab From ecce9193de338eb4edd244de4b18ec2c0a0c7855 Mon Sep 17 00:00:00 2001 From: Eva Chen Date: Tue, 12 Dec 2023 15:35:52 -0800 Subject: [PATCH 259/418] Add ULTRASONICS_SENSOR_DETECTION_RANGE to emulator defaults. Flag android_vic_vehicle_properties must be enabled. Bug: 292141998 Bug: 316088542 Test: atest VtsHalAutomotiveVehicle_TargetTest Test: atest CtsCarTestCases:CarPropertyManagerTest Test: atest CtsCarTestCases:VehiclePropertyIdsTest Change-Id: I05ec87cc1d303c93f7e9bc36d35a0b5a41aa189c --- .../config/DefaultProperties.json | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index ceec1e251e..34c81eeb15 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -3884,6 +3884,131 @@ } ] }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE", + "areas": [ + { + "defaultValue": { + "int32Values": [ + 150, + 4000 + ] + }, + "areaId": 1, + "comment": "Rough values representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 2, + "comment": "Rough values representing front 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 4, + "comment": "Rough values representing front 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 8, + "comment": "Rough values representing front 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 16, + "comment": "Rough values representing front 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 4000 + ] + }, + "areaId": 32, + "comment": "Rough values representing front right most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 4000 + ] + }, + "areaId": 64, + "comment": "Rough values representing back left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 128, + "comment": "Rough values representing back 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 256, + "comment": "Rough values representing back 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 512, + "comment": "Rough values representing back 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 1024, + "comment": "Rough values representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 4000 + ] + }, + "areaId": 2048, + "comment": "Rough values representing back right most sensor." + } + ] + }, { "property": "VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", "defaultValue": { -- GitLab From bafc05efd3de5cea70f0db7ad82eb104139c1e2d Mon Sep 17 00:00:00 2001 From: Eva Chen Date: Tue, 12 Dec 2023 14:37:02 -0800 Subject: [PATCH 260/418] Add ULTRASONICS_SENSOR_SUPPORTED_RANGES to emulator defaults. Flag android_vic_vehicle_properties needs to be enabled. Bug: 292141998 Bug: 316088542 Test: atest VtsHalAutomotiveVehicle_TargetTest Test: atest CtsCarTestCases:CarPropertyManagerTest Test: atest CtsCarTestCases:VehiclePropertyIdsTest Change-Id: Ib73a2ada81c46df76f158538d8afb31d98936a93 --- .../config/DefaultProperties.json | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 34c81eeb15..c9fff991ff 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -4009,6 +4009,175 @@ } ] }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES", + "areas": [ + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 4000 + ] + }, + "areaId": 1, + "comment": "Rough values representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 2, + "comment": "Rough values representing front 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 4, + "comment": "Rough values representing front 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 8, + "comment": "Rough values representing front 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 16, + "comment": "Rough values representing front 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 4000 + ] + }, + "areaId": 32, + "comment": "Rough values representing front right most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 4000 + ] + }, + "areaId": 64, + "comment": "Rough values representing back left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 128, + "comment": "Rough values representing back 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 3000 + ] + }, + "areaId": 256, + "comment": "Rough values representing back 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 3000 + ] + }, + "areaId": 512, + "comment": "Rough values representing back 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 1024, + "comment": "Rough values representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 4000 + ] + }, + "areaId": 2048, + "comment": "Rough values representing back right most sensor." + } + ] + }, { "property": "VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", "defaultValue": { -- GitLab From 4bcef309515720e927d76d66dea1d731868ea13b Mon Sep 17 00:00:00 2001 From: Eva Chen Date: Tue, 12 Dec 2023 14:39:56 -0800 Subject: [PATCH 261/418] Add ULTRASONICS_SENSOR_MEASURED_DISTANCE to emulator defaults. Flag android_vic_vehicle_properties needs to be enabled. Bug: 292141998 Bug: 316088542 Test: atest VtsHalAutomotiveVehicle_TargetTest Test: atest CtsCarTestCases:CarPropertyManagerTest Test: atest CtsCarTestCases:VehiclePropertyIdsTest Change-Id: I101bf5174bb5fe879aca4f284552f3aeba2163d7 --- .../config/DefaultProperties.json | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index c9fff991ff..590eff9a23 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -4178,6 +4178,116 @@ } ] }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE", + "areas": [ + { + "defaultValue": { + "int32Values": [ + 2000, + 10 + ] + }, + "areaId": 1, + "comment": "Rough values representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 2, + "comment": + "Rough values representing front 2nd to the left sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 4, + "comment": + "Rough values representing front 3rd to the left sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 8, + "comment": + "Rough values representing front 3rd to the right sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 16, + "comment": + "Rough values representing front 2nd to the right sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 32, + "comment": + "Rough values representing front right most sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 64, + "comment": "Rough values representing back left most sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 128, + "comment": + "Rough values representing back 2nd to the left sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 256, + "comment": + "Rough values representing back 3rd to the left sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [ + 1000 + ] + }, + "areaId": 512, + "comment": + "Rough values representing back 3rd to the right sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [ + 2000, + 50 + ] + }, + "areaId": 1024, + "comment": "Rough values representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 2000 + ] + }, + "areaId": 2048, + "comment": + "Rough values representing back right most sensor. No distance error." + } + ], + "maxSampleRate": 10.0, + "minSampleRate": 1.0 + }, { "property": "VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", "defaultValue": { -- GitLab From 559c20d4f4c2e55f4d4dc520eb4138a2c1537597 Mon Sep 17 00:00:00 2001 From: bodamnam Date: Thu, 28 Dec 2023 03:12:27 +0000 Subject: [PATCH 262/418] Modify the api definition in the ImsMedia HAL for AV sync For more accurate calculation of incoming packet latency and improved inter-media synchronization, modify the AVSync API's request to use the RTCP-SR report's NTP timestamp. This absolute timestamp facilitates cross-media comparisons. Bug: 321878340 Test: mm Change-Id: I9980ac832095d1caf82c42e17307c83522de4b3e --- .../radio/ims/media/RtpReceptionStats.aidl | 4 ++-- .../radio/ims/media/IImsMediaSession.aidl | 3 +-- .../radio/ims/media/RtpReceptionStats.aidl | 17 ++++++++++++----- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpReceptionStats.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpReceptionStats.aidl index 82b798b1d2..216da4c55c 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpReceptionStats.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpReceptionStats.aidl @@ -35,8 +35,8 @@ package android.hardware.radio.ims.media; @VintfStability parcelable RtpReceptionStats { int rtpTimestamp; - int rtpSequenceNumber; - int timeDurationMs; + int rtcpSrTimestamp; + long rtcpSrNtpTimestamp; int jitterBufferMs; int roundTripTimeMs; } diff --git a/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl b/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl index 0fe67406ff..69ca780562 100644 --- a/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl +++ b/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl @@ -110,8 +110,7 @@ oneway interface IImsMediaSession { * Adjust the delay in the jitter buffer to synchronize the audio with the time of video * frames * - * @param delayMs The delay to apply to the jitter buffer. If it is positive, the jitter - * buffer increases the delay, if it is negative, the jitter buffer decreases the delay. + * @param delayMs The additional delay to the jitter buffer in milliseconds. * * This is available when android.hardware.telephony.ims is defined. */ diff --git a/radio/aidl/android/hardware/radio/ims/media/RtpReceptionStats.aidl b/radio/aidl/android/hardware/radio/ims/media/RtpReceptionStats.aidl index 1239d13474..81c0bb27dc 100644 --- a/radio/aidl/android/hardware/radio/ims/media/RtpReceptionStats.aidl +++ b/radio/aidl/android/hardware/radio/ims/media/RtpReceptionStats.aidl @@ -20,12 +20,19 @@ package android.hardware.radio.ims.media; parcelable RtpReceptionStats { /** The timestamp of the latest RTP packet received */ int rtpTimestamp; - /** The sequence number of latest RTP packet received */ - int rtpSequenceNumber; - /** The system clock time in millisecond of latest RTP packet received */ - int timeDurationMs; - /** The jitter buffer size in millisecond when latest RTP packet received */ + + /** The timestamp of the latest RTCP-SR packet received */ + int rtcpSrTimestamp; + + /** The NTP timestamp of latest RTCP-SR packet received */ + long rtcpSrNtpTimestamp; + + /** + * The mean jitter buffer delay of a media stream from received to playback, measured in + * milliseconds, within the reporting interval + */ int jitterBufferMs; + /** The round trip time delay in millisecond when latest RTP packet received */ int roundTripTimeMs; } -- GitLab From 29a9a9ccfd673c0cc25a3f10ae6891c8ef899e4a Mon Sep 17 00:00:00 2001 From: Kevin Karl Date: Tue, 12 Dec 2023 09:06:52 +0100 Subject: [PATCH 263/418] [DO NOT MERGE] vts: Fix for setProp in VtsHalAutomotiveVehicleV2_0TargetTest setProp test, sets READ_WRITE property and reads prop value immediately, without considering the time delay Vehicle HAL service required to process the set request. This is handled by a retry and timeout mechanism, where the read trials will happen in 500 milliseconds for a timeout of 2 seconds. Bug: 312265787 Test: VtsHalAutomotiveVehicleV2_0TargetTest Change-Id: I5db6d724710033f271064ac81c5178f0dec74b26 --- .../VtsHalAutomotiveVehicleV2_0TargetTest.cpp | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/automotive/vehicle/2.0/vts/functional/VtsHalAutomotiveVehicleV2_0TargetTest.cpp b/automotive/vehicle/2.0/vts/functional/VtsHalAutomotiveVehicleV2_0TargetTest.cpp index 692e3d2b35..05634fbdbf 100644 --- a/automotive/vehicle/2.0/vts/functional/VtsHalAutomotiveVehicleV2_0TargetTest.cpp +++ b/automotive/vehicle/2.0/vts/functional/VtsHalAutomotiveVehicleV2_0TargetTest.cpp @@ -24,6 +24,10 @@ #include #include #include +#include + +#include +#include using namespace android::hardware::automotive::vehicle::V2_0; using ::android::sp; @@ -32,6 +36,7 @@ using ::android::hardware::Return; constexpr auto kTimeout = std::chrono::milliseconds(500); constexpr auto kInvalidProp = 0x31600207; +static constexpr auto kPropSetDelayMillis = std::chrono::milliseconds(10000); class VtsVehicleCallback : public IVehicleCallback { private: @@ -240,8 +245,25 @@ TEST_P(VehicleHalHidlTest, setProp) { // check set success invokeGet(cfg.prop, 0); - ASSERT_EQ(StatusCode::OK, mActualStatusCode); + // Retry getting the value until we pass the timeout. getValue might not return + // the expected value immediately since setValue is async. + auto propSetTimeoutMillis = ::android::uptimeMillis() + kPropSetDelayMillis.count(); + while (true) { + invokeGet(cfg.prop, 0); + if (mActualStatusCode == StatusCode::OK && + mActualValue.status == VehiclePropertyStatus::AVAILABLE && + mActualValue.value.int32Values[0] == setValue) { + break; + } + if (::android::uptimeMillis() >= propSetTimeoutMillis) { + // Reach timeout, the following assert should fail. + break; + } + // Sleep for 100ms between each invokeGet retry. + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + ASSERT_EQ(StatusCode::OK, mActualStatusCode); // If the property isn't available, it doesn't make sense to check // the returned value. if (mActualValue.status == VehiclePropertyStatus::AVAILABLE) { -- GitLab From 08c05dd017c07b08d5701e52a7eba8b873ee8706 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Thu, 25 Jan 2024 00:45:55 +0000 Subject: [PATCH 264/418] Update work buffer size with input/output frame size change call process with the minimal of input/output fmq data capacity Bug: 321543210 Test: atest VtsHalAudioEffectTargetTest Test: flash to pixel phone and test audio Change-Id: I0c5087f541dc8526ac733a0c35f0d06f878d78a1 --- audio/aidl/default/EffectContext.cpp | 8 +++++++- audio/aidl/default/EffectImpl.cpp | 4 +++- audio/aidl/default/include/effect-impl/EffectContext.h | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/audio/aidl/default/EffectContext.cpp b/audio/aidl/default/EffectContext.cpp index 2e1291822a..4f226c4bf6 100644 --- a/audio/aidl/default/EffectContext.cpp +++ b/audio/aidl/default/EffectContext.cpp @@ -46,7 +46,7 @@ EffectContext::EffectContext(size_t statusDepth, const Parameter::Common& common ::android::status_t status = EventFlag::createEventFlag(mStatusMQ->getEventFlagWord(), &mEfGroup); LOG_ALWAYS_FATAL_IF(status != ::android::OK || !mEfGroup, " create EventFlagGroup failed "); - mWorkBuffer.reserve(std::max(inBufferSizeInFloat, outBufferSizeInFloat)); + mWorkBuffer.resize(std::max(inBufferSizeInFloat, outBufferSizeInFloat)); } // reset buffer status by abandon input data in FMQ @@ -82,6 +82,10 @@ float* EffectContext::getWorkBuffer() { return static_cast(mWorkBuffer.data()); } +size_t EffectContext::getWorkBufferSize() const { + return mWorkBuffer.size(); +} + std::shared_ptr EffectContext::getStatusFmq() const { return mStatusMQ; } @@ -206,6 +210,8 @@ RetCode EffectContext::updateIOFrameSize(const Parameter::Common& common) { mInputFrameSize = iFrameSize; mOutputFrameSize = oFrameSize; if (needUpdateMq) { + mWorkBuffer.resize(std::max(common.input.frameCount * mInputFrameSize / sizeof(float), + common.output.frameCount * mOutputFrameSize / sizeof(float))); return notifyDataMqUpdate(); } return RetCode::SUCCESS; diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp index b76269aa52..c29bf79945 100644 --- a/audio/aidl/default/EffectImpl.cpp +++ b/audio/aidl/default/EffectImpl.cpp @@ -327,7 +327,9 @@ void EffectImpl::process() { return; } - auto processSamples = inputMQ->availableToRead(); + assert(mImplContext->getWorkBufferSize() >= + std::max(inputMQ->availableToRead(), outputMQ->availableToWrite())); + auto processSamples = std::min(inputMQ->availableToRead(), outputMQ->availableToWrite()); if (processSamples) { inputMQ->read(buffer, processSamples); IEffect::Status status = effectProcessImpl(buffer, buffer, processSamples); diff --git a/audio/aidl/default/include/effect-impl/EffectContext.h b/audio/aidl/default/include/effect-impl/EffectContext.h index 24f3b5dcf2..b3d730df17 100644 --- a/audio/aidl/default/include/effect-impl/EffectContext.h +++ b/audio/aidl/default/include/effect-impl/EffectContext.h @@ -49,6 +49,7 @@ class EffectContext { std::shared_ptr getOutputDataFmq() const; float* getWorkBuffer(); + size_t getWorkBufferSize() const; // reset buffer status by abandon input data in FMQ void resetBuffer(); -- GitLab From c04eb24705a2d3cc26116a280c3aabca94f52cf1 Mon Sep 17 00:00:00 2001 From: Tyler Trephan Date: Fri, 26 Jan 2024 19:37:08 +0000 Subject: [PATCH 265/418] Updated INFO_MODEL_YEAR to specify YYYY format and Gregorian calendar. Test: None Bug: 316922455 Change-Id: Ic10ad624544545ddd407f4eb58baa94599d1112a --- .../android/hardware/automotive/vehicle/VehicleProperty.aidl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index 026c040139..d375a56fe4 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -75,7 +75,7 @@ enum VehicleProperty { INFO_MODEL = 0x0102 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING /** - * Model year of vehicle. + * Model year of vehicle in YYYY format based on the Gregorian calendar. * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ -- GitLab From 1cd53aeb50095b35244aa0b78952278782d7b746 Mon Sep 17 00:00:00 2001 From: Arthur Ishiguro Date: Fri, 26 Jan 2024 19:44:46 +0000 Subject: [PATCH 266/418] Update hardware/interfaces contexthub OWNERS Test: None Change-Id: I1b487dc0a5d5ae512c70c6f5f3c4b33889552562 --- contexthub/OWNERS | 1 - 1 file changed, 1 deletion(-) diff --git a/contexthub/OWNERS b/contexthub/OWNERS index d5cfc2edb6..ee25833d93 100644 --- a/contexthub/OWNERS +++ b/contexthub/OWNERS @@ -1,4 +1,3 @@ # Bug component: 156070 arthuri@google.com bduddie@google.com -stange@google.com -- GitLab From a343d98e8cc070c84123bfc76560cbb666a87f62 Mon Sep 17 00:00:00 2001 From: Bharatt Kukreja Date: Thu, 11 Jan 2024 21:19:41 +0000 Subject: [PATCH 267/418] Restrict HAL to only required keys for session chars Don't allow Camera HAL to send keys other than the required ones for session characteristics. Test: atest VtsAidlHalCameraProvider_TargetTest Bug: 314386872 Change-Id: I3808840e0d404b4a82c8bcfc6d51eab9b171b1e9 --- .../hardware/camera/device/ICameraDevice.aidl | 3 + .../VtsAidlHalCameraProvider_TargetTest.cpp | 10 +- camera/provider/aidl/vts/camera_aidl_test.cpp | 113 +++++++++++------- camera/provider/aidl/vts/camera_aidl_test.h | 3 +- 4 files changed, 84 insertions(+), 45 deletions(-) diff --git a/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl b/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl index 01009ad788..0129dea26f 100644 --- a/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl +++ b/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl @@ -446,6 +446,9 @@ interface ICameraDevice { * - ANDROID_CONTROL_ZOOM_RATIO_RANGE * - SCALER_AVAILABLE_MAX_DIGITAL_ZOOM * + * No other tags (other than vendor tags) should be set in the characteristics returned from + * the HAL. + * * A service specific error will be returned on the following conditions * INTERNAL_ERROR: * The camera device cannot be opened due to an internal diff --git a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp index 9a5f248a6c..6e3ddc9094 100644 --- a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp +++ b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp @@ -330,10 +330,14 @@ TEST_P(CameraAidlTest, getSessionCharacteristics) { StreamConfiguration config; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config); - CameraMetadata chars; - ret = device->getSessionCharacteristics(config, &chars); + CameraMetadata camera_chars; + ret = device->getCameraCharacteristics(&camera_chars); ASSERT_TRUE(ret.isOk()); - verifySessionCharacteristics(chars); + + CameraMetadata session_chars; + ret = device->getSessionCharacteristics(config, &session_chars); + ASSERT_TRUE(ret.isOk()); + verifySessionCharacteristics(session_chars, camera_chars); } } else { ALOGI("getSessionCharacteristics: Test skipped.\n"); diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index d2a409e0cc..9e55434fb6 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -1931,52 +1931,83 @@ void CameraAidlTest::verifyStreamCombination(const std::shared_ptr(chars.metadata.data()); +void CameraAidlTest::verifySessionCharacteristics(const CameraMetadata& session_chars, + const CameraMetadata& camera_chars) { + if (!flags::feature_combination_query()) { + return; + } - size_t expectedSize = chars.metadata.size(); - int result = validate_camera_metadata_structure(metadata, &expectedSize); - ASSERT_TRUE((result == 0) || (result == CAMERA_METADATA_VALIDATION_SHIFTED)); - size_t entryCount = get_camera_metadata_entry_count(metadata); - ASSERT_GT(entryCount, 0u); + const camera_metadata_t* session_metadata = + reinterpret_cast(session_chars.metadata.data()); - camera_metadata_ro_entry entry; - int retcode = 0; - float maxDigitalZoom = 1.0; + const camera_metadata_t* camera_metadata = + reinterpret_cast(camera_chars.metadata.data()); - retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, - &entry); - // ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM should always be present. - if ((0 == retcode) && (entry.count == 1)) { - maxDigitalZoom = entry.data.f[0]; - } else { - ADD_FAILURE() << "Get camera scalerAvailableMaxDigitalZoom failed!"; - } + size_t expectedSize = session_chars.metadata.size(); + int result = validate_camera_metadata_structure(session_metadata, &expectedSize); + ASSERT_TRUE((result == 0) || (result == CAMERA_METADATA_VALIDATION_SHIFTED)); + size_t entryCount = get_camera_metadata_entry_count(session_metadata); + // There should be at least 1 characteristic present: + // SCALER_MAX_DIGITAL_ZOOM must always be available. + // ZOOM_RATIO_RANGE must be available if ZOOM_RATIO is supported. + ASSERT_TRUE(entryCount >= 1); - retcode = find_camera_metadata_ro_entry(metadata, ANDROID_CONTROL_ZOOM_RATIO_RANGE, &entry); - bool hasZoomRatioRange = (0 == retcode && entry.count == 2); - if (!hasZoomRatioRange) { - return; - } - float minZoomRatio = entry.data.f[0]; - float maxZoomRatio = entry.data.f[1]; - constexpr float FLOATING_POINT_THRESHOLD = 0.00001f; - if (abs(maxDigitalZoom - maxZoomRatio) > FLOATING_POINT_THRESHOLD) { - ADD_FAILURE() << "Difference between maximum digital zoom " << maxDigitalZoom - << " and maximum zoom ratio " << maxZoomRatio - << " is greater than the threshold " << FLOATING_POINT_THRESHOLD << "!"; - } - if (minZoomRatio > maxZoomRatio) { - ADD_FAILURE() << "Maximum zoom ratio is less than minimum zoom ratio!"; - } - if (minZoomRatio > 1.0f) { - ADD_FAILURE() << "Minimum zoom ratio is more than 1.0!"; - } - if (maxZoomRatio < 1.0f) { - ADD_FAILURE() << "Maximum zoom ratio is less than 1.0!"; + camera_metadata_ro_entry entry; + int retcode = 0; + float maxDigitalZoom = 1.0; + + for (size_t i = 0; i < entryCount; i++) { + retcode = get_camera_metadata_ro_entry(session_metadata, i, &entry); + ASSERT_TRUE(retcode == 0); + + std::set allowed_tags = {ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, + ANDROID_CONTROL_ZOOM_RATIO_RANGE}; + + if (contains(allowed_tags, entry.tag)) { + continue; } + + // Other than the ones above, no tags should be allowed apart from vendor tags. + ASSERT_TRUE(entry.tag >= VENDOR_SECTION_START); + } + + retcode = find_camera_metadata_ro_entry(session_metadata, + ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, &entry); + if ((0 == retcode) && (entry.count == 1)) { + maxDigitalZoom = entry.data.f[0]; + } else { + ADD_FAILURE() << "Get camera scalerAvailableMaxDigitalZoom failed!"; + } + + retcode = find_camera_metadata_ro_entry(camera_metadata, ANDROID_CONTROL_ZOOM_RATIO_RANGE, + &entry); + bool hasZoomRatioRange = (0 == retcode && entry.count == 2); + if (!hasZoomRatioRange) { + ALOGI("Skipping the rest of the test as ZOOM_RATIO_RANGE is not in camera characteristics"); + return; + } + + // Session characteristics must contain zoom_ratio_range if camera characteristics has it. + retcode = find_camera_metadata_ro_entry(session_metadata, ANDROID_CONTROL_ZOOM_RATIO_RANGE, + &entry); + ASSERT_TRUE(0 == retcode && entry.count == 2); + + float minZoomRatio = entry.data.f[0]; + float maxZoomRatio = entry.data.f[1]; + constexpr float FLOATING_POINT_THRESHOLD = 0.00001f; + if (abs(maxDigitalZoom - maxZoomRatio) > FLOATING_POINT_THRESHOLD) { + ADD_FAILURE() << "Difference between maximum digital zoom " << maxDigitalZoom + << " and maximum zoom ratio " << maxZoomRatio + << " is greater than the threshold " << FLOATING_POINT_THRESHOLD << "!"; + } + if (minZoomRatio > maxZoomRatio) { + ADD_FAILURE() << "Maximum zoom ratio is less than minimum zoom ratio!"; + } + if (minZoomRatio > 1.0f) { + ADD_FAILURE() << "Minimum zoom ratio is more than 1.0!"; + } + if (maxZoomRatio < 1.0f) { + ADD_FAILURE() << "Maximum zoom ratio is less than 1.0!"; } } diff --git a/camera/provider/aidl/vts/camera_aidl_test.h b/camera/provider/aidl/vts/camera_aidl_test.h index 507a6373ba..29c5894a30 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.h +++ b/camera/provider/aidl/vts/camera_aidl_test.h @@ -290,7 +290,8 @@ class CameraAidlTest : public ::testing::TestWithParam { static void verifyStreamCombination(const std::shared_ptr& device, const StreamConfiguration& config, bool expectedStatus); - static void verifySessionCharacteristics(const CameraMetadata& chars); + static void verifySessionCharacteristics(const CameraMetadata& session_chars, + const CameraMetadata& camera_chars); static void verifyLogicalCameraResult(const camera_metadata_t* staticMetadata, const std::vector& resultMetadata); -- GitLab From d4d89b5f2468b2eb4c4610b232b15e9ad22ddfe4 Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Fri, 26 Jan 2024 21:58:39 +0000 Subject: [PATCH 268/418] Remove HIDL media C2 from 202404 compatibility matrix Put it in its own FCM so it's easier to manage while HIDL C2 is being depregated with flagging. This interface will not be allowed in the 202404 vendor interface. Test: launch_cvd Bug: 218588089 Change-Id: I24e14db4edd161a574a4404c8b7271c91dc1243a --- compatibility_matrices/Android.bp | 8 +++++++ compatibility_matrices/Android.mk | 3 ++- .../compatibility_matrix.202404.xml | 19 --------------- .../compatibility_matrix.tmp.xml | 24 +++++++++++++++++++ 4 files changed, 34 insertions(+), 20 deletions(-) create mode 100644 compatibility_matrices/compatibility_matrix.tmp.xml diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp index eefca3929d..a3e1cd4ec2 100644 --- a/compatibility_matrices/Android.bp +++ b/compatibility_matrices/Android.bp @@ -94,3 +94,11 @@ vintf_compatibility_matrix { "kernel_config_v_6.6", ], } + +vintf_compatibility_matrix { + name: "framework_compatibility_matrix.tmp.xml", + stem: "compatibility_matrix.tmp.xml", + srcs: [ + "compatibility_matrix.tmp.xml", + ], +} diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index 72ead58216..7abf35e33a 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -112,7 +112,8 @@ my_system_matrix_deps := \ # interfaces (in the `next` release configuration). ifeq ($(RELEASE_AIDL_USE_UNFROZEN),true) my_system_matrix_deps += \ - framework_compatibility_matrix.202404.xml + framework_compatibility_matrix.202404.xml \ + framework_compatibility_matrix.tmp.xml endif my_framework_matrix_deps += \ diff --git a/compatibility_matrices/compatibility_matrix.202404.xml b/compatibility_matrices/compatibility_matrix.202404.xml index 490498e200..b34011e8b8 100644 --- a/compatibility_matrices/compatibility_matrix.202404.xml +++ b/compatibility_matrices/compatibility_matrix.202404.xml @@ -343,25 +343,6 @@ default - - android.hardware.media.c2 - 1.0-2 - - IComponentStore - software - default[0-9]* - vendor[0-9]*_software - - - - android.hardware.media.c2 - 1.0 - - IConfigurable - default - software - - android.hardware.media.c2 1 diff --git a/compatibility_matrices/compatibility_matrix.tmp.xml b/compatibility_matrices/compatibility_matrix.tmp.xml new file mode 100644 index 0000000000..85e3c4c2fc --- /dev/null +++ b/compatibility_matrices/compatibility_matrix.tmp.xml @@ -0,0 +1,24 @@ + + + + android.hardware.media.c2 + 1.0-2 + + IComponentStore + software + default[0-9]* + vendor[0-9]*_software + + + + android.hardware.media.c2 + 1.0 + + IConfigurable + default + software + + + -- GitLab From b0b71c1f8a3b95261b040a1880943f563f3924c1 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 17 Jan 2024 13:28:24 -0800 Subject: [PATCH 269/418] Create a skeleton Rust VHAL. This is to prove that rust VHAL can be built and can run. The skeleton Rust VHAL will return UNKNOWN_ERROR for all APIs. Test: m android.hardware.automotive.vehicle-V3-rust-service Manually replace VHAL on emulator with Selinux policy manually updated to allow rust VHAL. Bug: 320320087 Change-Id: I7d2dab392bf2ef982001df10c9b602c5c75888f7 --- automotive/vehicle/Android.bp | 8 +++ automotive/vehicle/aidl/rust_impl/README.md | 12 ++++ .../vehicle/aidl/rust_impl/vhal/Android.bp | 29 ++++++++++ .../rust_impl/vhal/src/default_vehicle_hal.rs | 55 +++++++++++++++++++ .../vehicle/aidl/rust_impl/vhal/src/main.rs | 18 ++++++ .../aidl/rust_impl/vhal/vhal-rust-service.rc | 4 ++ .../aidl/rust_impl/vhal/vhal-rust-service.xml | 7 +++ 7 files changed, 133 insertions(+) create mode 100644 automotive/vehicle/aidl/rust_impl/README.md create mode 100644 automotive/vehicle/aidl/rust_impl/vhal/Android.bp create mode 100644 automotive/vehicle/aidl/rust_impl/vhal/src/default_vehicle_hal.rs create mode 100644 automotive/vehicle/aidl/rust_impl/vhal/src/main.rs create mode 100644 automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.rc create mode 100644 automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.xml diff --git a/automotive/vehicle/Android.bp b/automotive/vehicle/Android.bp index 3549519ead..e6149378b0 100644 --- a/automotive/vehicle/Android.bp +++ b/automotive/vehicle/Android.bp @@ -25,3 +25,11 @@ cc_defaults { "android.hardware.automotive.vehicle.property-V3-ndk", ], } + +rust_defaults { + name: "VehicleHalInterfaceRustDefaults", + rustlibs: [ + "android.hardware.automotive.vehicle-V3-rust", + "android.hardware.automotive.vehicle.property-V3-rust", + ], +} diff --git a/automotive/vehicle/aidl/rust_impl/README.md b/automotive/vehicle/aidl/rust_impl/README.md new file mode 100644 index 0000000000..33f996b3e0 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/README.md @@ -0,0 +1,12 @@ +# Rust Skeleton VHAL implementation. + +WARNING: This is not a reference VHAL implementation and does not contain +any actual implementation. + +This folder contains a skeleton VHAL implementation in Rust to demonstrate +how vendor may implement a Rust VHAL. To run this VHAL, include +`android.hardware.automotive.vehicle-V3-rust-service` in your image. + +This implementation returns `StatusCode::UNKNOWN_ERROR` for all operations +and does not pass VTS/CTS. Vendor must replace the logic in +`default_vehicle_hal.rs` with the actual implementation. diff --git a/automotive/vehicle/aidl/rust_impl/vhal/Android.bp b/automotive/vehicle/aidl/rust_impl/vhal/Android.bp new file mode 100644 index 0000000000..46f37d81f2 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/Android.bp @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +rust_binary { + name: "android.hardware.automotive.vehicle-V3-rust-service", + relative_install_path: "hw", + vendor: true, + srcs: ["src/*.rs"], + crate_root: "src/main.rs", + defaults: ["VehicleHalInterfaceRustDefaults"], + vintf_fragments: ["vhal-rust-service.xml"], + init_rc: ["vhal-rust-service.rc"], + rustlibs: [ + "libbinder_rs", + ], +} diff --git a/automotive/vehicle/aidl/rust_impl/vhal/src/default_vehicle_hal.rs b/automotive/vehicle/aidl/rust_impl/vhal/src/default_vehicle_hal.rs new file mode 100644 index 0000000000..1f5dc950ab --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/src/default_vehicle_hal.rs @@ -0,0 +1,55 @@ +use android_hardware_automotive_vehicle::aidl::android::hardware::automotive::vehicle::{ + IVehicle::IVehicle, + IVehicleCallback::IVehicleCallback, + VehiclePropConfigs::VehiclePropConfigs, + GetValueRequests::GetValueRequests, + SetValueRequests::SetValueRequests, + SubscribeOptions::SubscribeOptions, +}; +use binder::{Interface, Result as BinderResult, StatusCode, Strong}; + +/// This struct is defined to implement IVehicle AIDL interface. +pub struct DefaultVehicleHal; + +impl Interface for DefaultVehicleHal {} + +impl IVehicle for DefaultVehicleHal { + fn getAllPropConfigs(&self) -> BinderResult { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn getPropConfigs(&self, _props: &[i32]) -> BinderResult { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn getValues( + &self, _callback: &Strong, _requests: &GetValueRequests + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn setValues( + &self, _callback: &Strong, _requests: &SetValueRequests + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn subscribe( + &self, _callback: &Strong, _options: &[SubscribeOptions], + _max_shared_memory_file_count: i32 + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn unsubscribe( + &self, _callback: &Strong, _prop_ids: &[i32] + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn returnSharedMemory( + &self, _callback: &Strong, _shared_memory_id: i64 + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } +} diff --git a/automotive/vehicle/aidl/rust_impl/vhal/src/main.rs b/automotive/vehicle/aidl/rust_impl/vhal/src/main.rs new file mode 100644 index 0000000000..59b248d27c --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/src/main.rs @@ -0,0 +1,18 @@ +mod default_vehicle_hal; + +use android_hardware_automotive_vehicle::aidl::android::hardware::automotive::vehicle::IVehicle::BnVehicle; +use crate::default_vehicle_hal::DefaultVehicleHal; + +fn main() { + binder::ProcessState::start_thread_pool(); + let my_service = DefaultVehicleHal; + let service_name = "android.hardware.automotive.vehicle.IVehicle/default"; + let my_service_binder = BnVehicle::new_binder( + my_service, + binder::BinderFeatures::default(), + ); + binder::add_service(service_name, my_service_binder.as_binder()) + .expect(format!("Failed to register {}?", service_name).as_str()); + // Does not return. + binder::ProcessState::join_thread_pool() +} diff --git a/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.rc b/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.rc new file mode 100644 index 0000000000..dff9894d44 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.rc @@ -0,0 +1,4 @@ +service vendor.vehicle-hal-default /vendor/bin/hw/android.hardware.automotive.vehicle-V3-rust-service + class early_hal + user vehicle_network + group system inet diff --git a/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.xml b/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.xml new file mode 100644 index 0000000000..b0c6ae7779 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.xml @@ -0,0 +1,7 @@ + + + android.hardware.automotive.vehicle + 3 + IVehicle/default + + -- GitLab From f4ff5871c5df4bd970aaf7e1ffe6532cbbfe232a Mon Sep 17 00:00:00 2001 From: Chris Weir Date: Fri, 26 Jan 2024 17:55:32 +0000 Subject: [PATCH 270/418] Revert "Fix hwasan error for CAN HAL" This reverts commit 864bcb9e7a62d1100a208ce4fbb9573f1e974d81. Reason for revert: Doesn't fix hwsan error, fix upcoming Change-Id: Iab1699c4e5494ff674413cfea78b56d12410e92d --- .../tools/configurator/canprototools.cpp | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/automotive/can/aidl/default/tools/configurator/canprototools.cpp b/automotive/can/aidl/default/tools/configurator/canprototools.cpp index 84edd94bc5..2aea315391 100644 --- a/automotive/can/aidl/default/tools/configurator/canprototools.cpp +++ b/automotive/can/aidl/default/tools/configurator/canprototools.cpp @@ -51,20 +51,15 @@ static std::optional readString(std::istream& s, std::streamsize n) return std::string(buff, 0, std::min(n, got)); } -/* - parseConfigFile *used to* contain the body of parseConfigStream. However, it seems there's some - sort of odd behavior with IstreamInputStream and/or TextFormat::Parse, which causes HW Address - Sanitizer to flag a "tag-mismatch" in this function. Having the ifstream defined in a wrapper - function seems to solve this problem. The exact cause of this problem is yet unknown, but probably - lies somewhere in the protobuf implementation. -*/ -static __attribute__((noinline)) std::optional parseConfigStream( - std::ifstream& cfg_stream) { +std::optional parseConfigFile(const std::string& filepath) { + std::ifstream cfg_stream(filepath); + + // text headers that would be present in a plaintext proto config file. static const std::array text_headers = {"buses", "#", "controller"}; auto cfg_file_snippet = readString(cfg_stream, 10); if (!cfg_file_snippet.has_value()) { - LOG(ERROR) << "Can't read config from stream (maybe failed to open file?)"; + LOG(ERROR) << "Can't open " << filepath << " for reading"; return std::nullopt; } cfg_stream.seekg(0); @@ -82,25 +77,16 @@ static __attribute__((noinline)) std::optional parseConfigStream( if (text_format) { google::protobuf::io::IstreamInputStream pb_stream(&cfg_stream); if (!google::protobuf::TextFormat::Parse(&pb_stream, &config)) { - LOG(ERROR) << "Parsing text format config failed"; + LOG(ERROR) << "Failed to parse (text format) " << filepath; return std::nullopt; } } else if (!config.ParseFromIstream(&cfg_stream)) { - LOG(ERROR) << "Parsing binary format config failed"; + LOG(ERROR) << "Failed to parse (binary format) " << filepath; return std::nullopt; } return config; } -std::optional parseConfigFile(const std::string& filepath) { - std::ifstream cfg_stream(filepath); - auto cfg_maybe = parseConfigStream(cfg_stream); - if (!cfg_maybe.has_value()) { - LOG(ERROR) << "Failed to parse " << filepath; - } - return cfg_maybe; -} - std::optional fromPbBus(const Bus& pb_bus) { BusConfig bus_cfg = {}; bus_cfg.name = pb_bus.name(); -- GitLab From a5c0437327e30d22b450922310f40935353ff2da Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Fri, 26 Jan 2024 16:19:45 -0800 Subject: [PATCH 271/418] audio: Add retries for BT proxy port registration When ModuleBluetooth::createProxy is invoked on BT device connection, the BT stack may not be fully ready yet, and port registration can fail. This is an intermittent state and registration should succeed after retrying. Bug: 320838889 Test: atest pts-bot:A2DP/SRC/REL/BV-02-I Change-Id: I0c7cf7c1c6a8ee03ef55b004f89139e3b56ee9cd --- audio/aidl/default/bluetooth/ModuleBluetooth.cpp | 8 +++++++- audio/aidl/default/include/core-impl/ModuleBluetooth.h | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/audio/aidl/default/bluetooth/ModuleBluetooth.cpp b/audio/aidl/default/bluetooth/ModuleBluetooth.cpp index 9084b3044c..ac375a069e 100644 --- a/audio/aidl/default/bluetooth/ModuleBluetooth.cpp +++ b/audio/aidl/default/bluetooth/ModuleBluetooth.cpp @@ -299,7 +299,13 @@ ndk::ScopedAStatus ModuleBluetooth::createProxy(const AudioPort& audioPort, int3 : std::shared_ptr( std::make_shared()); const auto& devicePort = audioPort.ext.get(); - if (const auto device = devicePort.device.type; !proxy.ptr->registerPort(device)) { + const auto device = devicePort.device.type; + bool registrationSuccess = false; + for (int i = 0; i < kCreateProxyRetries && !registrationSuccess; ++i) { + registrationSuccess = proxy.ptr->registerPort(device); + usleep(kCreateProxyRetrySleepMs * 1000); + } + if (!registrationSuccess) { LOG(ERROR) << __func__ << ": failed to register BT port for " << device.toString(); return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE); } diff --git a/audio/aidl/default/include/core-impl/ModuleBluetooth.h b/audio/aidl/default/include/core-impl/ModuleBluetooth.h index 9451411f48..b95b52699b 100644 --- a/audio/aidl/default/include/core-impl/ModuleBluetooth.h +++ b/audio/aidl/default/include/core-impl/ModuleBluetooth.h @@ -85,6 +85,8 @@ class ModuleBluetooth final : public Module { ndk::ScopedAStatus findOrCreateProxy( const ::aidl::android::media::audio::common::AudioPort& audioPort, CachedProxy& proxy); + static constexpr int kCreateProxyRetries = 5; + static constexpr int kCreateProxyRetrySleepMs = 250; ChildInterface mBluetoothA2dp; ChildInterface mBluetoothLe; std::map mProxies; -- GitLab From 97770cf39cd6a6a05f2d7437eae10c90a45d4dd6 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Fri, 26 Jan 2024 18:25:26 -0800 Subject: [PATCH 272/418] Fix property unavailable check logic. Test: Presubmit Bug: 322070490 Change-Id: Ifd97370a5dd71ace57791c0287bea0bb8c912c29 --- .../vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index 960c5ac92e..993757021c 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -288,11 +288,8 @@ bool VtsHalAutomotiveVehicleTargetTest::isResultOkayWithValue( bool VtsHalAutomotiveVehicleTargetTest::isUnavailable( const VhalClientResult>& result) { - if (result.ok()) { - return false; - } - if (result.error().code() == ErrorCode::NOT_AVAILABLE_FROM_VHAL) { - return true; + if (!result.ok()) { + return result.error().code() == ErrorCode::NOT_AVAILABLE_FROM_VHAL; } if (result.value() != nullptr && result.value()->getStatus() == VehiclePropertyStatus::UNAVAILABLE) { -- GitLab From da2fa0929f11279a620a0ae5198f04067c8ad841 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 25 Jan 2024 17:40:41 -0800 Subject: [PATCH 273/418] Fix HIDL VHAL descriptor name in VTS. Bug: 322418005 Test: Manual test with HIDL VHAL, VTS pass. Change-Id: I93e92d3587243c44b5651ab85d47442ebb64c51a --- .../vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index 993757021c..d91f4f2616 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -1190,7 +1191,8 @@ std::vector getDescriptors() { .isAidlService = true, }); } - for (std::string name : getAllHalInstanceNames(IVehicle::descriptor)) { + for (std::string name : getAllHalInstanceNames( + android::hardware::automotive::vehicle::V2_0::IVehicle::descriptor)) { descriptors.push_back({ .name = name, .isAidlService = false, -- GitLab From 928062ccac80ea914bcad98169f244c0d1d0f9aa Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 25 Jan 2024 17:40:41 -0800 Subject: [PATCH 274/418] Fix HIDL VHAL descriptor name in VTS. Bug: 322418005 Test: Manual test with HIDL VHAL, VTS pass. Change-Id: I93e92d3587243c44b5651ab85d47442ebb64c51a Merged-In: I93e92d3587243c44b5651ab85d47442ebb64c51a --- .../vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index 04a96d42fe..f8ef8cba61 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -454,7 +455,8 @@ std::vector getDescriptors() { .isAidlService = true, }); } - for (std::string name : getAllHalInstanceNames(IVehicle::descriptor)) { + for (std::string name : getAllHalInstanceNames( + android::hardware::automotive::vehicle::V2_0::IVehicle::descriptor)) { descriptors.push_back({ .name = name, .isAidlService = false, -- GitLab From 429bf4a484e3b18105834d7fb531273a5db8e07f Mon Sep 17 00:00:00 2001 From: shihchienc Date: Wed, 24 Jan 2024 08:58:39 +0000 Subject: [PATCH 275/418] [Thread] Initialize socket interface Bug: 31342557 Test: build pass & manual test Change-Id: I9d2ef2f6da8d9c856498f4d89423f76c369cbc62 --- threadnetwork/aidl/default/Android.bp | 2 + .../aidl/default/socket_interface.cpp | 43 +++++++++ .../aidl/default/socket_interface.hpp | 91 +++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 threadnetwork/aidl/default/socket_interface.cpp create mode 100644 threadnetwork/aidl/default/socket_interface.hpp diff --git a/threadnetwork/aidl/default/Android.bp b/threadnetwork/aidl/default/Android.bp index 816f89225b..82a76e0669 100644 --- a/threadnetwork/aidl/default/Android.bp +++ b/threadnetwork/aidl/default/Android.bp @@ -37,6 +37,7 @@ cc_binary { srcs: [ "main.cpp", "service.cpp", + "socket_interface.cpp", "thread_chip.cpp", "utils.cpp", ], @@ -63,6 +64,7 @@ cc_fuzz { ], srcs: [ + "socket_interface.cpp", "thread_chip.cpp", "utils.cpp", "fuzzer.cpp", diff --git a/threadnetwork/aidl/default/socket_interface.cpp b/threadnetwork/aidl/default/socket_interface.cpp new file mode 100644 index 0000000000..3a8b1cf77a --- /dev/null +++ b/threadnetwork/aidl/default/socket_interface.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file includes the implementation for the Socket interface to radio + * (RCP). + */ + +#include "socket_interface.hpp" + +namespace aidl { +namespace android { +namespace hardware { +namespace threadnetwork { + +SocketInterface::SocketInterface(const ot::Url::Url& aRadioUrl) + : mReceiveFrameCallback(nullptr), + mReceiveFrameContext(nullptr), + mReceiveFrameBuffer(nullptr), + mSockFd(-1), + mRadioUrl(aRadioUrl) { + memset(&mInterfaceMetrics, 0, sizeof(mInterfaceMetrics)); + mInterfaceMetrics.mRcpInterfaceType = kSpinelInterfaceTypeVendor; +} + +} // namespace threadnetwork +} // namespace hardware +} // namespace android +} // namespace aidl diff --git a/threadnetwork/aidl/default/socket_interface.hpp b/threadnetwork/aidl/default/socket_interface.hpp new file mode 100644 index 0000000000..2d1b614dfc --- /dev/null +++ b/threadnetwork/aidl/default/socket_interface.hpp @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file includes definitions for the Socket interface interface to radio + * (RCP). + */ + +#include "lib/spinel/spinel_interface.hpp" +#include "lib/url/url.hpp" + +namespace aidl { +namespace android { +namespace hardware { +namespace threadnetwork { + +/** + * Defines a Socket interface to the Radio Co-processor (RCP) + * + */ +class SocketInterface : public ot::Spinel::SpinelInterface { + public: + /** + * Initializes the object. + * + * @param[in] aRadioUrl RadioUrl parsed from radio url. + * + */ + explicit SocketInterface(const ot::Url::Url& aRadioUrl); + + /** + * This destructor deinitializes the object. + * + */ + ~SocketInterface(); + + /** + * Returns the RCP interface metrics. + * + * @return The RCP interface metrics. + * + */ + const otRcpInterfaceMetrics* GetRcpInterfaceMetrics(void) const { return &mInterfaceMetrics; } + + /** + * Indicates whether or not the given interface matches this interface name. + * + * @param[in] aInterfaceName A pointer to the interface name. + * + * @retval TRUE The given interface name matches this interface name. + * @retval FALSE The given interface name doesn't match this interface + * name. + */ + static bool IsInterfaceNameMatch(const char* aInterfaceName) { + static const char kInterfaceName[] = "spinel+socket"; + return (strncmp(aInterfaceName, kInterfaceName, strlen(kInterfaceName)) == 0); + } + + private: + ReceiveFrameCallback mReceiveFrameCallback; + void* mReceiveFrameContext; + RxFrameBuffer* mReceiveFrameBuffer; + + int mSockFd; + const ot::Url::Url& mRadioUrl; + + otRcpInterfaceMetrics mInterfaceMetrics; + + // Non-copyable, intentionally not implemented. + SocketInterface(const SocketInterface&); + SocketInterface& operator=(const SocketInterface&); +}; + +} // namespace threadnetwork +} // namespace hardware +} // namespace android +} // namespace aidl -- GitLab From 1dc8481bc75cf4718774ebdadcc031ac190807dc Mon Sep 17 00:00:00 2001 From: Zhanglong Xia Date: Mon, 29 Jan 2024 17:43:23 +0800 Subject: [PATCH 276/418] Bypass Thread HAL SendSpinelFrame test on TV devices The Thread HAL VTS test is built from the staging folder on the android14-tests-dev branch. And the HAL interface doesn't have @VintfStability which means it is unstable interface. Thread HAL interface has been removed from the staging folder and added the @VintfStability on main branch. It reports following errors when runing the VTS that froms android14-tests-dev branch on main branch. `BpBinder: Cannot do a user transaction on a system stability binder in a vendor stability context` This CL bypasses the `SendSpinelFrame` test case of the Thread VTS tests on TV devices. Bug: b/322731574 Test: Run `run vts -m VtsHalThreadNetworkTargetTest` on the TV device Change-Id: Ibf7fe96aafa58cee7ae55a0ef613f0be67548a80 --- .../vts/VtsHalThreadNetworkTargetTest.cpp | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/staging/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp b/staging/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp index 3e43f9c8b7..14c5b06d1b 100644 --- a/staging/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp +++ b/staging/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp @@ -67,10 +67,33 @@ class ThreadNetworkAidl : public testing::TestWithParam { } virtual void TearDown() override { thread_chip->close(); } + bool DeviceSupportsFeature(const char* feature); + static constexpr char kTvFeatureName[] = "android.software.leanback"; std::shared_ptr thread_chip; }; +bool ThreadNetworkAidl::DeviceSupportsFeature(const char* feature) { + bool device_supports_feature = false; + FILE* p = popen("pm list features", "re"); + char* line = nullptr; + size_t len = 0; + + if (!p) { + return false; + } + + while (getline(&line, &len, p) > 0) { + if (strstr(line, feature)) { + device_supports_feature = true; + break; + } + } + pclose(p); + + return device_supports_feature; +} + TEST_P(ThreadNetworkAidl, Open) { std::shared_ptr callback = ndk::SharedRefBase::make([](auto /* data */) {}); @@ -122,6 +145,10 @@ TEST_P(ThreadNetworkAidl, SendSpinelFrame) { } }); + if (DeviceSupportsFeature(kTvFeatureName)) { + GTEST_SKIP() << "SendSpinelFrame test is bypassed on TV devices"; + } + ASSERT_NE(callback, nullptr); EXPECT_TRUE(thread_chip->open(callback).isOk()); -- GitLab From e77f872215da972a46909e0e3b094198f7a76b29 Mon Sep 17 00:00:00 2001 From: Jakub Tyszkowski Date: Mon, 29 Jan 2024 13:21:21 +0000 Subject: [PATCH 277/418] Fix test run for GSI Bug: 321826143 Test: atest VtsHalBluetoothAudioTargetTest Change-Id: If0273a829e6e164c0aa986f4c90474581b210d7e --- bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp index 7b98634621..789e8a1268 100644 --- a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp +++ b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp @@ -2583,6 +2583,10 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetQoSConfiguration) { TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetDataPathConfiguration) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } IBluetoothAudioProvider::StreamConfig sink_requirement; IBluetoothAudioProvider::StreamConfig source_requirement; std::vector -- GitLab From 5498cfa85a3b3e42d1aabbe349d1a022dd56916b Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Mon, 29 Jan 2024 17:29:04 +0000 Subject: [PATCH 278/418] Secretkeeper: test sealing policy update Test: VtsSecretkeeperTargetTest Change-Id: Ib1d60dc2f80aa8b02011506af7e5c310ad92573a --- .../aidl/vts/secretkeeper_test_client.rs | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index 8c33f0412d..439883f95d 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -171,7 +171,16 @@ impl SkClient { /// Helper method to get a secret. fn get(&mut self, id: &Id) -> Result { - let get_request = GetSecretRequest { id: id.clone(), updated_sealing_policy: None }; + self.get_update_policy(id, None) + } + + /// Helper method to get a secret, updating the sealing policy along the way. + fn get_update_policy( + &mut self, + id: &Id, + updated_sealing_policy: Option>, + ) -> Result { + let get_request = GetSecretRequest { id: id.clone(), updated_sealing_policy }; let get_request = get_request.serialize_to_packet().to_vec()?; let get_response = self.secret_management_request(&get_request)?; @@ -532,8 +541,9 @@ fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: Str #[rdroidtest(get_instances())] fn secret_management_policy_gate(instance: String) { let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 100); - let mut sk_client = SkClient::with_identity(&instance, dice_chain); - sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + let mut sk_client_original = SkClient::with_identity(&instance, dice_chain); + sk_client_original.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + assert_eq!(sk_client_original.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); // Start a session with higher security_version & get the stored secret. let dice_chain_upgraded = make_explicit_owned_dice(/*Security version in a node */ 101); @@ -547,6 +557,20 @@ fn secret_management_policy_gate(instance: String) { sk_client_downgraded.get(&ID_EXAMPLE).unwrap_err(), Error::SecretkeeperError(SecretkeeperError::DicePolicyError) )); + + // Now get the secret with the later version, and upgrade the sealing policy along the way. + let sealing_policy = + sealing_policy(sk_client_upgraded.dice_artifacts.explicit_key_dice_chain().unwrap()); + assert_eq!( + sk_client_upgraded.get_update_policy(&ID_EXAMPLE, Some(sealing_policy)).unwrap(), + SECRET_EXAMPLE + ); + + // The original version of the client should no longer be able to retrieve the secret. + assert!(matches!( + sk_client_original.get(&ID_EXAMPLE).unwrap_err(), + Error::SecretkeeperError(SecretkeeperError::DicePolicyError) + )); } // Helper method that constructs 3 SecretManagement requests. Callers would usually not care about -- GitLab From 057de7cf35fdf4305fa9e2aa8d929b5394dcb4fd Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Mon, 29 Jan 2024 19:21:28 +0000 Subject: [PATCH 279/418] Add VTS tests for findWithParams and connectWithParams. Bug: 322815584 Test: atest VtsHalWifiSupplicantP2pIfaceTargetTest Change-Id: I58c59d045f2fbe5af4101d152a487954e8e16bd5 --- .../supplicant_p2p_iface_aidl_test.cpp | 55 +++++++++++++++++++ .../vts/functional/supplicant_test_utils.h | 29 ++++++++++ 2 files changed, 84 insertions(+) diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp index 2d6823f207..2e22807363 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp @@ -35,7 +35,9 @@ using aidl::android::hardware::wifi::supplicant::IfaceType; using aidl::android::hardware::wifi::supplicant::ISupplicant; using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface; using aidl::android::hardware::wifi::supplicant::MiracastMode; +using aidl::android::hardware::wifi::supplicant::P2pConnectInfo; using aidl::android::hardware::wifi::supplicant::P2pDeviceFoundEventParams; +using aidl::android::hardware::wifi::supplicant::P2pDiscoveryInfo; using aidl::android::hardware::wifi::supplicant::P2pFrameTypeMask; using aidl::android::hardware::wifi::supplicant::P2pGoNegotiationReqEventParams; using aidl::android::hardware::wifi::supplicant::P2pGroupCapabilityMask; @@ -45,6 +47,7 @@ using aidl::android::hardware::wifi::supplicant::P2pPeerClientDisconnectedEventP using aidl::android::hardware::wifi::supplicant::P2pPeerClientJoinedEventParams; using aidl::android::hardware::wifi::supplicant::P2pProvDiscStatusCode; using aidl::android::hardware::wifi::supplicant::P2pProvisionDiscoveryCompletedEventParams; +using aidl::android::hardware::wifi::supplicant::P2pScanType; using aidl::android::hardware::wifi::supplicant::P2pStatusCode; using aidl::android::hardware::wifi::supplicant::SupplicantStatusCode; using aidl::android::hardware::wifi::supplicant::WpsConfigMethods; @@ -69,6 +72,7 @@ const uint32_t kTestNetworkId = 7; const uint32_t kTestGroupFreq = 0; const bool kTestGroupPersistent = false; const bool kTestGroupIsJoin = false; +const auto& kTestVendorData = generateOuiKeyedDataList(5); } // namespace @@ -222,6 +226,7 @@ class SupplicantP2pIfaceAidlTest : public testing::TestWithParam { initializeService(); supplicant_ = getSupplicant(GetParam().c_str()); ASSERT_NE(supplicant_, nullptr); + ASSERT_TRUE(supplicant_->getInterfaceVersion(&interface_version_).isOk()); ASSERT_TRUE(supplicant_ ->setDebugParams(DebugLevel::EXCESSIVE, true, // show timestamps @@ -247,6 +252,7 @@ class SupplicantP2pIfaceAidlTest : public testing::TestWithParam { protected: std::shared_ptr supplicant_; std::shared_ptr p2p_iface_; + int interface_version_; }; /* @@ -549,6 +555,34 @@ TEST_P(SupplicantP2pIfaceAidlTest, FindSpecificFrequency) { EXPECT_TRUE(p2p_iface_->findOnSpecificFrequency(2412, kTestFindTimeout).isOk()); } +/* + * FindWithParams + */ +TEST_P(SupplicantP2pIfaceAidlTest, FindWithParams) { + if (interface_version_ < 3) { + GTEST_SKIP() << "findWithParams is available as of Supplicant V3"; + } + + P2pDiscoveryInfo discoveryParams; + discoveryParams.timeoutInSec = kTestFindTimeout; + discoveryParams.vendorData = kTestVendorData; + + discoveryParams.scanType = P2pScanType::FULL; + EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk()); + EXPECT_TRUE(p2p_iface_->stopFind().isOk()); + sleep(1); + + discoveryParams.scanType = P2pScanType::SOCIAL; + EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk()); + EXPECT_TRUE(p2p_iface_->stopFind().isOk()); + sleep(1); + + discoveryParams.scanType = P2pScanType::SPECIFIC_FREQ; + discoveryParams.frequencyMhz = 2412; + EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk()); + EXPECT_TRUE(p2p_iface_->stopFind().isOk()); +} + /* * StopFind */ @@ -575,6 +609,27 @@ TEST_P(SupplicantP2pIfaceAidlTest, Connect) { .isOk()); } +/* + * ConnectWithParams + */ +TEST_P(SupplicantP2pIfaceAidlTest, ConnectWithParams) { + if (interface_version_ < 3) { + GTEST_SKIP() << "connectWithParams is available as of Supplicant V3"; + } + + P2pConnectInfo connectInfo; + connectInfo.peerAddress = vecToArrayMacAddr(kTestMacAddr); + connectInfo.provisionMethod = WpsProvisionMethod::PBC; + connectInfo.preSelectedPin = kTestConnectPin; + connectInfo.joinExistingGroup = true; + connectInfo.persistent = false; + connectInfo.goIntent = kTestConnectGoIntent; + connectInfo.vendorData = kTestVendorData; + + std::string pin; + EXPECT_TRUE(p2p_iface_->connectWithParams(connectInfo, &pin).isOk()); +} + /* * CancelConnect */ diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h b/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h index f2cb3f665c..b38e669875 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h +++ b/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h @@ -16,14 +16,18 @@ #pragma once +#include + #include "supplicant_aidl_test_utils.h" #include "supplicant_legacy_test_utils.h" +using aidl::android::hardware::wifi::common::OuiKeyedData; using aidl::android::hardware::wifi::supplicant::IfaceInfo; using aidl::android::hardware::wifi::supplicant::ISupplicant; using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface; using aidl::android::hardware::wifi::supplicant::ISupplicantStaIface; using aidl::android::hardware::wifi::supplicant::KeyMgmtMask; +using aidl::android::os::PersistableBundle; std::string getStaIfaceName() { std::array buffer; @@ -91,3 +95,28 @@ std::shared_ptr getSupplicant(const char* supplicant_name) { } return supplicant; } + +std::array vecToArrayMacAddr(std::vector vectorAddr) { + std::array arrayAddr; + std::copy(vectorAddr.begin(), vectorAddr.begin() + 6, arrayAddr.begin()); + return arrayAddr; +} + +std::optional generateOuiKeyedData(int oui) { + PersistableBundle bundle; + bundle.putString("stringKey", "stringValue"); + bundle.putInt("intKey", 12345); + + OuiKeyedData data; + data.oui = oui; + data.vendorData = bundle; + return std::optional{data}; +} + +std::optional>> generateOuiKeyedDataList(int size) { + std::vector> dataList; + for (int i = 0; i < size; i++) { + dataList.push_back(generateOuiKeyedData(i + 1)); + } + return std::optional>>{dataList}; +} -- GitLab From 091430bd1d42ad8f03f117bc6596a360b0f24106 Mon Sep 17 00:00:00 2001 From: Chris Weir Date: Fri, 26 Jan 2024 16:06:47 -0800 Subject: [PATCH 280/418] Fix sanitizer error Wrong constructor for string is being used, which sometimes causes a sanitizer error, due to read past the end of buff, which wasn't NUL-terminated. Bug: 263769296 Test: m, it runs Change-Id: I97c00d5ae068a18739c313eeae39ab6454266a23 --- .../can/aidl/default/tools/configurator/canprototools.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automotive/can/aidl/default/tools/configurator/canprototools.cpp b/automotive/can/aidl/default/tools/configurator/canprototools.cpp index 2aea315391..ead53c1814 100644 --- a/automotive/can/aidl/default/tools/configurator/canprototools.cpp +++ b/automotive/can/aidl/default/tools/configurator/canprototools.cpp @@ -48,7 +48,7 @@ static std::optional readString(std::istream& s, std::streamsize n) char buff[n]; auto got = s.read(buff, n).gcount(); if (!s.good() && !s.eof()) return std::nullopt; - return std::string(buff, 0, std::min(n, got)); + return std::string(buff, got); } std::optional parseConfigFile(const std::string& filepath) { -- GitLab From 19de94764d7de61b43913e4fb5ad54be24eb09f7 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Mon, 29 Jan 2024 13:40:27 -0800 Subject: [PATCH 281/418] audio: Reduce the interval between BT proxy registration retries A follow-up for aosp/2929441. The interval between retries of connecting to BT proxy must be reduced significantly. Otherwise, in situations when the BT is not connected (that happens during tests), the resulting long delay causes failures at the frameowork level due to resulting long timeout. Bug: 322820830 Test: atest audiosystem_tests --iterations 100 Change-Id: Idd84cb22b28d109151f98bb5883dca18a9ae928d --- audio/aidl/default/include/core-impl/ModuleBluetooth.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audio/aidl/default/include/core-impl/ModuleBluetooth.h b/audio/aidl/default/include/core-impl/ModuleBluetooth.h index b95b52699b..4e68d72668 100644 --- a/audio/aidl/default/include/core-impl/ModuleBluetooth.h +++ b/audio/aidl/default/include/core-impl/ModuleBluetooth.h @@ -86,7 +86,7 @@ class ModuleBluetooth final : public Module { const ::aidl::android::media::audio::common::AudioPort& audioPort, CachedProxy& proxy); static constexpr int kCreateProxyRetries = 5; - static constexpr int kCreateProxyRetrySleepMs = 250; + static constexpr int kCreateProxyRetrySleepMs = 75; ChildInterface mBluetoothA2dp; ChildInterface mBluetoothLe; std::map mProxies; -- GitLab From 62fe882688bb598869df8939ebfdeeebf69838cb Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 24 Jan 2024 16:14:21 -0800 Subject: [PATCH 282/418] Add retry in setProp test. Set property operation is async so getting the property value immediately after setting the property might not return the new value. This CL adds the logic to retry when we do not get the expected values back. This CL also skips the test case if getting property or setting property returns unavailable. Test: atest VtsHalAutomotiveVehicle_TargetTest Bug: 322070490 Change-Id: If9349a097a92c51101c7b5f4bf807b610ab2cb0b Merged-In: If9349a097a92c51101c7b5f4bf807b610ab2cb0b --- .../VtsHalAutomotiveVehicle_TargetTest.cpp | 90 ++++++++++++++++++- 1 file changed, 87 insertions(+), 3 deletions(-) diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index f8ef8cba61..c45c000c3c 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -45,8 +46,10 @@ using ::aidl::android::hardware::automotive::vehicle::SubscribeOptions; using ::aidl::android::hardware::automotive::vehicle::VehicleArea; using ::aidl::android::hardware::automotive::vehicle::VehicleProperty; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyAccess; +using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyStatus; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyType; using ::android::getAidlHalInstanceNames; +using ::android::uptimeMillis; using ::android::base::ScopedLockAssertion; using ::android::base::StringPrintf; using ::android::frameworks::automotive::vhal::HalPropError; @@ -57,8 +60,11 @@ using ::android::frameworks::automotive::vhal::IVhalClient; using ::android::hardware::getAllHalInstanceNames; using ::android::hardware::Sanitize; using ::android::hardware::automotive::vehicle::toInt; +using ::android::hardware::automotive::vehicle::VhalResult; constexpr int32_t kInvalidProp = 0x31600207; +// The timeout for retrying getting prop value after setting prop value. +constexpr int64_t kRetryGetPropAfterSetPropTimeoutMillis = 10'000; struct ServiceDescriptor { std::string name; @@ -115,6 +121,10 @@ class VtsVehicleCallback final : public ISubscriptionCallback { class VtsHalAutomotiveVehicleTargetTest : public testing::TestWithParam { protected: bool checkIsSupported(int32_t propertyId); + VehiclePropertyStatus getStatus(const IHalPropValue& halPropValue); + bool isUnavailable(const VhalResult>& result); + bool isResultOkayWithValue(const VhalResult>& result, + int32_t value); public: virtual void SetUp() override { @@ -225,6 +235,41 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, getInvalidProp) { "Expect failure to get property for invalid prop: %" PRId32, kInvalidProp); } +VehiclePropertyStatus VtsHalAutomotiveVehicleTargetTest::getStatus( + const IHalPropValue& halPropValue) { + if (mVhalClient->isAidlVhal()) { + return reinterpret_cast< + const aidl::android::hardware::automotive::vehicle::VehiclePropValue*>( + halPropValue.toVehiclePropValue()) + ->status; + } + return static_cast( + reinterpret_cast( + halPropValue.toVehiclePropValue()) + ->status); +} + +bool VtsHalAutomotiveVehicleTargetTest::isResultOkayWithValue( + const VhalResult>& result, int32_t value) { + return result.ok() && result.value() != nullptr && + getStatus(*(result.value())) == VehiclePropertyStatus::AVAILABLE && + result.value()->getInt32Values().size() == 1 && + result.value()->getInt32Values()[0] == value; +} + +bool VtsHalAutomotiveVehicleTargetTest::isUnavailable( + const VhalResult>& result) { + if (!result.ok()) { + return result.error().code() == StatusCode::NOT_AVAILABLE; + } + if (result.value() != nullptr && + getStatus(*(result.value())) == VehiclePropertyStatus::UNAVAILABLE) { + return true; + } + + return false; +} + // Test set() on read_write properties. TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { ALOGD("VtsHalAutomotiveVehicleTargetTest::setProp"); @@ -252,6 +297,14 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { auto propToGet = mVhalClient->createHalPropValue(propId); auto getValueResult = mVhalClient->getValueSync(*propToGet); + if (isUnavailable(getValueResult)) { + ALOGW("getProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip testing setProp", + propId); + return; + } + ASSERT_TRUE(getValueResult.ok()) << StringPrintf("Failed to get value for property: %" PRId32 ", error: %s", propId, getValueResult.error().message().c_str()); @@ -264,17 +317,48 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { "Expect exactly 1 int value for boolean property: %" PRId32 ", got %zu", propId, intValueSize); - int setValue = value.getInt32Values()[0] == 1 ? 0 : 1; + int32_t setValue = value.getInt32Values()[0] == 1 ? 0 : 1; auto propToSet = mVhalClient->createHalPropValue(propId); propToSet->setInt32Values({setValue}); auto setValueResult = mVhalClient->setValueSync(*propToSet); + if (!setValueResult.ok() && + setValueResult.error().code() == StatusCode::NOT_AVAILABLE) { + ALOGW("setProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip verifying getProperty returns the same value", + propId); + return; + } + ASSERT_TRUE(setValueResult.ok()) << StringPrintf("Failed to set value for property: %" PRId32 ", error: %s", propId, setValueResult.error().message().c_str()); + // Retry getting the value until we pass the timeout. getValue might not return + // the expected value immediately since setValue is async. + auto timeoutMillis = uptimeMillis() + kRetryGetPropAfterSetPropTimeoutMillis; + + while (true) { + getValueResult = mVhalClient->getValueSync(*propToGet); + if (isResultOkayWithValue(getValueResult, setValue)) { + break; + } + if (uptimeMillis() >= timeoutMillis) { + // Reach timeout, the following assert should fail. + break; + } + // Sleep for 100ms between each getValueSync retry. + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + + if (isUnavailable(getValueResult)) { + ALOGW("getProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip verifying the return value", + propId); + return; + } - // check set success - getValueResult = mVhalClient->getValueSync(*propToGet); ASSERT_TRUE(getValueResult.ok()) << StringPrintf("Failed to get value for property: %" PRId32 ", error: %s", propId, getValueResult.error().message().c_str()); -- GitLab From ed19d8e4f3715c9aadc4a4ac0968f71513b1729d Mon Sep 17 00:00:00 2001 From: Cole Faust Date: Mon, 29 Jan 2024 14:38:51 -0800 Subject: [PATCH 283/418] Add v3 filepaths to baseline After finalization, v3 will exist and get NewApi errors. Fixes: 322802379 Test: presubmits Change-Id: I526e940777a6868e5de16af7442ba5de9a43fbe7 --- wifi/hostapd/aidl/lint-baseline.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/wifi/hostapd/aidl/lint-baseline.xml b/wifi/hostapd/aidl/lint-baseline.xml index 99231fc739..4329e1219f 100644 --- a/wifi/hostapd/aidl/lint-baseline.xml +++ b/wifi/hostapd/aidl/lint-baseline.xml @@ -45,4 +45,22 @@ column="12"/> + + + + + + + + \ No newline at end of file -- GitLab From 1837df06c25dc42d63192c2c9bff6bb22a7306d6 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 24 Jan 2024 16:14:21 -0800 Subject: [PATCH 284/418] Add retry in setProp test. Set property operation is async so getting the property value immediately after setting the property might not return the new value. This CL adds the logic to retry when we do not get the expected values back. This CL also skips the test case if getting property or setting property returns unavailable. Test: atest VtsHalAutomotiveVehicle_TargetTest Bug: 322070490 Change-Id: If9349a097a92c51101c7b5f4bf807b610ab2cb0b Merged-In: If9349a097a92c51101c7b5f4bf807b610ab2cb0b --- .../VtsHalAutomotiveVehicle_TargetTest.cpp | 91 ++++++++++++++++++- 1 file changed, 87 insertions(+), 4 deletions(-) diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index 737be847ed..4747f9c259 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -34,20 +34,22 @@ #include #include +#include #include #include #include using ::aidl::android::hardware::automotive::vehicle::IVehicle; -using ::aidl::android::hardware::automotive::vehicle::StatusCode; using ::aidl::android::hardware::automotive::vehicle::SubscribeOptions; using ::aidl::android::hardware::automotive::vehicle::VehicleArea; using ::aidl::android::hardware::automotive::vehicle::VehicleProperty; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyAccess; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyChangeMode; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyGroup; +using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyStatus; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyType; using ::android::getAidlHalInstanceNames; +using ::android::uptimeMillis; using ::android::base::ScopedLockAssertion; using ::android::base::StringPrintf; using ::android::frameworks::automotive::vhal::ErrorCode; @@ -56,11 +58,14 @@ using ::android::frameworks::automotive::vhal::IHalPropConfig; using ::android::frameworks::automotive::vhal::IHalPropValue; using ::android::frameworks::automotive::vhal::ISubscriptionCallback; using ::android::frameworks::automotive::vhal::IVhalClient; +using ::android::frameworks::automotive::vhal::VhalClientResult; using ::android::hardware::getAllHalInstanceNames; using ::android::hardware::Sanitize; using ::android::hardware::automotive::vehicle::toInt; constexpr int32_t kInvalidProp = 0x31600207; +// The timeout for retrying getting prop value after setting prop value. +constexpr int64_t kRetryGetPropAfterSetPropTimeoutMillis = 10'000; struct ServiceDescriptor { std::string name; @@ -117,6 +122,10 @@ class VtsVehicleCallback final : public ISubscriptionCallback { class VtsHalAutomotiveVehicleTargetTest : public testing::TestWithParam { protected: bool checkIsSupported(int32_t propertyId); + VehiclePropertyStatus getStatus(const IHalPropValue& halPropValue); + bool isUnavailable(const VhalClientResult>& result); + bool isResultOkayWithValue(const VhalClientResult>& result, + int32_t value); public: void verifyProperty(VehicleProperty propId, VehiclePropertyAccess access, @@ -230,6 +239,41 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, getInvalidProp) { "Expect failure to get property for invalid prop: %" PRId32, kInvalidProp); } +VehiclePropertyStatus VtsHalAutomotiveVehicleTargetTest::getStatus( + const IHalPropValue& halPropValue) { + if (mVhalClient->isAidlVhal()) { + return reinterpret_cast< + const aidl::android::hardware::automotive::vehicle::VehiclePropValue*>( + halPropValue.toVehiclePropValue()) + ->status; + } + return static_cast( + reinterpret_cast( + halPropValue.toVehiclePropValue()) + ->status); +} + +bool VtsHalAutomotiveVehicleTargetTest::isResultOkayWithValue( + const VhalClientResult>& result, int32_t value) { + return result.ok() && result.value() != nullptr && + getStatus(*(result.value())) == VehiclePropertyStatus::AVAILABLE && + result.value()->getInt32Values().size() == 1 && + result.value()->getInt32Values()[0] == value; +} + +bool VtsHalAutomotiveVehicleTargetTest::isUnavailable( + const VhalClientResult>& result) { + if (!result.ok()) { + return result.error().code() == ErrorCode::NOT_AVAILABLE_FROM_VHAL; + } + if (result.value() != nullptr && + getStatus(*(result.value())) == VehiclePropertyStatus::UNAVAILABLE) { + return true; + } + + return false; +} + // Test set() on read_write properties. TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { ALOGD("VtsHalAutomotiveVehicleTargetTest::setProp"); @@ -257,6 +301,14 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { auto propToGet = mVhalClient->createHalPropValue(propId); auto getValueResult = mVhalClient->getValueSync(*propToGet); + if (isUnavailable(getValueResult)) { + ALOGW("getProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip testing setProp", + propId); + return; + } + ASSERT_TRUE(getValueResult.ok()) << StringPrintf("Failed to get value for property: %" PRId32 ", error: %s", propId, getValueResult.error().message().c_str()); @@ -269,17 +321,48 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { "Expect exactly 1 int value for boolean property: %" PRId32 ", got %zu", propId, intValueSize); - int setValue = value.getInt32Values()[0] == 1 ? 0 : 1; + int32_t setValue = value.getInt32Values()[0] == 1 ? 0 : 1; auto propToSet = mVhalClient->createHalPropValue(propId); propToSet->setInt32Values({setValue}); auto setValueResult = mVhalClient->setValueSync(*propToSet); + if (!setValueResult.ok() && + setValueResult.error().code() == ErrorCode::NOT_AVAILABLE_FROM_VHAL) { + ALOGW("setProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip verifying getProperty returns the same value", + propId); + return; + } + ASSERT_TRUE(setValueResult.ok()) << StringPrintf("Failed to set value for property: %" PRId32 ", error: %s", propId, setValueResult.error().message().c_str()); + // Retry getting the value until we pass the timeout. getValue might not return + // the expected value immediately since setValue is async. + auto timeoutMillis = uptimeMillis() + kRetryGetPropAfterSetPropTimeoutMillis; + + while (true) { + getValueResult = mVhalClient->getValueSync(*propToGet); + if (isResultOkayWithValue(getValueResult, setValue)) { + break; + } + if (uptimeMillis() >= timeoutMillis) { + // Reach timeout, the following assert should fail. + break; + } + // Sleep for 100ms between each getValueSync retry. + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + + if (isUnavailable(getValueResult)) { + ALOGW("getProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip verifying the return value", + propId); + return; + } - // check set success - getValueResult = mVhalClient->getValueSync(*propToGet); ASSERT_TRUE(getValueResult.ok()) << StringPrintf("Failed to get value for property: %" PRId32 ", error: %s", propId, getValueResult.error().message().c_str()); -- GitLab From 43549d934ea08427d21401dabc0f3067fe2bf5bb Mon Sep 17 00:00:00 2001 From: Avichal Rakesh Date: Thu, 25 Jan 2024 16:08:52 -0800 Subject: [PATCH 285/418] ExternalCameraHAL: Skip importing buffer from capture request ExternalCameraHAL supports HAL buffer management which means cameraservice will not send it an output buffer along with the capture request, and the HAL has the freedom to request an output buffer when an output buffer is needed. As a remnant of migration from HIDL to AIDL, the ExternalCameraHAL still attempted to import buffers that the cameraservice has sent with the CaptureRequest. However, with HAL buffer manager enabled, this buffer is always null and results in the HAL failing to process the capture request. This CL removes the logic for importing output buffers when processing capture requests from the cameraservice, and lets the HAL call requestStreamBuffers when it needs an output buffer. Bug: 299182874 Test: VTS Tests now pass Change-Id: I00654836b7ae91a91a2afa4b149712977e07dcc5 --- .../default/ExternalCameraDeviceSession.cpp | 76 ++++--------------- .../default/ExternalCameraDeviceSession.h | 9 --- 2 files changed, 15 insertions(+), 70 deletions(-) diff --git a/camera/device/default/ExternalCameraDeviceSession.cpp b/camera/device/default/ExternalCameraDeviceSession.cpp index a16dd7fd83..479167cf62 100644 --- a/camera/device/default/ExternalCameraDeviceSession.cpp +++ b/camera/device/default/ExternalCameraDeviceSession.cpp @@ -538,6 +538,19 @@ Status ExternalCameraDeviceSession::processOneCaptureRequest(const CaptureReques return Status::INTERNAL_ERROR; } + if (request.outputBuffers.empty()) { + ALOGE("%s: No output buffers provided.", __FUNCTION__); + return Status::ILLEGAL_ARGUMENT; + } + + for (auto& outputBuf : request.outputBuffers) { + if (outputBuf.streamId == -1 || mStreamMap.find(outputBuf.streamId) == mStreamMap.end()) { + ALOGE("%s: Invalid streamId in CaptureRequest.outputBuffers: %d", __FUNCTION__, + outputBuf.streamId); + return Status::ILLEGAL_ARGUMENT; + } + } + const camera_metadata_t* rawSettings = nullptr; bool converted; CameraMetadata settingsFmq; // settings from FMQ @@ -572,8 +585,6 @@ Status ExternalCameraDeviceSession::processOneCaptureRequest(const CaptureReques return Status::ILLEGAL_ARGUMENT; } - std::vector allBufPtrs; - std::vector allFences; size_t numOutputBufs = request.outputBuffers.size(); if (numOutputBufs == 0) { @@ -629,11 +640,6 @@ Status ExternalCameraDeviceSession::processOneCaptureRequest(const CaptureReques } } - status = importRequestLocked(request, allBufPtrs, allFences); - if (status != Status::OK) { - return status; - } - nsecs_t shutterTs = 0; std::unique_ptr frameIn = dequeueV4l2FrameLocked(&shutterTs); if (frameIn == nullptr) { @@ -656,8 +662,8 @@ Status ExternalCameraDeviceSession::processOneCaptureRequest(const CaptureReques halBuf.height = stream.height; halBuf.format = stream.format; halBuf.usage = stream.usage; - halBuf.bufPtr = allBufPtrs[i]; - halBuf.acquireFence = allFences[i]; + halBuf.bufPtr = nullptr; // threadloop will request buffer from cameraservice + halBuf.acquireFence = 0; // threadloop will request fence from cameraservice halBuf.fenceTimeout = false; } { @@ -1351,58 +1357,6 @@ bool ExternalCameraDeviceSession::isSupported( return false; } -Status ExternalCameraDeviceSession::importRequestLocked(const CaptureRequest& request, - std::vector& allBufPtrs, - std::vector& allFences) { - return importRequestLockedImpl(request, allBufPtrs, allFences); -} - -Status ExternalCameraDeviceSession::importRequestLockedImpl( - const CaptureRequest& request, std::vector& allBufPtrs, - std::vector& allFences) { - size_t numOutputBufs = request.outputBuffers.size(); - size_t numBufs = numOutputBufs; - // Validate all I/O buffers - std::vector allBufs; - std::vector allBufIds; - allBufs.resize(numBufs); - allBufIds.resize(numBufs); - allBufPtrs.resize(numBufs); - allFences.resize(numBufs); - std::vector streamIds(numBufs); - - for (size_t i = 0; i < numOutputBufs; i++) { - allBufs[i] = ::android::makeFromAidl(request.outputBuffers[i].buffer); - allBufIds[i] = request.outputBuffers[i].bufferId; - allBufPtrs[i] = &allBufs[i]; - streamIds[i] = request.outputBuffers[i].streamId; - } - - { - Mutex::Autolock _l(mCbsLock); - for (size_t i = 0; i < numBufs; i++) { - Status st = importBufferLocked(streamIds[i], allBufIds[i], allBufs[i], &allBufPtrs[i]); - if (st != Status::OK) { - // Detailed error logs printed in importBuffer - return st; - } - } - } - - // All buffers are imported. Now validate output buffer acquire fences - for (size_t i = 0; i < numOutputBufs; i++) { - native_handle_t* h = ::android::makeFromAidl(request.outputBuffers[i].acquireFence); - if (!sHandleImporter.importFence(h, allFences[i])) { - ALOGE("%s: output buffer %zu acquire fence is invalid", __FUNCTION__, i); - cleanupInflightFences(allFences, i); - native_handle_delete(h); - return Status::INTERNAL_ERROR; - } - native_handle_delete(h); - } - return Status::OK; -} - Status ExternalCameraDeviceSession::importBuffer(int32_t streamId, uint64_t bufId, buffer_handle_t buf, /*out*/ buffer_handle_t** outBufPtr) { diff --git a/camera/device/default/ExternalCameraDeviceSession.h b/camera/device/default/ExternalCameraDeviceSession.h index 736bfd1528..795b5899b6 100644 --- a/camera/device/default/ExternalCameraDeviceSession.h +++ b/camera/device/default/ExternalCameraDeviceSession.h @@ -266,15 +266,6 @@ class ExternalCameraDeviceSession : public BnCameraDeviceSession, public OutputT const std::vector& supportedFormats, const ExternalCameraConfig& cfg); - // Validate and import request's output buffers and acquire fence - Status importRequestLocked(const CaptureRequest& request, - std::vector& allBufPtrs, - std::vector& allFences); - - Status importRequestLockedImpl(const CaptureRequest& request, - std::vector& allBufPtrs, - std::vector& allFences); - Status importBufferLocked(int32_t streamId, uint64_t bufId, buffer_handle_t buf, /*out*/ buffer_handle_t** outBufPtr); static void cleanupInflightFences(std::vector& allFences, size_t numFences); -- GitLab From e820be1fef4c82aac3a35dd310f628748a69b618 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Tue, 30 Jan 2024 00:24:10 +0000 Subject: [PATCH 286/418] wifi: no rust by default for persistable bundle, since Rust is being made the default now. Bug: 321267339 Test: m Change-Id: Ie877c015a7ba3ed3f596285d5cfae9049c663dbd --- wifi/aidl/Android.bp | 3 +++ wifi/common/aidl/Android.bp | 3 +++ wifi/hostapd/aidl/Android.bp | 3 +++ wifi/supplicant/aidl/Android.bp | 3 +++ 4 files changed, 12 insertions(+) diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp index ac95f85c2b..690790c381 100644 --- a/wifi/aidl/Android.bp +++ b/wifi/aidl/Android.bp @@ -48,6 +48,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { diff --git a/wifi/common/aidl/Android.bp b/wifi/common/aidl/Android.bp index 1913451fd7..11acb4ff58 100644 --- a/wifi/common/aidl/Android.bp +++ b/wifi/common/aidl/Android.bp @@ -43,5 +43,8 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, } diff --git a/wifi/hostapd/aidl/Android.bp b/wifi/hostapd/aidl/Android.bp index cdc94bb036..1d265e6a6e 100644 --- a/wifi/hostapd/aidl/Android.bp +++ b/wifi/hostapd/aidl/Android.bp @@ -46,6 +46,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { diff --git a/wifi/supplicant/aidl/Android.bp b/wifi/supplicant/aidl/Android.bp index 632927d714..4ccda9a8f1 100644 --- a/wifi/supplicant/aidl/Android.bp +++ b/wifi/supplicant/aidl/Android.bp @@ -51,6 +51,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { -- GitLab From ebe4da578bbf0ec786031012df8fbd0897607933 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Tue, 26 Dec 2023 15:59:55 -0800 Subject: [PATCH 287/418] Add VTS for remoteaccess HAL. Test: atest VtsHalAutomotiveRemoteAccess_TargetTest Bug: 277967402 Change-Id: I053d91a3a6c76632e166c9500411de278fb40ff7 --- automotive/remoteaccess/TEST_MAPPING | 7 + automotive/remoteaccess/vts/Android.bp | 50 ++ ...tsHalAutomotiveRemoteAccess_TargetTest.cpp | 453 ++++++++++++++++++ 3 files changed, 510 insertions(+) create mode 100644 automotive/remoteaccess/TEST_MAPPING create mode 100644 automotive/remoteaccess/vts/Android.bp create mode 100644 automotive/remoteaccess/vts/src/VtsHalAutomotiveRemoteAccess_TargetTest.cpp diff --git a/automotive/remoteaccess/TEST_MAPPING b/automotive/remoteaccess/TEST_MAPPING new file mode 100644 index 0000000000..81c16c1bb5 --- /dev/null +++ b/automotive/remoteaccess/TEST_MAPPING @@ -0,0 +1,7 @@ +{ + "auto-presubmit": [ + { + "name": "VtsHalAutomotiveRemoteAccess_TargetTest" + } + ] +} diff --git a/automotive/remoteaccess/vts/Android.bp b/automotive/remoteaccess/vts/Android.bp new file mode 100644 index 0000000000..8acd6a1b98 --- /dev/null +++ b/automotive/remoteaccess/vts/Android.bp @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +cc_test { + name: "VtsHalAutomotiveRemoteAccess_TargetTest", + srcs: [ + "src/*.cpp", + ], + static_libs: [ + "android.hardware.automotive.remoteaccess-V2-ndk", + "libgtest", + "libgmock", + ], + shared_libs: [ + "libbinder_ndk", + ], + test_suites: [ + "general-tests", + "vts", + "automotive-tests", + "automotive-general-tests", + ], + defaults: [ + "use_libaidlvintf_gtest_helper_static", + ], + require_root: true, + disable_framework: true, +} diff --git a/automotive/remoteaccess/vts/src/VtsHalAutomotiveRemoteAccess_TargetTest.cpp b/automotive/remoteaccess/vts/src/VtsHalAutomotiveRemoteAccess_TargetTest.cpp new file mode 100644 index 0000000000..0fb743e4b3 --- /dev/null +++ b/automotive/remoteaccess/vts/src/VtsHalAutomotiveRemoteAccess_TargetTest.cpp @@ -0,0 +1,453 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "VtsHalAutomotiveRemoteAccess" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +using ::aidl::android::hardware::automotive::remoteaccess::ApState; +using ::aidl::android::hardware::automotive::remoteaccess::BnRemoteTaskCallback; +using ::aidl::android::hardware::automotive::remoteaccess::IRemoteAccess; +using ::aidl::android::hardware::automotive::remoteaccess::ScheduleInfo; +using ::aidl::android::hardware::automotive::remoteaccess::TaskType; +using ::android::getAidlHalInstanceNames; +using ::android::PrintInstanceNameToString; +using ::android::base::ScopedLockAssertion; +using ::ndk::ScopedAStatus; +using ::ndk::SharedRefBase; +using ::ndk::SpAIBinder; +using ::testing::UnorderedElementsAre; + +namespace { + +const std::string TEST_CLIENT_ID = "TEST CLIENT ID"; +const std::string TEST_SCHEDULE_ID = "TEST SCHEDULE ID"; +const std::string TEST_SCHEDULE_ID_1 = "TEST SCHEDULE ID 1"; +const std::string TEST_SCHEDULE_ID_2 = "TEST SCHEDULE ID 2"; +const std::vector TEST_TASK_DATA = + std::vector({static_cast(0xde), static_cast(0xad), + static_cast(0xbe), static_cast(0xef)}); +const int32_t JOB_DELAY_IN_SECONDS = 5; + +} // namespace + +class VtsHalAutomotiveRemoteAccessTargetTest : public testing::TestWithParam { + public: + virtual void SetUp() override { + const std::string& name = GetParam(); + mHal = IRemoteAccess::fromBinder(SpAIBinder(AServiceManager_waitForService(name.c_str()))); + ASSERT_NE(mHal, nullptr) << "Failed to connect to remote access HAL: " << name; + } + + virtual void TearDown() override { + if (mHal != nullptr) { + mHal->clearRemoteTaskCallback(); + mHal->unscheduleAllTasks(TEST_CLIENT_ID); + } + } + + protected: + std::shared_ptr mHal; + + bool isTaskScheduleSupported(); + int32_t getInterfaceVersion(); + ScheduleInfo getTestScheduleInfo(int32_t delayInSeconds, int32_t count, + int32_t periodicInSeconds); + void setTaskCallbackAndReadyForTask(std::shared_ptr testCallback); +}; + +class TestRemoteTaskCallback final : public BnRemoteTaskCallback { + public: + ScopedAStatus onRemoteTaskRequested(const std::string& clientId, + const std::vector& data) override { + { + std::unique_lock lockGuard(mLock); + mClientIds.push_back(clientId); + mDataList.push_back(data); + } + mCv.notify_one(); + return ScopedAStatus::ok(); + } + + const std::vector getCalledClientIds() { + std::lock_guard lockGuard(mLock); + return mClientIds; + } + + const std::vector> getCalledDataList() { + std::lock_guard lockGuard(mLock); + return mDataList; + } + + bool waitForCallbacks(size_t count, int32_t timeoutInSeconds) { + std::unique_lock lk(mLock); + return mCv.wait_for(lk, std::chrono::seconds(timeoutInSeconds), [this, count] { + ScopedLockAssertion lockAssertion(mLock); + return mClientIds.size() >= count; + }); + } + + private: + std::mutex mLock; + std::vector mClientIds GUARDED_BY(mLock); + std::vector> mDataList GUARDED_BY(mLock); + std::condition_variable mCv; +}; + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetVehicleId) { + std::string vehicleId; + + ScopedAStatus status = mHal->getVehicleId(&vehicleId); + + ASSERT_TRUE(status.isOk()) << "Failed to call getVehicleId"; + ASSERT_FALSE(vehicleId.empty()) << "Vehicle ID must not be empty"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetWakeupServiceName) { + std::string wakeupServiceName; + + ScopedAStatus status = mHal->getWakeupServiceName(&wakeupServiceName); + + ASSERT_TRUE(status.isOk()) << "Failed to call getWakeupServiceName"; + ASSERT_FALSE(wakeupServiceName.empty()) << "Wakeup service name must not be empty"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetProcessorId) { + std::string processorId; + + ScopedAStatus status = mHal->getProcessorId(&processorId); + + ASSERT_TRUE(status.isOk()) << "Failed to call getProcessorId"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testSetClearRemoteTaskCallback) { + std::shared_ptr testCallback = + SharedRefBase::make(); + + ScopedAStatus status = mHal->setRemoteTaskCallback(testCallback); + + ASSERT_TRUE(status.isOk()) << "Failed to call setRemoteTaskCallback"; + + status = mHal->clearRemoteTaskCallback(); + + ASSERT_TRUE(status.isOk()) << "Failed to call clearRemoteTaskCallback"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testNotifyApStateChange) { + ApState apState = ApState{ + .isReadyForRemoteTask = false, + .isWakeupRequired = false, + }; + + ScopedAStatus status = mHal->notifyApStateChange(apState); + + ASSERT_TRUE(status.isOk()) << "Failed to call notifyApStateChange with state: " + << apState.toString(); + + apState = ApState{ + .isReadyForRemoteTask = true, + .isWakeupRequired = false, + }; + + ASSERT_TRUE(status.isOk()) << "Failed to call notifyApStateChange with state: " + << apState.toString(); +} + +int32_t VtsHalAutomotiveRemoteAccessTargetTest::getInterfaceVersion() { + int32_t interfaceVersion = 0; + mHal->getInterfaceVersion(&interfaceVersion); + return interfaceVersion; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testIsTaskScheduleSupported) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + bool supported; + + ScopedAStatus status = mHal->isTaskScheduleSupported(&supported); + + ASSERT_TRUE(status.isOk()) << "Failed to call isTaskScheduleSupported"; +} + +bool VtsHalAutomotiveRemoteAccessTargetTest::isTaskScheduleSupported() { + bool supported = false; + mHal->isTaskScheduleSupported(&supported); + return supported; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetSupportedTaskTypesForScheduling) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::vector supportedTaskTypes; + + ScopedAStatus status = mHal->getSupportedTaskTypesForScheduling(&supportedTaskTypes); + + ASSERT_TRUE(status.isOk()) << "Failed to call getSupportedTaskTypesForScheduling"; + + if (!isTaskScheduleSupported()) { + ASSERT_TRUE(supportedTaskTypes.empty()) + << "getSupportedTaskTypesForScheduling must return empty array " + << "if isTaskScheduleSupported is false"; + return; + } + + ASSERT_TRUE(std::find(supportedTaskTypes.begin(), supportedTaskTypes.end(), TaskType::CUSTOM) != + supportedTaskTypes.end()) + << "getSupportedTaskTypesForScheduling must contain TaskType::CUSTOM"; +} + +ScheduleInfo VtsHalAutomotiveRemoteAccessTargetTest::getTestScheduleInfo( + int32_t delayInSeconds, int32_t count, int32_t periodicInSeconds) { + auto nowInEpochSeconds = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()) + .count(); + + return ScheduleInfo{ + .clientId = TEST_CLIENT_ID, + .scheduleId = TEST_SCHEDULE_ID, + .taskType = TaskType::CUSTOM, + .taskData = TEST_TASK_DATA, + .count = count, + .startTimeInEpochSeconds = nowInEpochSeconds + delayInSeconds, + .periodicInSeconds = periodicInSeconds, + }; +} + +void VtsHalAutomotiveRemoteAccessTargetTest::setTaskCallbackAndReadyForTask( + std::shared_ptr testCallback) { + mHal->setRemoteTaskCallback(testCallback); + // Notify isReadForRemoteTask to be true. + mHal->notifyApStateChange(ApState{ + .isReadyForRemoteTask = true, + .isWakeupRequired = false, + }); +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testScheduleTask) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + int32_t count = 2; + ScheduleInfo scheduleInfo = getTestScheduleInfo( + /*delayInSeconds=*/JOB_DELAY_IN_SECONDS, count, /*periodicInSeconds=*/1); + ScopedAStatus status = mHal->scheduleTask(scheduleInfo); + + if (!isTaskScheduleSupported()) { + ASSERT_FALSE(status.isOk()) << "scheduleTask must return EX_ILLEGAL_ARGUMENT " + << "if isTaskScheduleSupported is false"; + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT) + << "scheduleTask must return EX_ILLEGAL_ARGUMENT " + << "if isTaskScheduleSupported is false"; + return; + } + + ASSERT_TRUE(status.isOk()) << "Failed to call scheduleTask with scheduleInfo: " + << scheduleInfo.toString(); + + int32_t timeoutInSeconds = JOB_DELAY_IN_SECONDS + 5; + bool gotCallbacks = testCallback->waitForCallbacks(count, timeoutInSeconds); + // unschedule the task before checking the result. + mHal->unscheduleTask(TEST_CLIENT_ID, TEST_SCHEDULE_ID); + + ASSERT_TRUE(gotCallbacks) << "Callbacks is not called enough times before timeout: " + << timeoutInSeconds << "s"; + std::vector> dataList = testCallback->getCalledDataList(); + std::vector clientIds = testCallback->getCalledClientIds(); + + for (size_t i = 0; i < dataList.size(); i++) { + EXPECT_EQ(dataList[i], TEST_TASK_DATA) << "Must receive expected task data"; + EXPECT_EQ(clientIds[i], TEST_CLIENT_ID) << "Must receive expected client id"; + } +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testUnscheduleTask) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + ScheduleInfo scheduleInfo = getTestScheduleInfo( + /*delayInSeconds=*/JOB_DELAY_IN_SECONDS, /*count=*/1, /*periodicInSeconds=*/0); + mHal->scheduleTask(scheduleInfo); + ScopedAStatus status = mHal->unscheduleTask(TEST_CLIENT_ID, TEST_SCHEDULE_ID); + + ASSERT_TRUE(status.isOk()) << "Failed to call unscheduleTask"; + + // If not cancelled, should be called in 5s, wait for 6s and make sure no task arrives. + std::this_thread::sleep_for(std::chrono::seconds(JOB_DELAY_IN_SECONDS + 1)); + + ASSERT_TRUE(testCallback->getCalledClientIds().empty()) + << "Remote task callback must not be called if the task is cancelled"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testUnscheduleAllTasks) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + ScheduleInfo scheduleInfo = getTestScheduleInfo( + /*delayInSeconds=*/JOB_DELAY_IN_SECONDS, /*count=*/1, /*periodicInSeconds=*/0); + mHal->scheduleTask(scheduleInfo); + ScopedAStatus status = mHal->unscheduleAllTasks(TEST_CLIENT_ID); + + ASSERT_TRUE(status.isOk()) << "Failed to call unscheduleAllTasks"; + + // If not cancelled, should be called in 5s, wait for 6s and make sure no task arrives. + std::this_thread::sleep_for(std::chrono::seconds(JOB_DELAY_IN_SECONDS + 1)); + + ASSERT_TRUE(testCallback->getCalledClientIds().empty()) + << "Remote task callback must not be called if the task is cancelled"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testIsTaskScheduled) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + ScheduleInfo scheduleInfo = getTestScheduleInfo( + /*delayInSeconds=*/JOB_DELAY_IN_SECONDS, /*count=*/1, /*periodicInSeconds=*/0); + mHal->scheduleTask(scheduleInfo); + + bool scheduled; + ScopedAStatus status = mHal->isTaskScheduled(TEST_CLIENT_ID, TEST_SCHEDULE_ID, &scheduled); + + ASSERT_TRUE(status.isOk()) << "Failed to call unscheduleTask"; + + if (!isTaskScheduleSupported()) { + ASSERT_FALSE(scheduled) << "isTaskScheduled must return false " + << "if isTaskScheduleSupported is false"; + return; + } + + ASSERT_TRUE(scheduled) << "isTaskScheduled must return true if the task is scheduled"; + + mHal->unscheduleAllTasks(TEST_CLIENT_ID); + status = mHal->isTaskScheduled(TEST_CLIENT_ID, TEST_SCHEDULE_ID, &scheduled); + + ASSERT_TRUE(status.isOk()) << "Failed to call unscheduleTask"; + ASSERT_FALSE(scheduled) << "isTaskScheduled must return false if the task is not scheduled"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetAllPendingScheduledTasks) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + auto nowInEpochSeconds = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()) + .count(); + + ScheduleInfo scheduleInfo1 = ScheduleInfo{ + .clientId = TEST_CLIENT_ID, + .scheduleId = TEST_SCHEDULE_ID_1, + .taskType = TaskType::CUSTOM, + .taskData = TEST_TASK_DATA, + .count = 1, + .startTimeInEpochSeconds = nowInEpochSeconds + 5, + .periodicInSeconds = 0, + }; + ScheduleInfo scheduleInfo2 = ScheduleInfo{ + .clientId = TEST_CLIENT_ID, + .scheduleId = TEST_SCHEDULE_ID_2, + .taskType = TaskType::CUSTOM, + .taskData = TEST_TASK_DATA, + .count = 10, + .startTimeInEpochSeconds = nowInEpochSeconds + 10, + .periodicInSeconds = 1, + }; + mHal->scheduleTask(scheduleInfo1); + mHal->scheduleTask(scheduleInfo2); + + std::vector outScheduleInfo; + ScopedAStatus status = mHal->getAllPendingScheduledTasks(TEST_CLIENT_ID, &outScheduleInfo); + + ASSERT_TRUE(status.isOk()) << "Failed to call getAllPendingScheduledTasks"; + + if (!isTaskScheduleSupported()) { + ASSERT_TRUE(outScheduleInfo.empty()) + << "Must return empty array for getAllPendingScheduledTasks " + << "if isTaskScheduleSupported is false"; + return; + } + + ASSERT_THAT(outScheduleInfo, UnorderedElementsAre(scheduleInfo1, scheduleInfo2)) + << "expected all pending schedule info mismatch"; + + mHal->unscheduleTask(TEST_CLIENT_ID, TEST_SCHEDULE_ID_1); + + status = mHal->getAllPendingScheduledTasks(TEST_CLIENT_ID, &outScheduleInfo); + + ASSERT_TRUE(status.isOk()) << "Failed to call getAllPendingScheduledTasks"; + + ASSERT_THAT(outScheduleInfo, UnorderedElementsAre(scheduleInfo2)) + << "expected all pending schedule info mismatch"; +} + +// It is possible that no remote access HAL is registered. +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VtsHalAutomotiveRemoteAccessTargetTest); + +INSTANTIATE_TEST_SUITE_P(PerInstance, VtsHalAutomotiveRemoteAccessTargetTest, + testing::ValuesIn(getAidlHalInstanceNames(IRemoteAccess::descriptor)), + PrintInstanceNameToString); + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + // Starts a process pool for callbacks. + ABinderProcess_setThreadPoolMaxThreadCount(1); + ABinderProcess_startThreadPool(); + return RUN_ALL_TESTS(); +} -- GitLab From ef97150dc97716bb4d53f1dfe004769e11a07194 Mon Sep 17 00:00:00 2001 From: Tang Lee Date: Sat, 27 Jan 2024 12:19:52 +0800 Subject: [PATCH 288/418] ExternalCameraHAL: improve buffer and error handling After enabling HALL Buffer Management, it requires more careful error handling and syncing. Process the buffer request error correctly. Handle the lock and states correctly. Bug: 299182874 Test: CTS passed, expecially ./cts-tradefed run cts -m CtsCameraTestCases -t android.hardware.camera2.cts.NativeCameraDeviceTest ./cts-tradefed run cts -m CtsCameraTestCases -t android.hardware.camera2.cts.RobustnessTest Change-Id: I04d8e19a2ee78580e54340378122c724a3de8edb --- .../device/default/ExternalCameraDeviceSession.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/camera/device/default/ExternalCameraDeviceSession.cpp b/camera/device/default/ExternalCameraDeviceSession.cpp index 479167cf62..075a9f6d49 100644 --- a/camera/device/default/ExternalCameraDeviceSession.cpp +++ b/camera/device/default/ExternalCameraDeviceSession.cpp @@ -1726,8 +1726,8 @@ Status ExternalCameraDeviceSession::processCaptureRequestError( result.outputBuffers[i].bufferId = req->buffers[i].bufferId; result.outputBuffers[i].status = BufferStatus::ERROR; if (req->buffers[i].acquireFence >= 0) { - native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); - handle->data[0] = req->buffers[i].acquireFence; + // numFds = 0 for error + native_handle_t* handle = native_handle_create(/*numFds*/ 0, /*numInts*/ 0); result.outputBuffers[i].releaseFence = android::dupToAidl(handle); native_handle_delete(handle); } @@ -1961,6 +1961,7 @@ int ExternalCameraDeviceSession::BufferRequestThread::waitForBufferRequestDone( std::chrono::milliseconds timeout = std::chrono::milliseconds(kReqProcTimeoutMs); auto st = mRequestDoneCond.wait_for(lk, timeout); if (st == std::cv_status::timeout) { + mRequestingBuffer = false; ALOGE("%s: wait for buffer request finish timeout!", __FUNCTION__); return -1; } @@ -2078,6 +2079,7 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { } } else { ALOGE("%s: requestStreamBuffers call failed!", __FUNCTION__); + return false; } mPendingReturnBufferReqs = std::move(mBufferReqs); @@ -2797,9 +2799,15 @@ bool ExternalCameraDeviceSession::OutputThread::threadLoop() { ATRACE_END(); if (res != 0) { + // HAL buffer management buffer request can fail ALOGE("%s: wait for BufferRequest done failed! res %d", __FUNCTION__, res); lk.unlock(); - return onDeviceError("%s: failed to process buffer request error!", __FUNCTION__); + Status st = parent->processCaptureRequestError(req); + if (st != Status::OK) { + return onDeviceError("%s: failed to process capture request error!", __FUNCTION__); + } + signalRequestDone(); + return true; } ALOGV("%s processing new request", __FUNCTION__); -- GitLab From d685aed02977dca3a370ad016c79aa319a93dd37 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Tue, 30 Jan 2024 18:27:38 +0000 Subject: [PATCH 289/418] vts: update SetCommonParameterAndReopen to DataPathTest Bug: 323010068 Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit Change-Id: I05519481b69bb752f515bd54cb1eab0996ad5433 --- audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp b/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp index 1e6a49f80d..547982523e 100644 --- a/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioEffectTargetTest.cpp @@ -608,8 +608,11 @@ TEST_P(AudioEffectTest, SetAndGetParameterVolume) { ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); } -// Verify Parameters kept after reset. -TEST_P(AudioEffectTest, SetCommonParameterAndReopen) { +/** + * Verify DataMqUpdateEventFlag after common parameter setting. + * verify reopen sequence. + */ +TEST_P(AudioEffectDataPathTest, SetCommonParameterAndReopen) { ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); Parameter::Common common = EffectHelper::createParamCommon( -- GitLab From 62105fb264c79095a58313563e00c4d4cb18f866 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Tue, 30 Jan 2024 23:47:32 +0000 Subject: [PATCH 290/418] AIDL: disable Rust explicitly Now that it's enabled by default, because this doesn't compile in Rust. Bug: 321267339 Test: m Change-Id: I01e0af965827944ba2b4b168a6e8d6c4cf81cfff --- biometrics/face/aidl/Android.bp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/biometrics/face/aidl/Android.bp b/biometrics/face/aidl/Android.bp index 7adf402f81..fadcde7892 100644 --- a/biometrics/face/aidl/Android.bp +++ b/biometrics/face/aidl/Android.bp @@ -29,6 +29,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, ndk: { additional_shared_libraries: [ "libnativewindow", -- GitLab From c2cba539b868cf3da4d9f2d6215d60ee36fc8da9 Mon Sep 17 00:00:00 2001 From: George Chang Date: Thu, 4 Jan 2024 15:48:29 +0800 Subject: [PATCH 291/418] Tag vts module VtsHalSecureElementTargetTest with secure element sim Bug: 302200925 Test: build pass Change-Id: Idbfee70eec009fffe389aad5780a4f04c55757c7 Merged-In: Idbfee70eec009fffe389aad5780a4f04c55757c7 (cherry picked from commit 80e365794b4baeb62ec47662ae2994f7b344ab93) --- secure_element/aidl/vts/AndroidTest.xml | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 secure_element/aidl/vts/AndroidTest.xml diff --git a/secure_element/aidl/vts/AndroidTest.xml b/secure_element/aidl/vts/AndroidTest.xml new file mode 100644 index 0000000000..94dfa8290a --- /dev/null +++ b/secure_element/aidl/vts/AndroidTest.xml @@ -0,0 +1,33 @@ + + + + -- GitLab From 31ecb33558719aca25afc6fd46e653505683043d Mon Sep 17 00:00:00 2001 From: shihchienc Date: Mon, 29 Jan 2024 08:35:15 +0000 Subject: [PATCH 292/418] [Thread] Implement init/deinit socket interface Bug: 313425570 Test: build pass & manual test Change-Id: I34388f76972f9b88f390a04b100c2fbf61019a1d --- .../aidl/default/socket_interface.cpp | 88 +++++++++++++++++++ .../aidl/default/socket_interface.hpp | 69 +++++++++++++++ 2 files changed, 157 insertions(+) diff --git a/threadnetwork/aidl/default/socket_interface.cpp b/threadnetwork/aidl/default/socket_interface.cpp index 3a8b1cf77a..e42f03db7f 100644 --- a/threadnetwork/aidl/default/socket_interface.cpp +++ b/threadnetwork/aidl/default/socket_interface.cpp @@ -22,6 +22,17 @@ #include "socket_interface.hpp" +#include +#include +#include +#include +#include +#include +#include + +#include "common/code_utils.hpp" +#include "openthread/openthread-system.h" + namespace aidl { namespace android { namespace hardware { @@ -37,6 +48,83 @@ SocketInterface::SocketInterface(const ot::Url::Url& aRadioUrl) mInterfaceMetrics.mRcpInterfaceType = kSpinelInterfaceTypeVendor; } +otError SocketInterface::Init(ReceiveFrameCallback aCallback, void* aCallbackContext, + RxFrameBuffer& aFrameBuffer) { + otError error = OT_ERROR_NONE; + + VerifyOrExit(mSockFd == -1, error = OT_ERROR_ALREADY); + + mSockFd = OpenFile(mRadioUrl); + VerifyOrExit(mSockFd != -1, error = OT_ERROR_FAILED); + + mReceiveFrameCallback = aCallback; + mReceiveFrameContext = aCallbackContext; + mReceiveFrameBuffer = &aFrameBuffer; + +exit: + return error; +} + +SocketInterface::~SocketInterface(void) { + Deinit(); +} + +void SocketInterface::Deinit(void) { + CloseFile(); + + mReceiveFrameCallback = nullptr; + mReceiveFrameContext = nullptr; + mReceiveFrameBuffer = nullptr; +} + +void SocketInterface::UpdateFdSet(void* aMainloopContext) { + otSysMainloopContext* context = reinterpret_cast(aMainloopContext); + + assert(context != nullptr); + + FD_SET(mSockFd, &context->mReadFdSet); + + if (context->mMaxFd < mSockFd) { + context->mMaxFd = mSockFd; + } +} + +int SocketInterface::OpenFile(const ot::Url::Url& aRadioUrl) { + int fd = -1; + sockaddr_un serverAddress; + + VerifyOrExit(sizeof(serverAddress.sun_path) > strlen(aRadioUrl.GetPath()), + otLogCritPlat("Invalid file path length")); + strncpy(serverAddress.sun_path, aRadioUrl.GetPath(), sizeof(serverAddress.sun_path)); + serverAddress.sun_family = AF_UNIX; + + fd = socket(AF_UNIX, SOCK_SEQPACKET, 0); + VerifyOrExit(fd != -1, otLogCritPlat("open(): errno=%s", strerror(errno))); + + if (connect(fd, reinterpret_cast(&serverAddress), sizeof(serverAddress)) == + -1) { + otLogCritPlat("connect(): errno=%s", strerror(errno)); + close(fd); + fd = -1; + } + +exit: + return fd; +} + +void SocketInterface::CloseFile(void) { + VerifyOrExit(mSockFd != -1); + + VerifyOrExit(0 == close(mSockFd), otLogCritPlat("close(): errno=%s", strerror(errno))); + VerifyOrExit(wait(nullptr) != -1 || errno == ECHILD, + otLogCritPlat("wait(): errno=%s", strerror(errno))); + + mSockFd = -1; + +exit: + return; +} + } // namespace threadnetwork } // namespace hardware } // namespace android diff --git a/threadnetwork/aidl/default/socket_interface.hpp b/threadnetwork/aidl/default/socket_interface.hpp index 2d1b614dfc..5c679cd899 100644 --- a/threadnetwork/aidl/default/socket_interface.hpp +++ b/threadnetwork/aidl/default/socket_interface.hpp @@ -48,6 +48,57 @@ class SocketInterface : public ot::Spinel::SpinelInterface { */ ~SocketInterface(); + /** + * Initializes the interface to the Radio Co-processor (RCP) + * + * @note This method should be called before reading and sending Spinel + * frames to the interface. + * + * @param[in] aCallback Callback on frame received + * @param[in] aCallbackContext Callback context + * @param[in] aFrameBuffer A reference to a `RxFrameBuffer` object. + * + * @retval OT_ERROR_NONE The interface is initialized successfully + * @retval OT_ERROR_ALREADY The interface is already initialized. + * @retval OT_ERROR_FAILED Failed to initialize the interface. + * + */ + otError Init(ReceiveFrameCallback aCallback, void* aCallbackContext, + RxFrameBuffer& aFrameBuffer); + + /** + * Deinitializes the interface to the RCP. + * + */ + void Deinit(void); + + /** + * Updates the file descriptor sets with file descriptors used by the radio + * driver. + * + * @param[in,out] aMainloopContext A pointer to the mainloop context + * containing fd_sets. + * + */ + void UpdateFdSet(void* aMainloopContext); + + /** + * Returns the bus speed between the host and the radio. + * + * @return Bus speed in bits/second. + * + */ + uint32_t GetBusSpeed(void) const { return 1000000; } + + /** + * Hardware resets the RCP. + * + * @retval OT_ERROR_NONE Successfully reset the RCP. + * @retval OT_ERROR_NOT_IMPLEMENT The hardware reset is not implemented. + * + */ + otError HardwareReset(void) { return OT_ERROR_NOT_IMPLEMENTED; } + /** * Returns the RCP interface metrics. * @@ -71,6 +122,24 @@ class SocketInterface : public ot::Spinel::SpinelInterface { } private: + /** + * Opens file specified by aRadioUrl. + * + * @param[in] aRadioUrl A reference to object containing path to file and + * data for configuring the connection with tty type file. + * + * @retval The file descriptor of newly opened file. + * @retval -1 Fail to open file. + * + */ + int OpenFile(const ot::Url::Url& aRadioUrl); + + /** + * Closes file associated with the file descriptor. + * + */ + void CloseFile(void); + ReceiveFrameCallback mReceiveFrameCallback; void* mReceiveFrameContext; RxFrameBuffer* mReceiveFrameBuffer; -- GitLab From 005f602d2323741f287d6f6b02c9333f964593bd Mon Sep 17 00:00:00 2001 From: shihchienc Date: Wed, 31 Jan 2024 07:37:55 +0000 Subject: [PATCH 293/418] [Thread] Wait until socket created to create interface Bug: 313425570 Test: build pass & manual test Change-Id: I4704178519ed032ad352a3ab252e80478c179574 --- .../aidl/default/socket_interface.cpp | 66 +++++++++++++++++++ .../aidl/default/socket_interface.hpp | 24 +++++++ 2 files changed, 90 insertions(+) diff --git a/threadnetwork/aidl/default/socket_interface.cpp b/threadnetwork/aidl/default/socket_interface.cpp index e42f03db7f..a8b434af07 100644 --- a/threadnetwork/aidl/default/socket_interface.cpp +++ b/threadnetwork/aidl/default/socket_interface.cpp @@ -24,14 +24,18 @@ #include #include +#include #include #include #include #include #include +#include + #include "common/code_utils.hpp" #include "openthread/openthread-system.h" +#include "platform-posix.h" namespace aidl { namespace android { @@ -54,6 +58,8 @@ otError SocketInterface::Init(ReceiveFrameCallback aCallback, void* aCallbackCon VerifyOrExit(mSockFd == -1, error = OT_ERROR_ALREADY); + WaitForSocketFileCreated(mRadioUrl.GetPath()); + mSockFd = OpenFile(mRadioUrl); VerifyOrExit(mSockFd != -1, error = OT_ERROR_FAILED); @@ -125,6 +131,66 @@ exit: return; } +void SocketInterface::WaitForSocketFileCreated(const char* aPath) { + int inotifyFd; + int wd; + int lastSlashIdx; + std::string folderPath; + std::string socketPath(aPath); + + VerifyOrExit(!IsSocketFileExisted(aPath)); + + inotifyFd = inotify_init(); + VerifyOrDie(inotifyFd != -1, OT_EXIT_ERROR_ERRNO); + + lastSlashIdx = socketPath.find_last_of('/'); + VerifyOrDie(lastSlashIdx != std::string::npos, OT_EXIT_ERROR_ERRNO); + + folderPath = socketPath.substr(0, lastSlashIdx); + wd = inotify_add_watch(inotifyFd, folderPath.c_str(), IN_CREATE); + VerifyOrDie(wd != -1, OT_EXIT_ERROR_ERRNO); + + otLogInfoPlat("Waiting for socket file %s be created...", aPath); + + while (true) { + fd_set fds; + FD_ZERO(&fds); + FD_SET(inotifyFd, &fds); + struct timeval timeout = {kMaxSelectTimeMs / MS_PER_S, + (kMaxSelectTimeMs % MS_PER_S) * MS_PER_S}; + + int rval = select(inotifyFd + 1, &fds, nullptr, nullptr, &timeout); + VerifyOrDie(rval >= 0, OT_EXIT_ERROR_ERRNO); + + if (rval == 0 && IsSocketFileExisted(aPath)) { + break; + } + + if (FD_ISSET(inotifyFd, &fds)) { + char buffer[sizeof(struct inotify_event)]; + ssize_t bytesRead = read(inotifyFd, buffer, sizeof(buffer)); + + VerifyOrDie(bytesRead >= 0, OT_EXIT_ERROR_ERRNO); + + struct inotify_event* event = reinterpret_cast(buffer); + if ((event->mask & IN_CREATE) && IsSocketFileExisted(aPath)) { + break; + } + } + } + + close(inotifyFd); + +exit: + otLogInfoPlat("Socket file: %s is created", aPath); + return; +} + +bool SocketInterface::IsSocketFileExisted(const char* aPath) { + struct stat st; + return stat(aPath, &st) == 0 && S_ISSOCK(st.st_mode); +} + } // namespace threadnetwork } // namespace hardware } // namespace android diff --git a/threadnetwork/aidl/default/socket_interface.hpp b/threadnetwork/aidl/default/socket_interface.hpp index 5c679cd899..23940f5fda 100644 --- a/threadnetwork/aidl/default/socket_interface.hpp +++ b/threadnetwork/aidl/default/socket_interface.hpp @@ -140,6 +140,30 @@ class SocketInterface : public ot::Spinel::SpinelInterface { */ void CloseFile(void); + /** + * Check if socket file is created. + * + * @param[in] aPath Socket file path name. + * + * @retval TRUE The required socket file is created. + * @retval FALSE The required socket file is not created. + * + */ + bool IsSocketFileExisted(const char* aPath); + + /** + * Wait until the socket file is created. + * + * @param[in] aPath Socket file path name. + * + */ + void WaitForSocketFileCreated(const char* aPath); + + enum { + kMaxSelectTimeMs = 2000, ///< Maximum wait time in Milliseconds for file + ///< descriptor to become available. + }; + ReceiveFrameCallback mReceiveFrameCallback; void* mReceiveFrameContext; RxFrameBuffer* mReceiveFrameBuffer; -- GitLab From e584923d9899da4f8159b43e87d5c238634508f7 Mon Sep 17 00:00:00 2001 From: Sneha Patil Date: Fri, 1 Dec 2023 17:52:28 +0530 Subject: [PATCH 294/418] BassBoost Process: Add tests to validate Bass Boost Process. Added methods to set and validate parameters. Added test to verify increasing strengths. Bug:305866207 Test: atest VtsHalBassBoostTargetTest Change-Id: I64e06deca199b3acc53eb15cf2007e6db27430f3 --- audio/aidl/vts/Android.bp | 6 + audio/aidl/vts/VtsHalBassBoostTargetTest.cpp | 292 +++++++++++++++---- 2 files changed, 239 insertions(+), 59 deletions(-) diff --git a/audio/aidl/vts/Android.bp b/audio/aidl/vts/Android.bp index 85319ec1b0..106f85e445 100644 --- a/audio/aidl/vts/Android.bp +++ b/audio/aidl/vts/Android.bp @@ -90,6 +90,12 @@ cc_test { name: "VtsHalBassBoostTargetTest", defaults: ["VtsHalAudioEffectTargetTestDefaults"], srcs: ["VtsHalBassBoostTargetTest.cpp"], + cflags: [ + "-Wno-error=unused-parameter", + ], + static_libs: [ + "libpffft", + ], } cc_test { diff --git a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp index 135940df9d..b54b44233f 100644 --- a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp +++ b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp @@ -14,13 +14,17 @@ * limitations under the License. */ +#include + #define LOG_TAG "VtsHalBassBoostTest" +#include #include - #include "EffectHelper.h" +#include "pffft.hpp" using namespace android; +using aidl::android::hardware::audio::common::getChannelCount; using aidl::android::hardware::audio::effect::BassBoost; using aidl::android::hardware::audio::effect::Capability; using aidl::android::hardware::audio::effect::Descriptor; @@ -30,13 +34,11 @@ using aidl::android::hardware::audio::effect::IFactory; using aidl::android::hardware::audio::effect::Parameter; using aidl::android::hardware::audio::effect::Range; using android::hardware::audio::common::testing::detail::TestExecutionTracer; -/** - * Here we focus on specific parameter checking, general IEffect interfaces testing performed in - * VtsAudioEffectTargetTest. - */ -enum ParamName { PARAM_INSTANCE_NAME, PARAM_STRENGTH }; -using BassBoostParamTestParam = std::tuple, Descriptor>, int>; +// minimal HAL interface version to run bassboost data path test +constexpr int32_t kMinDataTestHalVersion = 2; +static const std::vector kLayouts = {AudioChannelLayout::LAYOUT_STEREO, + AudioChannelLayout::LAYOUT_MONO}; /* * Testing parameter range, assuming the parameter supported by effect is in this range. * Parameter should be within the valid range defined in the documentation, @@ -44,29 +46,29 @@ using BassBoostParamTestParam = std::tuple, * otherwise expect EX_ILLEGAL_ARGUMENT. */ -class BassBoostParamTest : public ::testing::TestWithParam, - public EffectHelper { +class BassBoostEffectHelper : public EffectHelper { public: - BassBoostParamTest() : mParamStrength(std::get(GetParam())) { - std::tie(mFactory, mDescriptor) = std::get(GetParam()); - } - - void SetUp() override { + void SetUpBassBoost(int32_t layout = AudioChannelLayout::LAYOUT_STEREO) { ASSERT_NE(nullptr, mFactory); ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); + setFrameCounts(layout); + + AudioChannelLayout channelLayout = + AudioChannelLayout::make(layout); Parameter::Specific specific = getDefaultParamSpecific(); Parameter::Common common = EffectHelper::createParamCommon( - 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, - kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); - IEffect::OpenEffectReturn ret; - ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &ret, EX_NONE)); + 0 /* session */, 1 /* ioHandle */, kSamplingFrequency /* iSampleRate */, + kSamplingFrequency /* oSampleRate */, mInputFrameCount /* iFrameCount */, + mOutputFrameCount /* oFrameCount */, channelLayout, channelLayout); + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &mOpenEffectReturn, EX_NONE)); ASSERT_NE(nullptr, mEffect); } - void TearDown() override { + void TearDownBassBoost() { ASSERT_NO_FATAL_FAILURE(close(mEffect)); ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); + mOpenEffectReturn = IEffect::OpenEffectReturn{}; } Parameter::Specific getDefaultParamSpecific() { @@ -76,58 +78,214 @@ class BassBoostParamTest : public ::testing::TestWithParam(inputBufferLayout)); + mInputFrameCount = kInputSize / channelCount; + mOutputFrameCount = kInputSize / channelCount; + } + + Parameter createBassBoostParam(int strength) { + return Parameter::make( + Parameter::Specific::make( + BassBoost::make(strength))); + } + + bool isStrengthValid(int strength) { + auto bb = BassBoost::make(strength); + return isParameterValid(bb, mDescriptor); + } + + void setAndVerifyParameters(int strength, binder_exception_t expected) { + auto expectedParam = createBassBoostParam(strength); + EXPECT_STATUS(expected, mEffect->setParameter(expectedParam)) << expectedParam.toString(); + + if (expected == EX_NONE) { + auto bbId = BassBoost::Id::make( + BassBoost::Tag(BassBoost::strengthPm)); + auto id = Parameter::Id::make(bbId); + // get parameter + Parameter getParam; + // if set success, then get should match + EXPECT_STATUS(expected, mEffect->getParameter(id, &getParam)); + EXPECT_EQ(expectedParam, getParam) << "\nexpectedParam:" << expectedParam.toString() + << "\ngetParam:" << getParam.toString(); + } + } + + static constexpr int kSamplingFrequency = 44100; + static constexpr int kDurationMilliSec = 2000; + static constexpr int kInputSize = kSamplingFrequency * kDurationMilliSec / 1000; + long mInputFrameCount, mOutputFrameCount; std::shared_ptr mFactory; - std::shared_ptr mEffect; Descriptor mDescriptor; + std::shared_ptr mEffect; + IEffect::OpenEffectReturn mOpenEffectReturn; +}; + +/** + * Here we focus on specific parameter checking, general IEffect interfaces testing performed in + * VtsAudioEffectTargetTest. + */ +enum ParamName { PARAM_INSTANCE_NAME, PARAM_STRENGTH }; +using BassBoostParamTestParam = std::tuple, Descriptor>, int>; + +class BassBoostParamTest : public ::testing::TestWithParam, + public BassBoostEffectHelper { + public: + BassBoostParamTest() : mParamStrength(std::get(GetParam())) { + std::tie(mFactory, mDescriptor) = std::get(GetParam()); + } + + void SetUp() override { ASSERT_NO_FATAL_FAILURE(SetUpBassBoost()); } + void TearDown() override { TearDownBassBoost(); } + int mParamStrength = 0; +}; + +TEST_P(BassBoostParamTest, SetAndGetStrength) { + if (isStrengthValid(mParamStrength)) { + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(mParamStrength, EX_NONE)); + } else { + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(mParamStrength, EX_ILLEGAL_ARGUMENT)); + } +} - void SetAndGetBassBoostParameters() { - for (auto& it : mTags) { - auto& tag = it.first; - auto& bb = it.second; - - // validate parameter - Descriptor desc; - ASSERT_STATUS(EX_NONE, mEffect->getDescriptor(&desc)); - const bool valid = isParameterValid(it.second, desc); - const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT; - - // set parameter - Parameter expectParam; - Parameter::Specific specific; - specific.set(bb); - expectParam.set(specific); - EXPECT_STATUS(expected, mEffect->setParameter(expectParam)) << expectParam.toString(); - - // only get if parameter in range and set success - if (expected == EX_NONE) { - Parameter getParam; - Parameter::Id id; - BassBoost::Id bbId; - bbId.set(tag); - id.set(bbId); - // if set success, then get should match - EXPECT_STATUS(expected, mEffect->getParameter(id, &getParam)); - EXPECT_EQ(expectParam, getParam); +enum DataParamName { DATA_INSTANCE_NAME, DATA_LAYOUT }; + +using BassBoostDataTestParam = + std::tuple, Descriptor>, int32_t>; + +class BassBoostDataTest : public ::testing::TestWithParam, + public BassBoostEffectHelper { + public: + BassBoostDataTest() : mChannelLayout(std::get(GetParam())) { + std::tie(mFactory, mDescriptor) = std::get(GetParam()); + mStrengthValues = getTestValueSet( + {std::get(GetParam())}, expandTestValueBasic); + } + + void SetUp() override { + ASSERT_NO_FATAL_FAILURE(SetUpBassBoost(mChannelLayout)); + if (int32_t version; + mEffect->getInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) { + GTEST_SKIP() << "Skipping the data test for version: " << version << "\n"; + } + } + + void TearDown() override { TearDownBassBoost(); } + + // Find FFT bin indices for testFrequencies and get bin center frequencies + void roundToFreqCenteredToFftBin(std::vector& testFrequencies, + std::vector& binOffsets) { + for (size_t i = 0; i < testFrequencies.size(); i++) { + binOffsets[i] = std::round(testFrequencies[i] / kBinWidth); + testFrequencies[i] = std::round(binOffsets[i] * kBinWidth); + } + } + + // Generate multitone input between -1 to +1 using testFrequencies + void generateMultiTone(const std::vector& testFrequencies, std::vector& input) { + for (auto i = 0; i < kInputSize; i++) { + input[i] = 0; + + for (size_t j = 0; j < testFrequencies.size(); j++) { + input[i] += sin(2 * M_PI * testFrequencies[j] * i / kSamplingFrequency); } + input[i] /= testFrequencies.size(); + } + } + + // Use FFT transform to convert the buffer to frequency domain + // Compute its magnitude at binOffsets + std::vector calculateMagnitude(const std::vector& buffer, + const std::vector& binOffsets) { + std::vector fftInput(kNPointFFT); + PFFFT_Setup* inputHandle = pffft_new_setup(kNPointFFT, PFFFT_REAL); + pffft_transform_ordered(inputHandle, buffer.data(), fftInput.data(), nullptr, + PFFFT_FORWARD); + pffft_destroy_setup(inputHandle); + std::vector bufferMag(binOffsets.size()); + for (size_t i = 0; i < binOffsets.size(); i++) { + size_t k = binOffsets[i]; + bufferMag[i] = sqrt((fftInput[k * 2] * fftInput[k * 2]) + + (fftInput[k * 2 + 1] * fftInput[k * 2 + 1])); } + + return bufferMag; } - void addStrengthParam(int strength) { - BassBoost bb; - bb.set(strength); - mTags.push_back({BassBoost::strengthPm, bb}); + // Calculate gain difference between low frequency and high frequency magnitude + float calculateGainDiff(const std::vector& inputMag, + const std::vector& outputMag) { + std::vector gains(inputMag.size()); + + for (size_t i = 0; i < inputMag.size(); i++) { + gains[i] = 20 * log10(outputMag[i] / inputMag[i]); + } + + return gains[0] - gains[1]; } - private: - std::vector> mTags; - void CleanUp() { mTags.clear(); } + static constexpr int kNPointFFT = 32768; + static constexpr float kBinWidth = (float)kSamplingFrequency / kNPointFFT; + std::set mStrengthValues; + int32_t mChannelLayout; }; -TEST_P(BassBoostParamTest, SetAndGetStrength) { - EXPECT_NO_FATAL_FAILURE(addStrengthParam(mParamStrength)); - SetAndGetBassBoostParameters(); +TEST_P(BassBoostDataTest, IncreasingStrength) { + // Frequencies to generate multitone input + std::vector testFrequencies = {100, 1000}; + + // FFT bin indices for testFrequencies + std::vector binOffsets(testFrequencies.size()); + + std::vector input(kInputSize); + std::vector baseOutput(kInputSize); + + std::vector inputMag(testFrequencies.size()); + float prevGain = -100; + + roundToFreqCenteredToFftBin(testFrequencies, binOffsets); + + generateMultiTone(testFrequencies, input); + + inputMag = calculateMagnitude(input, binOffsets); + + if (isStrengthValid(0)) { + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(0, EX_NONE)); + } else { + GTEST_SKIP() << "Strength not supported, skipping the test\n"; + } + + ASSERT_NO_FATAL_FAILURE( + processAndWriteToOutput(input, baseOutput, mEffect, &mOpenEffectReturn)); + + std::vector baseMag(testFrequencies.size()); + baseMag = calculateMagnitude(baseOutput, binOffsets); + float baseDiff = calculateGainDiff(inputMag, baseMag); + + for (int strength : mStrengthValues) { + // Skipping the further steps for invalid strength values + if (!isStrengthValid(strength)) { + continue; + } + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(strength, EX_NONE)); + + std::vector output(kInputSize); + std::vector outputMag(testFrequencies.size()); + + ASSERT_NO_FATAL_FAILURE( + processAndWriteToOutput(input, output, mEffect, &mOpenEffectReturn)); + + outputMag = calculateMagnitude(output, binOffsets); + float diff = calculateGainDiff(inputMag, outputMag); + + ASSERT_GT(diff, prevGain); + ASSERT_GT(diff, baseDiff); + prevGain = diff; + } } std::vector, Descriptor>> kDescPair; @@ -150,6 +308,22 @@ INSTANTIATE_TEST_SUITE_P( GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BassBoostParamTest); +INSTANTIATE_TEST_SUITE_P( + BassBoostTest, BassBoostDataTest, + ::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors( + IFactory::descriptor, getEffectTypeUuidBassBoost())), + testing::ValuesIn(kLayouts)), + [](const testing::TestParamInfo& info) { + auto descriptor = std::get(info.param).second; + std::string layout = std::to_string(std::get(info.param)); + std::string name = getPrefix(descriptor) + "_layout_" + layout; + std::replace_if( + name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); + return name; + }); + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BassBoostDataTest); + int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); ::testing::UnitTest::GetInstance()->listeners().Append(new TestExecutionTracer()); -- GitLab From 5b2cd323685d6ca9b1a2feb3aae26ed67aec9e43 Mon Sep 17 00:00:00 2001 From: shihchienc Date: Wed, 31 Jan 2024 07:13:52 +0000 Subject: [PATCH 295/418] [Thread] Implement write on socket interface Bug: 313425570 Test: build pass & manual test Change-Id: I2da14a563b795b0044362c1c248b53c1d3505d39 --- .../aidl/default/socket_interface.cpp | 12 ++++++++++ .../aidl/default/socket_interface.hpp | 23 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/threadnetwork/aidl/default/socket_interface.cpp b/threadnetwork/aidl/default/socket_interface.cpp index a8b434af07..6b9b80eb07 100644 --- a/threadnetwork/aidl/default/socket_interface.cpp +++ b/threadnetwork/aidl/default/socket_interface.cpp @@ -83,6 +83,12 @@ void SocketInterface::Deinit(void) { mReceiveFrameBuffer = nullptr; } +otError SocketInterface::SendFrame(const uint8_t* aFrame, uint16_t aLength) { + Write(aFrame, aLength); + + return OT_ERROR_NONE; +} + void SocketInterface::UpdateFdSet(void* aMainloopContext) { otSysMainloopContext* context = reinterpret_cast(aMainloopContext); @@ -95,6 +101,12 @@ void SocketInterface::UpdateFdSet(void* aMainloopContext) { } } +void SocketInterface::Write(const uint8_t* aFrame, uint16_t aLength) { + ssize_t rval = TEMP_FAILURE_RETRY(write(mSockFd, aFrame, aLength)); + VerifyOrDie(rval >= 0, OT_EXIT_ERROR_ERRNO); + VerifyOrDie(rval > 0, OT_EXIT_FAILURE); +} + int SocketInterface::OpenFile(const ot::Url::Url& aRadioUrl) { int fd = -1; sockaddr_un serverAddress; diff --git a/threadnetwork/aidl/default/socket_interface.hpp b/threadnetwork/aidl/default/socket_interface.hpp index 23940f5fda..2dd315d125 100644 --- a/threadnetwork/aidl/default/socket_interface.hpp +++ b/threadnetwork/aidl/default/socket_interface.hpp @@ -72,6 +72,20 @@ class SocketInterface : public ot::Spinel::SpinelInterface { */ void Deinit(void); + /** + * Sends a Spinel frame to Radio Co-processor (RCP) over the + * socket. + * + * @param[in] aFrame A pointer to buffer containing the Spinel frame to + * send. + * @param[in] aLength The length (number of bytes) in the frame. + * + * @retval OT_ERROR_NONE Successfully sent the Spinel frame. + * @retval OT_ERROR_FAILED Failed to send a frame. + * + */ + otError SendFrame(const uint8_t* aFrame, uint16_t aLength); + /** * Updates the file descriptor sets with file descriptors used by the radio * driver. @@ -122,6 +136,15 @@ class SocketInterface : public ot::Spinel::SpinelInterface { } private: + /** + * Writes a given frame to the socket. + * + * @param[in] aFrame A pointer to buffer containing the frame to write. + * @param[in] aLength The length (number of bytes) in the frame. + * + */ + void Write(const uint8_t* aFrame, uint16_t aLength); + /** * Opens file specified by aRadioUrl. * -- GitLab From e8934d0991c98950e20351c333e3a0ebc110a975 Mon Sep 17 00:00:00 2001 From: Jeff Vander Stoep Date: Wed, 31 Jan 2024 10:49:31 +0100 Subject: [PATCH 296/418] Replace use of deprecated logging functions This is needed to upgrade the android_logger crate from 0.12.0 to 0.13.3. with_max_level provides the same functionality as with_min_level. The renaming is admittedly confusing, but the new name is accurate and it makes sense that they deprecated and then removed the previously poorly named with_min_level. See crate documentation [1] and code [2]. [1]: https://docs.rs/android_logger/0.12.0/android_logger/struct.Config.html#method.with_min_level [2]: https://docs.rs/android_logger/0.12.0/src/android_logger/lib.rs.html#227 Bug: 322718401 Test: build and run CF with the change. Test: m aosp_cf_x86_64_phone Change-Id: I0ca9596433967be70e9d55acb6cfbf9322741bf8 --- bluetooth/lmp_event/aidl/default/src/main.rs | 4 ++-- security/authgraph/default/src/main.rs | 4 ++-- security/secretkeeper/default/src/main.rs | 6 +++--- uwb/aidl/default/src/service.rs | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bluetooth/lmp_event/aidl/default/src/main.rs b/bluetooth/lmp_event/aidl/default/src/main.rs index cbdd4d1521..128fb2cbc6 100644 --- a/bluetooth/lmp_event/aidl/default/src/main.rs +++ b/bluetooth/lmp_event/aidl/default/src/main.rs @@ -21,7 +21,7 @@ use android_hardware_bluetooth_lmp_event::aidl::android::hardware::bluetooth::lm }; use binder::BinderFeatures; -use log::{info, Level}; +use log::{info, LevelFilter}; mod lmp_event; @@ -30,7 +30,7 @@ const LOG_TAG: &str = "lmp_event_service_example"; fn main() { info!("{LOG_TAG}: starting service"); let logger_success = logger::init( - logger::Config::default().with_tag_on_device(LOG_TAG).with_min_level(Level::Trace) + logger::Config::default().with_tag_on_device(LOG_TAG).with_max_level(LevelFilter::Trace) ); if !logger_success { panic!("{LOG_TAG}: Failed to start logger"); diff --git a/security/authgraph/default/src/main.rs b/security/authgraph/default/src/main.rs index ced7567583..65ced75932 100644 --- a/security/authgraph/default/src/main.rs +++ b/security/authgraph/default/src/main.rs @@ -50,8 +50,8 @@ fn inner_main() -> Result<(), HalServiceError> { android_logger::init_once( android_logger::Config::default() .with_tag("authgraph-hal-nonsecure") - .with_min_level(log::Level::Info) - .with_log_id(android_logger::LogId::System), + .with_max_level(log::LevelFilter::Info) + .with_log_buffer(android_logger::LogId::System), ); // Redirect panic messages to logcat. std::panic::set_hook(Box::new(|panic_info| { diff --git a/security/secretkeeper/default/src/main.rs b/security/secretkeeper/default/src/main.rs index 436f9a7849..081b97d953 100644 --- a/security/secretkeeper/default/src/main.rs +++ b/security/secretkeeper/default/src/main.rs @@ -16,7 +16,7 @@ //! Non-secure implementation of the Secretkeeper HAL. -use log::{error, info, Level}; +use log::{error, info, LevelFilter}; use secretkeeper_hal::SecretkeeperService; use secretkeeper_nonsecure::{AuthGraphChannel, SecretkeeperChannel, LocalTa}; use std::sync::{Arc, Mutex}; @@ -29,8 +29,8 @@ fn main() { android_logger::init_once( android_logger::Config::default() .with_tag("NonSecureSecretkeeper") - .with_min_level(Level::Info) - .with_log_id(android_logger::LogId::System), + .with_max_level(LevelFilter::Info) + .with_log_buffer(android_logger::LogId::System), ); // Redirect panic messages to logcat. std::panic::set_hook(Box::new(|panic_info| { diff --git a/uwb/aidl/default/src/service.rs b/uwb/aidl/default/src/service.rs index 7d5c07323f..e97b291876 100644 --- a/uwb/aidl/default/src/service.rs +++ b/uwb/aidl/default/src/service.rs @@ -6,7 +6,7 @@ use tokio::runtime::Runtime; use std::env; use std::panic; -use log::Level; +use log::LevelFilter; mod uwb; mod uwb_chip; @@ -14,7 +14,7 @@ mod uwb_chip; fn main() -> anyhow::Result<()> { logger::init( logger::Config::default() - .with_min_level(Level::Debug) + .with_max_level(LevelFilter::Debug) .with_tag_on_device("android.hardware.uwb"), ); -- GitLab From c5c6c629957a541cbfd02e3f79c36ba523e61e15 Mon Sep 17 00:00:00 2001 From: Aditya Choudhary Date: Wed, 31 Jan 2024 11:06:17 +0000 Subject: [PATCH 297/418] [DON'T BLOCK] Test ownership migration rules This CL is created as a best effort to migrate test targets to the new android ownership model. If you find incorrect or unnecessary attribution in this CL, please create a separate CL to fix that. For more details please refer to the link below, Bug: 304529413 Test: N/A Change-Id: I3322344f595f974f730dc824af0110388076d838 --- audio/aidl/Android.bp | 1 + audio/aidl/common/Android.bp | 1 + audio/aidl/default/Android.bp | 1 + audio/aidl/default/acousticEchoCanceler/Android.bp | 1 + audio/aidl/default/apex/com.android.hardware.audio/Android.bp | 1 + audio/aidl/default/automaticGainControlV1/Android.bp | 1 + audio/aidl/default/automaticGainControlV2/Android.bp | 1 + audio/aidl/default/bassboost/Android.bp | 1 + audio/aidl/default/config/audioPolicy/Android.bp | 1 + audio/aidl/default/config/audioPolicy/engine/Android.bp | 1 + audio/aidl/default/downmix/Android.bp | 1 + audio/aidl/default/dynamicProcessing/Android.bp | 1 + audio/aidl/default/envReverb/Android.bp | 1 + audio/aidl/default/equalizer/Android.bp | 1 + audio/aidl/default/extension/Android.bp | 1 + audio/aidl/default/hapticGenerator/Android.bp | 1 + audio/aidl/default/loudnessEnhancer/Android.bp | 1 + audio/aidl/default/noiseSuppression/Android.bp | 1 + audio/aidl/default/presetReverb/Android.bp | 1 + audio/aidl/default/spatializer/Android.bp | 1 + audio/aidl/default/virtualizer/Android.bp | 1 + audio/aidl/default/visualizer/Android.bp | 1 + audio/aidl/default/volume/Android.bp | 1 + audio/aidl/sounddose/vts/Android.bp | 1 + audio/aidl/vts/Android.bp | 1 + audio/common/2.0/Android.bp | 1 + audio/common/4.0/Android.bp | 1 + audio/common/5.0/Android.bp | 1 + audio/common/6.0/Android.bp | 1 + audio/common/7.0/Android.bp | 1 + audio/common/7.0/example/Android.bp | 1 + audio/common/7.1/Android.bp | 1 + audio/common/all-versions/default/Android.bp | 1 + audio/common/all-versions/default/service/Android.bp | 1 + audio/common/all-versions/test/utility/Android.bp | 1 + audio/common/all-versions/util/Android.bp | 1 + audio/core/all-versions/default/Android.bp | 1 + audio/core/all-versions/default/util/Android.bp | 1 + audio/core/all-versions/vts/functional/Android.bp | 1 + audio/effect/2.0/Android.bp | 1 + audio/effect/2.0/xml/Android.bp | 1 + audio/effect/4.0/Android.bp | 1 + audio/effect/4.0/xml/Android.bp | 1 + audio/effect/5.0/Android.bp | 1 + audio/effect/5.0/xml/Android.bp | 1 + audio/effect/6.0/Android.bp | 1 + audio/effect/6.0/xml/Android.bp | 1 + audio/effect/7.0/Android.bp | 1 + audio/effect/7.0/xml/Android.bp | 1 + audio/effect/all-versions/default/Android.bp | 1 + audio/effect/all-versions/default/util/Android.bp | 1 + audio/effect/all-versions/vts/functional/Android.bp | 1 + graphics/composer/2.1/Android.bp | 1 + graphics/composer/2.1/default/Android.bp | 1 + graphics/composer/2.1/utils/command-buffer/Android.bp | 1 + graphics/composer/2.1/utils/hal/Android.bp | 1 + graphics/composer/2.1/utils/hwc2on1adapter/Android.bp | 1 + graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp | 1 + graphics/composer/2.1/utils/passthrough/Android.bp | 1 + graphics/composer/2.1/utils/resources/Android.bp | 1 + graphics/composer/2.1/utils/vts/Android.bp | 1 + graphics/composer/2.1/vts/functional/Android.bp | 1 + graphics/composer/2.2/Android.bp | 1 + graphics/composer/2.2/utils/command-buffer/Android.bp | 1 + graphics/composer/2.2/utils/hal/Android.bp | 1 + graphics/composer/2.2/utils/passthrough/Android.bp | 1 + graphics/composer/2.2/utils/resources/Android.bp | 1 + graphics/composer/2.2/utils/vts/Android.bp | 1 + graphics/composer/2.2/vts/functional/Android.bp | 1 + graphics/composer/2.3/Android.bp | 1 + graphics/composer/2.3/default/Android.bp | 1 + graphics/composer/2.3/utils/command-buffer/Android.bp | 1 + graphics/composer/2.3/utils/hal/Android.bp | 1 + graphics/composer/2.3/utils/passthrough/Android.bp | 1 + graphics/composer/2.3/utils/vts/Android.bp | 1 + graphics/composer/2.3/vts/functional/Android.bp | 1 + graphics/composer/2.4/Android.bp | 1 + graphics/composer/2.4/default/Android.bp | 1 + graphics/composer/2.4/utils/command-buffer/Android.bp | 1 + graphics/composer/2.4/utils/hal/Android.bp | 1 + graphics/composer/2.4/utils/passthrough/Android.bp | 1 + graphics/composer/2.4/utils/vts/Android.bp | 1 + graphics/composer/2.4/vts/functional/Android.bp | 1 + graphics/composer/aidl/Android.bp | 1 + graphics/composer/aidl/vts/Android.bp | 1 + nfc/aidl/Android.bp | 3 ++- nfc/aidl/default/Android.bp | 1 + nfc/aidl/vts/functional/Android.bp | 1 + sensors/aidl/Android.bp | 1 + sensors/aidl/convert/Android.bp | 1 + sensors/aidl/default/Android.bp | 1 + sensors/aidl/default/multihal/Android.bp | 1 + sensors/aidl/multihal/Android.bp | 1 + sensors/aidl/vts/Android.bp | 1 + tv/hdmi/cec/aidl/Android.bp | 1 + tv/hdmi/cec/aidl/default/Android.bp | 1 + tv/hdmi/cec/aidl/vts/functional/Android.bp | 1 + tv/hdmi/connection/aidl/Android.bp | 1 + tv/hdmi/connection/aidl/default/Android.bp | 1 + tv/hdmi/connection/aidl/vts/functional/Android.bp | 1 + tv/hdmi/earc/aidl/Android.bp | 1 + tv/hdmi/earc/aidl/default/Android.bp | 1 + tv/hdmi/earc/aidl/vts/functional/Android.bp | 1 + tv/input/aidl/Android.bp | 1 + tv/input/aidl/default/Android.bp | 1 + tv/input/aidl/vts/functional/Android.bp | 1 + vibrator/aidl/Android.bp | 1 + vibrator/aidl/default/Android.bp | 1 + vibrator/aidl/default/apex/Android.bp | 1 + vibrator/aidl/default/example_java_client/Android.bp | 1 + vibrator/aidl/vts/Android.bp | 1 + 111 files changed, 112 insertions(+), 1 deletion(-) diff --git a/audio/aidl/Android.bp b/audio/aidl/Android.bp index 89d186c633..3963ce339d 100644 --- a/audio/aidl/Android.bp +++ b/audio/aidl/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/common/Android.bp b/audio/aidl/common/Android.bp index 85ece3b026..5c0c685bdf 100644 --- a/audio/aidl/common/Android.bp +++ b/audio/aidl/common/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp index fe386a2c80..8c6c537359 100644 --- a/audio/aidl/default/Android.bp +++ b/audio/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/acousticEchoCanceler/Android.bp b/audio/aidl/default/acousticEchoCanceler/Android.bp index d0404cd57b..46930e043a 100644 --- a/audio/aidl/default/acousticEchoCanceler/Android.bp +++ b/audio/aidl/default/acousticEchoCanceler/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp index da84412290..9c91e27220 100644 --- a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp +++ b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/automaticGainControlV1/Android.bp b/audio/aidl/default/automaticGainControlV1/Android.bp index 7b753ebed8..2fea71912b 100644 --- a/audio/aidl/default/automaticGainControlV1/Android.bp +++ b/audio/aidl/default/automaticGainControlV1/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/automaticGainControlV2/Android.bp b/audio/aidl/default/automaticGainControlV2/Android.bp index ea0515270e..dda4e51f0d 100644 --- a/audio/aidl/default/automaticGainControlV2/Android.bp +++ b/audio/aidl/default/automaticGainControlV2/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/bassboost/Android.bp b/audio/aidl/default/bassboost/Android.bp index 8f53eaed4b..42223b4296 100644 --- a/audio/aidl/default/bassboost/Android.bp +++ b/audio/aidl/default/bassboost/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/config/audioPolicy/Android.bp b/audio/aidl/default/config/audioPolicy/Android.bp index 6d8a14819d..baa3762297 100644 --- a/audio/aidl/default/config/audioPolicy/Android.bp +++ b/audio/aidl/default/config/audioPolicy/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/config/audioPolicy/engine/Android.bp b/audio/aidl/default/config/audioPolicy/engine/Android.bp index b2a73103c9..5d62bd6146 100644 --- a/audio/aidl/default/config/audioPolicy/engine/Android.bp +++ b/audio/aidl/default/config/audioPolicy/engine/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/downmix/Android.bp b/audio/aidl/default/downmix/Android.bp index 86572830d6..e5e8405f7b 100644 --- a/audio/aidl/default/downmix/Android.bp +++ b/audio/aidl/default/downmix/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/dynamicProcessing/Android.bp b/audio/aidl/default/dynamicProcessing/Android.bp index c0a648de5e..ccd1aa0823 100644 --- a/audio/aidl/default/dynamicProcessing/Android.bp +++ b/audio/aidl/default/dynamicProcessing/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/envReverb/Android.bp b/audio/aidl/default/envReverb/Android.bp index 23495f1cb2..70da2bdaf7 100644 --- a/audio/aidl/default/envReverb/Android.bp +++ b/audio/aidl/default/envReverb/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/equalizer/Android.bp b/audio/aidl/default/equalizer/Android.bp index 1d29d40b86..da2663c411 100644 --- a/audio/aidl/default/equalizer/Android.bp +++ b/audio/aidl/default/equalizer/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/extension/Android.bp b/audio/aidl/default/extension/Android.bp index 2b21e3e942..79fd857286 100644 --- a/audio/aidl/default/extension/Android.bp +++ b/audio/aidl/default/extension/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/hapticGenerator/Android.bp b/audio/aidl/default/hapticGenerator/Android.bp index 8fb9a3dbbd..fdd4fc75c9 100644 --- a/audio/aidl/default/hapticGenerator/Android.bp +++ b/audio/aidl/default/hapticGenerator/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/loudnessEnhancer/Android.bp b/audio/aidl/default/loudnessEnhancer/Android.bp index cd44b50206..4b3048488a 100644 --- a/audio/aidl/default/loudnessEnhancer/Android.bp +++ b/audio/aidl/default/loudnessEnhancer/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/noiseSuppression/Android.bp b/audio/aidl/default/noiseSuppression/Android.bp index 5729571318..66fe4271c5 100644 --- a/audio/aidl/default/noiseSuppression/Android.bp +++ b/audio/aidl/default/noiseSuppression/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/presetReverb/Android.bp b/audio/aidl/default/presetReverb/Android.bp index 2a2ae758bf..15b463258d 100644 --- a/audio/aidl/default/presetReverb/Android.bp +++ b/audio/aidl/default/presetReverb/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/spatializer/Android.bp b/audio/aidl/default/spatializer/Android.bp index 05ed365c01..400629eb9b 100644 --- a/audio/aidl/default/spatializer/Android.bp +++ b/audio/aidl/default/spatializer/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/virtualizer/Android.bp b/audio/aidl/default/virtualizer/Android.bp index 5d59f7c37f..91d2abb703 100644 --- a/audio/aidl/default/virtualizer/Android.bp +++ b/audio/aidl/default/virtualizer/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/visualizer/Android.bp b/audio/aidl/default/visualizer/Android.bp index 68f71777de..af8f57456e 100644 --- a/audio/aidl/default/visualizer/Android.bp +++ b/audio/aidl/default/visualizer/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/default/volume/Android.bp b/audio/aidl/default/volume/Android.bp index 8d5401a21f..a424f7ea93 100644 --- a/audio/aidl/default/volume/Android.bp +++ b/audio/aidl/default/volume/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/sounddose/vts/Android.bp b/audio/aidl/sounddose/vts/Android.bp index 88be968f27..b852287ef6 100644 --- a/audio/aidl/sounddose/vts/Android.bp +++ b/audio/aidl/sounddose/vts/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/vts/Android.bp b/audio/aidl/vts/Android.bp index 85319ec1b0..636e758670 100644 --- a/audio/aidl/vts/Android.bp +++ b/audio/aidl/vts/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/2.0/Android.bp b/audio/common/2.0/Android.bp index f27eb9381d..450e04f38d 100644 --- a/audio/common/2.0/Android.bp +++ b/audio/common/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/4.0/Android.bp b/audio/common/4.0/Android.bp index ea88b06f3d..8a0fe72656 100644 --- a/audio/common/4.0/Android.bp +++ b/audio/common/4.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/5.0/Android.bp b/audio/common/5.0/Android.bp index a6bb331cb0..02f66a341c 100644 --- a/audio/common/5.0/Android.bp +++ b/audio/common/5.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/6.0/Android.bp b/audio/common/6.0/Android.bp index 91721fc7e9..fd4a1f5caa 100644 --- a/audio/common/6.0/Android.bp +++ b/audio/common/6.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/7.0/Android.bp b/audio/common/7.0/Android.bp index 2f7665e502..5ef59ad04b 100644 --- a/audio/common/7.0/Android.bp +++ b/audio/common/7.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/7.0/example/Android.bp b/audio/common/7.0/example/Android.bp index a85e4faae8..1d546977bc 100644 --- a/audio/common/7.0/example/Android.bp +++ b/audio/common/7.0/example/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/7.1/Android.bp b/audio/common/7.1/Android.bp index a2575104e6..57ce2d7a6f 100644 --- a/audio/common/7.1/Android.bp +++ b/audio/common/7.1/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/all-versions/default/Android.bp b/audio/common/all-versions/default/Android.bp index 95436748ee..2fcc3c4d77 100644 --- a/audio/common/all-versions/default/Android.bp +++ b/audio/common/all-versions/default/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/all-versions/default/service/Android.bp b/audio/common/all-versions/default/service/Android.bp index d513062c25..e2e0a93798 100644 --- a/audio/common/all-versions/default/service/Android.bp +++ b/audio/common/all-versions/default/service/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/all-versions/test/utility/Android.bp b/audio/common/all-versions/test/utility/Android.bp index c6a3963cb0..7fd368873d 100644 --- a/audio/common/all-versions/test/utility/Android.bp +++ b/audio/common/all-versions/test/utility/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/all-versions/util/Android.bp b/audio/common/all-versions/util/Android.bp index 91de6ecbff..f9ada08bb3 100644 --- a/audio/common/all-versions/util/Android.bp +++ b/audio/common/all-versions/util/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/core/all-versions/default/Android.bp b/audio/core/all-versions/default/Android.bp index 3536561fd3..c55eef4546 100644 --- a/audio/core/all-versions/default/Android.bp +++ b/audio/core/all-versions/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/core/all-versions/default/util/Android.bp b/audio/core/all-versions/default/util/Android.bp index b96f2d2b87..08ddb5930f 100644 --- a/audio/core/all-versions/default/util/Android.bp +++ b/audio/core/all-versions/default/util/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/core/all-versions/vts/functional/Android.bp b/audio/core/all-versions/vts/functional/Android.bp index 9d93bb0fff..9e398e4ccb 100644 --- a/audio/core/all-versions/vts/functional/Android.bp +++ b/audio/core/all-versions/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/2.0/Android.bp b/audio/effect/2.0/Android.bp index f2f512433b..c236c1692e 100644 --- a/audio/effect/2.0/Android.bp +++ b/audio/effect/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/2.0/xml/Android.bp b/audio/effect/2.0/xml/Android.bp index d015639e5d..cddcfe9544 100644 --- a/audio/effect/2.0/xml/Android.bp +++ b/audio/effect/2.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/4.0/Android.bp b/audio/effect/4.0/Android.bp index 1eb754a922..cae91c1f43 100644 --- a/audio/effect/4.0/Android.bp +++ b/audio/effect/4.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/4.0/xml/Android.bp b/audio/effect/4.0/xml/Android.bp index bdffe6065b..a45eecc049 100644 --- a/audio/effect/4.0/xml/Android.bp +++ b/audio/effect/4.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/5.0/Android.bp b/audio/effect/5.0/Android.bp index 126964c9b5..ef3a28b538 100644 --- a/audio/effect/5.0/Android.bp +++ b/audio/effect/5.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/5.0/xml/Android.bp b/audio/effect/5.0/xml/Android.bp index ed12e38b5c..7a0b9584c2 100644 --- a/audio/effect/5.0/xml/Android.bp +++ b/audio/effect/5.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/6.0/Android.bp b/audio/effect/6.0/Android.bp index 8d15d0942f..8c52ebc206 100644 --- a/audio/effect/6.0/Android.bp +++ b/audio/effect/6.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/6.0/xml/Android.bp b/audio/effect/6.0/xml/Android.bp index f139341e94..9e1533c2ac 100644 --- a/audio/effect/6.0/xml/Android.bp +++ b/audio/effect/6.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/7.0/Android.bp b/audio/effect/7.0/Android.bp index 7399cdbddd..248655edfa 100644 --- a/audio/effect/7.0/Android.bp +++ b/audio/effect/7.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/7.0/xml/Android.bp b/audio/effect/7.0/xml/Android.bp index 978e4341e2..82ed18b39e 100644 --- a/audio/effect/7.0/xml/Android.bp +++ b/audio/effect/7.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/all-versions/default/Android.bp b/audio/effect/all-versions/default/Android.bp index a3c3ed6882..cea085cc69 100644 --- a/audio/effect/all-versions/default/Android.bp +++ b/audio/effect/all-versions/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/all-versions/default/util/Android.bp b/audio/effect/all-versions/default/util/Android.bp index 143094d604..53dd9ac941 100644 --- a/audio/effect/all-versions/default/util/Android.bp +++ b/audio/effect/all-versions/default/util/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/all-versions/vts/functional/Android.bp b/audio/effect/all-versions/vts/functional/Android.bp index 3b15ed4658..4c07aad5ed 100644 --- a/audio/effect/all-versions/vts/functional/Android.bp +++ b/audio/effect/all-versions/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/Android.bp b/graphics/composer/2.1/Android.bp index 2e41208663..3c3575d6ab 100644 --- a/graphics/composer/2.1/Android.bp +++ b/graphics/composer/2.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/default/Android.bp b/graphics/composer/2.1/default/Android.bp index 96fea4e6cd..91d9b0d4db 100644 --- a/graphics/composer/2.1/default/Android.bp +++ b/graphics/composer/2.1/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/command-buffer/Android.bp b/graphics/composer/2.1/utils/command-buffer/Android.bp index 07dea31736..224cea5b7e 100644 --- a/graphics/composer/2.1/utils/command-buffer/Android.bp +++ b/graphics/composer/2.1/utils/command-buffer/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/hal/Android.bp b/graphics/composer/2.1/utils/hal/Android.bp index 874be84f4d..9622c588c2 100644 --- a/graphics/composer/2.1/utils/hal/Android.bp +++ b/graphics/composer/2.1/utils/hal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/hwc2on1adapter/Android.bp b/graphics/composer/2.1/utils/hwc2on1adapter/Android.bp index 3527cca07f..fd002975bb 100644 --- a/graphics/composer/2.1/utils/hwc2on1adapter/Android.bp +++ b/graphics/composer/2.1/utils/hwc2on1adapter/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp b/graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp index d613ba9112..ecf6201e2f 100644 --- a/graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp +++ b/graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/passthrough/Android.bp b/graphics/composer/2.1/utils/passthrough/Android.bp index 67f516399c..7bc32c06b7 100644 --- a/graphics/composer/2.1/utils/passthrough/Android.bp +++ b/graphics/composer/2.1/utils/passthrough/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/resources/Android.bp b/graphics/composer/2.1/utils/resources/Android.bp index 9eb23fa82e..8705dee3aa 100644 --- a/graphics/composer/2.1/utils/resources/Android.bp +++ b/graphics/composer/2.1/utils/resources/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/vts/Android.bp b/graphics/composer/2.1/utils/vts/Android.bp index 7b6a0e6367..c457df2011 100644 --- a/graphics/composer/2.1/utils/vts/Android.bp +++ b/graphics/composer/2.1/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/vts/functional/Android.bp b/graphics/composer/2.1/vts/functional/Android.bp index 0f6d7e8eba..62dfda3033 100644 --- a/graphics/composer/2.1/vts/functional/Android.bp +++ b/graphics/composer/2.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/Android.bp b/graphics/composer/2.2/Android.bp index e44a236ba9..1f28ea30aa 100644 --- a/graphics/composer/2.2/Android.bp +++ b/graphics/composer/2.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/command-buffer/Android.bp b/graphics/composer/2.2/utils/command-buffer/Android.bp index d55145e48c..eae2242e17 100644 --- a/graphics/composer/2.2/utils/command-buffer/Android.bp +++ b/graphics/composer/2.2/utils/command-buffer/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/hal/Android.bp b/graphics/composer/2.2/utils/hal/Android.bp index 4e028e034e..9194aa12f5 100644 --- a/graphics/composer/2.2/utils/hal/Android.bp +++ b/graphics/composer/2.2/utils/hal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/passthrough/Android.bp b/graphics/composer/2.2/utils/passthrough/Android.bp index b7003446e7..10e0b73fbd 100644 --- a/graphics/composer/2.2/utils/passthrough/Android.bp +++ b/graphics/composer/2.2/utils/passthrough/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/resources/Android.bp b/graphics/composer/2.2/utils/resources/Android.bp index 9e45ef2bc4..d1bf8c5c86 100644 --- a/graphics/composer/2.2/utils/resources/Android.bp +++ b/graphics/composer/2.2/utils/resources/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/vts/Android.bp b/graphics/composer/2.2/utils/vts/Android.bp index d11592f512..6647bf3052 100644 --- a/graphics/composer/2.2/utils/vts/Android.bp +++ b/graphics/composer/2.2/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/vts/functional/Android.bp b/graphics/composer/2.2/vts/functional/Android.bp index 34763766da..fc89763dfa 100644 --- a/graphics/composer/2.2/vts/functional/Android.bp +++ b/graphics/composer/2.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/Android.bp b/graphics/composer/2.3/Android.bp index 3c52b6f0d5..47a09657cf 100644 --- a/graphics/composer/2.3/Android.bp +++ b/graphics/composer/2.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/default/Android.bp b/graphics/composer/2.3/default/Android.bp index f801fbadfa..bffe632725 100644 --- a/graphics/composer/2.3/default/Android.bp +++ b/graphics/composer/2.3/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/utils/command-buffer/Android.bp b/graphics/composer/2.3/utils/command-buffer/Android.bp index ca7d136edc..16945093b4 100644 --- a/graphics/composer/2.3/utils/command-buffer/Android.bp +++ b/graphics/composer/2.3/utils/command-buffer/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/utils/hal/Android.bp b/graphics/composer/2.3/utils/hal/Android.bp index b475757658..eb854c3fb9 100644 --- a/graphics/composer/2.3/utils/hal/Android.bp +++ b/graphics/composer/2.3/utils/hal/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/utils/passthrough/Android.bp b/graphics/composer/2.3/utils/passthrough/Android.bp index 68b706cdc1..7bf54e5838 100644 --- a/graphics/composer/2.3/utils/passthrough/Android.bp +++ b/graphics/composer/2.3/utils/passthrough/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/utils/vts/Android.bp b/graphics/composer/2.3/utils/vts/Android.bp index b372804341..dd56633670 100644 --- a/graphics/composer/2.3/utils/vts/Android.bp +++ b/graphics/composer/2.3/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/vts/functional/Android.bp b/graphics/composer/2.3/vts/functional/Android.bp index 13f2b113ab..e0c1d4ec52 100644 --- a/graphics/composer/2.3/vts/functional/Android.bp +++ b/graphics/composer/2.3/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/Android.bp b/graphics/composer/2.4/Android.bp index e6b238ba9f..748faf6f7f 100644 --- a/graphics/composer/2.4/Android.bp +++ b/graphics/composer/2.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/default/Android.bp b/graphics/composer/2.4/default/Android.bp index 7a91ec1f11..a9b6d4e91f 100644 --- a/graphics/composer/2.4/default/Android.bp +++ b/graphics/composer/2.4/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/utils/command-buffer/Android.bp b/graphics/composer/2.4/utils/command-buffer/Android.bp index c966fc4171..608b004139 100644 --- a/graphics/composer/2.4/utils/command-buffer/Android.bp +++ b/graphics/composer/2.4/utils/command-buffer/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/utils/hal/Android.bp b/graphics/composer/2.4/utils/hal/Android.bp index abf8e0450b..c90a79d987 100644 --- a/graphics/composer/2.4/utils/hal/Android.bp +++ b/graphics/composer/2.4/utils/hal/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/utils/passthrough/Android.bp b/graphics/composer/2.4/utils/passthrough/Android.bp index a851c0a081..867f8cbffb 100644 --- a/graphics/composer/2.4/utils/passthrough/Android.bp +++ b/graphics/composer/2.4/utils/passthrough/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/utils/vts/Android.bp b/graphics/composer/2.4/utils/vts/Android.bp index d2b2ffab9a..3a80c9a443 100644 --- a/graphics/composer/2.4/utils/vts/Android.bp +++ b/graphics/composer/2.4/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/vts/functional/Android.bp b/graphics/composer/2.4/vts/functional/Android.bp index b4ab259dd6..637482da15 100644 --- a/graphics/composer/2.4/vts/functional/Android.bp +++ b/graphics/composer/2.4/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/aidl/Android.bp b/graphics/composer/aidl/Android.bp index 40448ec43e..5e4c23e0f1 100644 --- a/graphics/composer/aidl/Android.bp +++ b/graphics/composer/aidl/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/aidl/vts/Android.bp b/graphics/composer/aidl/vts/Android.bp index 60360fd596..5bae7b5375 100644 --- a/graphics/composer/aidl/vts/Android.bp +++ b/graphics/composer/aidl/vts/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/nfc/aidl/Android.bp b/nfc/aidl/Android.bp index dae9f29a11..ae68f17cdc 100644 --- a/nfc/aidl/Android.bp +++ b/nfc/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -34,7 +35,7 @@ aidl_interface { sdk_version: "module_current", enabled: false, }, - ndk: { + ndk: { enabled: true, apex_available: [ "//apex_available:platform", diff --git a/nfc/aidl/default/Android.bp b/nfc/aidl/default/Android.bp index 6daebe5697..0cda51ddb7 100644 --- a/nfc/aidl/default/Android.bp +++ b/nfc/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/nfc/aidl/vts/functional/Android.bp b/nfc/aidl/vts/functional/Android.bp index 99eecd060d..0dab2d804f 100644 --- a/nfc/aidl/vts/functional/Android.bp +++ b/nfc/aidl/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/Android.bp b/sensors/aidl/Android.bp index 3914ec1f7b..8877e6eaa3 100644 --- a/sensors/aidl/Android.bp +++ b/sensors/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/convert/Android.bp b/sensors/aidl/convert/Android.bp index 53060b958a..7217b2fb38 100644 --- a/sensors/aidl/convert/Android.bp +++ b/sensors/aidl/convert/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/default/Android.bp b/sensors/aidl/default/Android.bp index e93c391cf4..6f011eefeb 100644 --- a/sensors/aidl/default/Android.bp +++ b/sensors/aidl/default/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/default/multihal/Android.bp b/sensors/aidl/default/multihal/Android.bp index 40cb2d90a7..7482ffe7b5 100644 --- a/sensors/aidl/default/multihal/Android.bp +++ b/sensors/aidl/default/multihal/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/multihal/Android.bp b/sensors/aidl/multihal/Android.bp index 522d305d86..cac5fc27c8 100644 --- a/sensors/aidl/multihal/Android.bp +++ b/sensors/aidl/multihal/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/vts/Android.bp b/sensors/aidl/vts/Android.bp index c17a5585fd..1f96bb438e 100644 --- a/sensors/aidl/vts/Android.bp +++ b/sensors/aidl/vts/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/hdmi/cec/aidl/Android.bp b/tv/hdmi/cec/aidl/Android.bp index 53cb5a9246..11d3af2bd4 100644 --- a/tv/hdmi/cec/aidl/Android.bp +++ b/tv/hdmi/cec/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/cec/aidl/default/Android.bp b/tv/hdmi/cec/aidl/default/Android.bp index ea4bb94687..71efb09289 100644 --- a/tv/hdmi/cec/aidl/default/Android.bp +++ b/tv/hdmi/cec/aidl/default/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/cec/aidl/vts/functional/Android.bp b/tv/hdmi/cec/aidl/vts/functional/Android.bp index 5c86d3f6e2..32ad7c66a5 100644 --- a/tv/hdmi/cec/aidl/vts/functional/Android.bp +++ b/tv/hdmi/cec/aidl/vts/functional/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/connection/aidl/Android.bp b/tv/hdmi/connection/aidl/Android.bp index ff7e166b9e..552b52c751 100644 --- a/tv/hdmi/connection/aidl/Android.bp +++ b/tv/hdmi/connection/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/connection/aidl/default/Android.bp b/tv/hdmi/connection/aidl/default/Android.bp index 5e7e3302e1..926ff42835 100644 --- a/tv/hdmi/connection/aidl/default/Android.bp +++ b/tv/hdmi/connection/aidl/default/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/connection/aidl/vts/functional/Android.bp b/tv/hdmi/connection/aidl/vts/functional/Android.bp index fc8e2f7e34..3b74e06bbe 100644 --- a/tv/hdmi/connection/aidl/vts/functional/Android.bp +++ b/tv/hdmi/connection/aidl/vts/functional/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/earc/aidl/Android.bp b/tv/hdmi/earc/aidl/Android.bp index d08e46d9a3..7e88b277b0 100644 --- a/tv/hdmi/earc/aidl/Android.bp +++ b/tv/hdmi/earc/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/earc/aidl/default/Android.bp b/tv/hdmi/earc/aidl/default/Android.bp index 5d56c2a2b9..55337d7daa 100644 --- a/tv/hdmi/earc/aidl/default/Android.bp +++ b/tv/hdmi/earc/aidl/default/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/earc/aidl/vts/functional/Android.bp b/tv/hdmi/earc/aidl/vts/functional/Android.bp index 36fbf56957..b33ad8e05e 100644 --- a/tv/hdmi/earc/aidl/vts/functional/Android.bp +++ b/tv/hdmi/earc/aidl/vts/functional/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/input/aidl/Android.bp b/tv/input/aidl/Android.bp index 35f510a162..5543901a92 100644 --- a/tv/input/aidl/Android.bp +++ b/tv/input/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/input/aidl/default/Android.bp b/tv/input/aidl/default/Android.bp index 05af6a94fb..67015fb820 100644 --- a/tv/input/aidl/default/Android.bp +++ b/tv/input/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/input/aidl/vts/functional/Android.bp b/tv/input/aidl/vts/functional/Android.bp index 22487eafb1..ccbce7d816 100644 --- a/tv/input/aidl/vts/functional/Android.bp +++ b/tv/input/aidl/vts/functional/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/aidl/Android.bp b/vibrator/aidl/Android.bp index c5936e3931..b5199e248b 100644 --- a/vibrator/aidl/Android.bp +++ b/vibrator/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/aidl/default/Android.bp b/vibrator/aidl/default/Android.bp index fb71a82ab1..0f342db10e 100644 --- a/vibrator/aidl/default/Android.bp +++ b/vibrator/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/aidl/default/apex/Android.bp b/vibrator/aidl/default/apex/Android.bp index 39626bfc71..b694e1f1a6 100644 --- a/vibrator/aidl/default/apex/Android.bp +++ b/vibrator/aidl/default/apex/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/vibrator/aidl/default/example_java_client/Android.bp b/vibrator/aidl/default/example_java_client/Android.bp index 17a649cd1d..5f1e27a5ea 100644 --- a/vibrator/aidl/default/example_java_client/Android.bp +++ b/vibrator/aidl/default/example_java_client/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/aidl/vts/Android.bp b/vibrator/aidl/vts/Android.bp index 12618707ca..b6d2fb27da 100644 --- a/vibrator/aidl/vts/Android.bp +++ b/vibrator/aidl/vts/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" -- GitLab From 046deb919b59739d37dd19299455befe589b7297 Mon Sep 17 00:00:00 2001 From: yomna Date: Wed, 31 Jan 2024 03:19:51 +0000 Subject: [PATCH 298/418] Update VtsHalRadioTargetTest: null cipher disablement APIs are optional Mark isNullCipherAndIntegrityEnabled and setNullCipherAndIntegrityEnabled as optional. Bug: b/307361090 Test: m & atest VtsHalRadioTargetTest Change-Id: I74a05b068d415cefbd87cdc53e3cc099529ad04a --- radio/aidl/vts/radio_network_test.cpp | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/radio/aidl/vts/radio_network_test.cpp b/radio/aidl/vts/radio_network_test.cpp index 867be04e85..d95de0d6d3 100644 --- a/radio/aidl/vts/radio_network_test.cpp +++ b/radio/aidl/vts/radio_network_test.cpp @@ -2375,16 +2375,9 @@ TEST_P(RadioNetworkTest, setNullCipherAndIntegrityEnabled) { EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type); EXPECT_EQ(serial, radioRsp_network->rspInfo.serial); - if (aidl_version >= 3 && deviceSupportsFeature(FEATURE_TELEPHONY_RADIO_ACCESS)) { - ASSERT_TRUE(CheckAnyOfErrors( - radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::MODEM_ERR})); - } else { - // For aidl_version 2, API is optional - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, - RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); - } + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, + {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, + RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); } /** @@ -2416,16 +2409,9 @@ TEST_P(RadioNetworkTest, isNullCipherAndIntegrityEnabled) { EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type); EXPECT_EQ(serial, radioRsp_network->rspInfo.serial); - if (aidl_version >= 3 && deviceSupportsFeature(FEATURE_TELEPHONY_RADIO_ACCESS)) { - ASSERT_TRUE(CheckAnyOfErrors( - radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::MODEM_ERR})); - } else { - // For aidl_version 2, API is optional - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, - RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); - } + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, + {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, + RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); } TEST_P(RadioNetworkTest, isCellularIdentifierTransparencyEnabled) { -- GitLab From 6847115a005833c62331d77f7791ab9667aac493 Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Fri, 26 Jan 2024 00:27:29 +0000 Subject: [PATCH 299/418] Camera VTS: Test only CROPPED_RAW use case for RAW_SENSOR streams There are no mandatory stream combinations for RAW_SENSOR streams that do not involve the CROPPED_RAW stream use case. So we don't need to test stream non CROPPED_RAW stream use cases with the RAW_SENSOR format, since we don't have a definite answer to whether they will be supported or not. Bug: 317773720 Test: Camera VTS on cf Test: Vendor testing Change-Id: I0870e90ae68a5e35196f0ba0afaa6b8bf7fbfbd8 Signed-off-by: Jayant Chowdhary --- camera/provider/aidl/vts/camera_aidl_test.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index eef9362037..a3262cc975 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -2394,18 +2394,20 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres ASSERT_NE(0u, outputPreviewStreams.size()); // Combine valid and invalid stream use cases - std::vector useCases(kMandatoryUseCases); - useCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW + 1); + std::vector testedUseCases; + testedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW + 1); std::vector supportedUseCases; if (threshold.format == static_cast(PixelFormat::RAW16)) { // If the format is RAW16, supported use case is only CROPPED_RAW. // All others are unsupported for this format. - useCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); + testedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT); } else { camera_metadata_ro_entry entry; + testedUseCases.insert(testedUseCases.end(), kMandatoryUseCases.begin(), + kMandatoryUseCases.end()); auto retcode = find_camera_metadata_ro_entry( staticMeta, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry); if ((0 == retcode) && (entry.count > 0)) { @@ -2446,7 +2448,7 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres ASSERT_TRUE(ret.isOk()); config.sessionParams = req; - for (int64_t useCase : useCases) { + for (int64_t useCase : testedUseCases) { bool useCaseSupported = std::find(supportedUseCases.begin(), supportedUseCases.end(), useCase) != supportedUseCases.end(); -- GitLab From 89a6bb71996cab0208fc5c9d074c2fd1243ba2be Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 31 Jan 2024 13:55:08 -0800 Subject: [PATCH 300/418] audio: Add tracing to audio I/O and effect processing Emit trace events for audio reads and writes and effect processing functions. This is to match the HIDL implementation. Bug: 321233946 Test: `record_android_trace` with `audio` category enabled Change-Id: I26907b09243fd3e5aaa470a0fb930b34addd3093 --- audio/aidl/default/EffectImpl.cpp | 3 +++ audio/aidl/default/Stream.cpp | 8 +++++--- audio/aidl/default/bluetooth/StreamBluetooth.cpp | 14 ++++++-------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp index c29bf79945..c97a03e8a3 100644 --- a/audio/aidl/default/EffectImpl.cpp +++ b/audio/aidl/default/EffectImpl.cpp @@ -15,7 +15,9 @@ */ #include +#define ATRACE_TAG ATRACE_TAG_AUDIO #define LOG_TAG "AHAL_EffectImpl" +#include #include "effect-impl/EffectImpl.h" #include "effect-impl/EffectTypes.h" #include "include/effect-impl/EffectTypes.h" @@ -298,6 +300,7 @@ IEffect::Status EffectImpl::status(binder_status_t status, size_t consumed, size } void EffectImpl::process() { + ATRACE_CALL(); /** * wait for the EventFlag without lock, it's ok because the mEfGroup pointer will not change * in the life cycle of workerThread (threadLoop). diff --git a/audio/aidl/default/Stream.cpp b/audio/aidl/default/Stream.cpp index cf0870e2d4..807348fad7 100644 --- a/audio/aidl/default/Stream.cpp +++ b/audio/aidl/default/Stream.cpp @@ -16,14 +16,14 @@ #include +#define ATRACE_TAG ATRACE_TAG_AUDIO #define LOG_TAG "AHAL_Stream" +#include #include #include #include +#include -#include - -#include "core-impl/Module.h" #include "core-impl/Stream.h" using aidl::android::hardware::audio::common::AudioOffloadMetadata; @@ -312,6 +312,7 @@ StreamInWorkerLogic::Status StreamInWorkerLogic::cycle() { } bool StreamInWorkerLogic::read(size_t clientSize, StreamDescriptor::Reply* reply) { + ATRACE_CALL(); StreamContext::DataMQ* const dataMQ = mContext->getDataMQ(); const size_t byteCount = std::min({clientSize, dataMQ->availableToWrite(), mDataBufferSize}); const bool isConnected = mIsConnected; @@ -583,6 +584,7 @@ StreamOutWorkerLogic::Status StreamOutWorkerLogic::cycle() { } bool StreamOutWorkerLogic::write(size_t clientSize, StreamDescriptor::Reply* reply) { + ATRACE_CALL(); StreamContext::DataMQ* const dataMQ = mContext->getDataMQ(); const size_t readByteCount = dataMQ->availableToRead(); const size_t frameSize = mContext->getFrameSize(); diff --git a/audio/aidl/default/bluetooth/StreamBluetooth.cpp b/audio/aidl/default/bluetooth/StreamBluetooth.cpp index a73af1b6b4..77e48df26e 100644 --- a/audio/aidl/default/bluetooth/StreamBluetooth.cpp +++ b/audio/aidl/default/bluetooth/StreamBluetooth.cpp @@ -16,12 +16,13 @@ #include +#define ATRACE_TAG ATRACE_TAG_AUDIO #define LOG_TAG "AHAL_StreamBluetooth" #include #include #include +#include -#include "BluetoothAudioSession.h" #include "core-impl/StreamBluetooth.h" using aidl::android::hardware::audio::common::frameCountFromDurationUs; @@ -109,13 +110,10 @@ StreamBluetooth::StreamBluetooth(StreamContext* context, const Metadata& metadat } const size_t fc = std::min(frameCount, mPreferredFrameCount); const size_t bytesToTransfer = fc * mFrameSizeBytes; - if (mIsInput) { - const size_t totalRead = mBtDeviceProxy->readData(buffer, bytesToTransfer); - *actualFrameCount = std::max(*actualFrameCount, totalRead / mFrameSizeBytes); - } else { - const size_t totalWrite = mBtDeviceProxy->writeData(buffer, bytesToTransfer); - *actualFrameCount = std::max(*actualFrameCount, totalWrite / mFrameSizeBytes); - } + const size_t bytesTransferred = mIsInput ? mBtDeviceProxy->readData(buffer, bytesToTransfer) + : mBtDeviceProxy->writeData(buffer, bytesToTransfer); + *actualFrameCount = bytesTransferred / mFrameSizeBytes; + ATRACE_INT("BTdropped", bytesToTransfer - bytesTransferred); PresentationPosition presentation_position; if (!mBtDeviceProxy->getPresentationPosition(presentation_position)) { presentation_position.remoteDeviceAudioDelayNanos = -- GitLab From 493a0cddb39a2cba392f5969be44e2b96a7f6ee2 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 4 Jan 2024 14:46:58 -0800 Subject: [PATCH 301/418] Create EmuMetadataGenerator to check meta.json. Create EmuMetadataGenerator to convert AIDL generated java files to meta.json that can be used by emulator to populate the available vhal props list. Added build rules to generate the Java files from AIDL files and check whether the meta.json file needs to be updated. Test: make sdk_car_x86_64-trunk_staging-userdebug target Bug: 318747444 Change-Id: Ib3bc7b68a1312152617fdab4598ed389447c20cd --- .../vehicle/aidl/emu_metadata/Android.bp | 26 + ...ardware.automotive.vehicle-types-meta.json | 7498 +++++++---------- .../generate_emulator_metadata.py | 136 - automotive/vehicle/aidl/impl/vhal/Android.bp | 4 + automotive/vehicle/aidl_property/Android.bp | 6 + .../tools/generate_emu_metadata/Android.bp | 60 + .../tools/generate_emu_metadata/manifest.txt | 1 + .../car/tool/EmuMetadataGenerator.java | 403 + 8 files changed, 3397 insertions(+), 4737 deletions(-) create mode 100644 automotive/vehicle/aidl/emu_metadata/Android.bp delete mode 100755 automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py create mode 100644 automotive/vehicle/tools/generate_emu_metadata/Android.bp create mode 100644 automotive/vehicle/tools/generate_emu_metadata/manifest.txt create mode 100644 automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java diff --git a/automotive/vehicle/aidl/emu_metadata/Android.bp b/automotive/vehicle/aidl/emu_metadata/Android.bp new file mode 100644 index 0000000000..64f895fefd --- /dev/null +++ b/automotive/vehicle/aidl/emu_metadata/Android.bp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +filegroup { + name: "android.hardware.automotive.vehicle-types-meta", + srcs: [ + "android.hardware.automotive.vehicle-types-meta.json", + ], +} diff --git a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json index 6d856a8d60..c00e64cc74 100644 --- a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json +++ b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json @@ -1,4603 +1,2899 @@ [ - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleOilLevel", - "values": [ - { - "name": "CRITICALLY_LOW", - "value": 0 - }, - { - "name": "LOW", - "value": 1 - }, - { - "name": "NORMAL", - "value": 2 - }, - { - "name": "HIGH", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LocationCharacterization", - "values": [ - { - "name": "PRIOR_LOCATIONS", - "value": 1 - }, - { - "name": "GYROSCOPE_FUSION", - "value": 2 - }, - { - "name": "ACCELEROMETER_FUSION", - "value": 4 - }, - { - "name": "COMPASS_FUSION", - "value": 8 - }, - { - "name": "WHEEL_SPEED_FUSION", - "value": 16 - }, - { - "name": "STEERING_ANGLE_FUSION", - "value": 32 - }, - { - "name": "CAR_SPEED_FUSION", - "value": 64 - }, - { - "name": "DEAD_RECKONED", - "value": 128 - }, - { - "name": "RAW_GNSS_ONLY", - "value": 256 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleDisplay", - "values": [ - { - "name": "MAIN", - "value": 0 - }, - { - "name": "INSTRUMENT_CLUSTER", - "value": 1 - }, - { - "name": "HUD", - "value": 2 - }, - { - "name": "INPUT", - "value": 3 - }, - { - "name": "AUXILIARY", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED", - "value": 2 - }, - { - "name": "USER_OVERRIDE", - "value": 3 - }, - { - "name": "SUSPENDED", - "value": 4 - }, - { - "name": "FORCED_DEACTIVATION_WARNING", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "HandsOnDetectionWarning", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaWindow", - "values": [ - { - "name": "FRONT_WINDSHIELD", - "value": 1 - }, - { - "name": "REAR_WINDSHIELD", - "value": 2 - }, - { - "name": "ROW_1_LEFT", - "value": 16 - }, - { - "name": "ROW_1_RIGHT", - "value": 64 - }, - { - "name": "ROW_2_LEFT", - "value": 256 - }, - { - "name": "ROW_2_RIGHT", - "value": 1024 - }, - { - "name": "ROW_3_LEFT", - "value": 4096 - }, - { - "name": "ROW_3_RIGHT", - "value": 16384 - }, - { - "name": "ROOF_TOP_1", - "value": 65536 - }, - { - "name": "ROOF_TOP_2", - "value": 131072 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsAvailabilityStateIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SEQUENCE_NUMBER", - "value": 1 - }, - { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", - "value": 2 - }, - { - "name": "LAYERS_START", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleLightSwitch", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - }, - { - "name": "DAYTIME_RUNNING", - "value": 2 - }, - { - "name": "AUTOMATIC", - "value": 256 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2IgnitionMonitorKind", - "values": [ - { - "name": "SPARK", - "value": 0 - }, - { - "name": "COMPRESSION", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionButtonStateFlag", - "values": [ - { - "name": "BUTTON_PRIMARY", - "value": 1 - }, - { - "name": "BUTTON_SECONDARY", - "value": 2 - }, - { - "name": "BUTTON_TERTIARY", - "value": 4 - }, - { - "name": "BUTTON_BACK", - "value": 8 - }, - { - "name": "BUTTON_FORWARD", - "value": 16 - }, - { - "name": "BUTTON_STYLUS_PRIMARY", - "value": 32 - }, - { - "name": "BUTTON_STYLUS_SECONDARY", - "value": 64 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehiclePropertyType", - "values": [ - { - "name": "STRING", - "value": 1048576 - }, - { - "name": "BOOLEAN", - "value": 2097152 - }, - { - "name": "INT32", - "value": 4194304 - }, - { - "name": "INT32_VEC", - "value": 4259840 - }, - { - "name": "INT64", - "value": 5242880 - }, - { - "name": "INT64_VEC", - "value": 5308416 - }, - { - "name": "FLOAT", - "value": 6291456 - }, - { - "name": "FLOAT_VEC", - "value": 6356992 - }, - { - "name": "BYTES", - "value": 7340032 - }, - { - "name": "MIXED", - "value": 14680064 - }, - { - "name": "MASK", - "value": 16711680 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaDoor", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 - }, - { - "name": "ROW_1_RIGHT", - "value": 4 - }, - { - "name": "ROW_2_LEFT", - "value": 16 - }, - { - "name": "ROW_2_RIGHT", - "value": 64 - }, - { - "name": "ROW_3_LEFT", - "value": 256 - }, - { - "name": "ROW_3_RIGHT", - "value": 1024 - }, - { - "name": "HOOD", - "value": 268435456 - }, - { - "name": "REAR", - "value": 536870912 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerBootupReason", - "values": [ - { - "name": "USER_POWER_ON", - "value": 0 - }, - { - "name": "SYSTEM_USER_DETECTION", - "value": 1 - }, - { - "name": "SYSTEM_REMOTE_ACCESS", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EmergencyLaneKeepAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "WARNING_LEFT", - "value": 2 - }, - { - "name": "WARNING_RIGHT", - "value": 3 - }, - { - "name": "ACTIVATED_STEER_LEFT", - "value": 4 - }, - { - "name": "ACTIVATED_STEER_RIGHT", - "value": 5 - }, - { - "name": "USER_OVERRIDE", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvConnectorType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "IEC_TYPE_1_AC", - "value": 1 - }, - { - "name": "IEC_TYPE_2_AC", - "value": 2 - }, - { - "name": "IEC_TYPE_3_AC", - "value": 3 - }, - { - "name": "IEC_TYPE_4_DC", - "value": 4 - }, - { - "name": "IEC_TYPE_1_CCS_DC", - "value": 5 - }, - { - "name": "IEC_TYPE_2_CCS_DC", - "value": 6 - }, - { - "name": "TESLA_ROADSTER", - "value": 7 - }, - { - "name": "TESLA_HPWC", - "value": 8 - }, - { - "name": "TESLA_SUPERCHARGER", - "value": 9 - }, - { - "name": "GBT_AC", - "value": 10 - }, - { - "name": "GBT_DC", - "value": 11 - }, - { - "name": "OTHER", - "value": 101 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationType", - "values": [ - { - "name": "INVALID", - "value": 0 - }, - { - "name": "KEY_FOB", - "value": 1 - }, - { - "name": "CUSTOM_1", - "value": 101 - }, - { - "name": "CUSTOM_2", - "value": 102 - }, - { - "name": "CUSTOM_3", - "value": 103 - }, - { - "name": "CUSTOM_4", - "value": 104 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHvacFanDirection", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FACE", - "value": 1 - }, - { - "name": "FLOOR", - "value": 2 - }, - { - "name": "FACE_AND_FLOOR", - "value": 3 - }, - { - "name": "DEFROST", - "value": 4 - }, - { - "name": "DEFROST_AND_FLOOR", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaWheel", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEFT_FRONT", - "value": 1 - }, - { - "name": "RIGHT_FRONT", - "value": 2 - }, - { - "name": "LEFT_REAR", - "value": 4 - }, - { - "name": "RIGHT_REAR", - "value": 8 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "InitialUserInfoRequestType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FIRST_BOOT", - "value": 1 - }, - { - "name": "FIRST_BOOT_AFTER_OTA", - "value": 2 - }, - { - "name": "COLD_BOOT", - "value": 3 - }, - { - "name": "RESUME", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "HandsOnDetectionDriverState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "HANDS_ON", - "value": 1 - }, - { - "name": "HANDS_OFF", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlCommand", - "values": [ - { - "name": "ACTIVATE", - "value": 1 - }, - { - "name": "SUSPEND", - "value": 2 - }, - { - "name": "INCREASE_TARGET_SPEED", - "value": 3 - }, - { - "name": "DECREASE_TARGET_SPEED", - "value": 4 - }, - { - "name": "INCREASE_TARGET_TIME_GAP", - "value": 5 - }, - { - "name": "DECREASE_TARGET_TIME_GAP", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "WindshieldWipersSwitch", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "OFF", - "value": 1 - }, - { - "name": "MIST", - "value": 2 - }, - { - "name": "INTERMITTENT_LEVEL_1", - "value": 3 - }, - { - "name": "INTERMITTENT_LEVEL_2", - "value": 4 - }, - { - "name": "INTERMITTENT_LEVEL_3", - "value": 5 - }, - { - "name": "INTERMITTENT_LEVEL_4", - "value": 6 - }, - { - "name": "INTERMITTENT_LEVEL_5", - "value": 7 - }, - { - "name": "CONTINUOUS_LEVEL_1", - "value": 8 - }, - { - "name": "CONTINUOUS_LEVEL_2", - "value": 9 - }, - { - "name": "CONTINUOUS_LEVEL_3", - "value": 10 - }, - { - "name": "CONTINUOUS_LEVEL_4", - "value": 11 - }, - { - "name": "CONTINUOUS_LEVEL_5", - "value": 12 - }, - { - "name": "AUTO", - "value": 13 - }, - { - "name": "SERVICE", - "value": 14 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionToolType", - "values": [ - { - "name": "TOOL_TYPE_UNKNOWN", - "value": 0 - }, - { - "name": "TOOL_TYPE_FINGER", - "value": 1 - }, - { - "name": "TOOL_TYPE_STYLUS", - "value": 2 - }, - { - "name": "TOOL_TYPE_MOUSE", - "value": 3 - }, - { - "name": "TOOL_TYPE_ERASER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "SwitchUserStatus", - "values": [ - { - "name": "SUCCESS", - "value": 1 - }, - { - "name": "FAILURE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceType", - "values": [ - { - "name": "REARVIEW", - "value": 0 - }, - { - "name": "SURROUNDVIEW", - "value": 1 - }, - { - "name": "FRONTVIEW", - "value": 2 - }, - { - "name": "LEFTVIEW", - "value": 3 - }, - { - "name": "RIGHTVIEW", - "value": 4 - }, - { - "name": "DRIVERVIEW", - "value": 5 - }, - { - "name": "FRONTPASSENGERSVIEW", - "value": 6 - }, - { - "name": "REARPASSENGERSVIEW", - "value": 7 - }, - { - "name": "USER_DEFINED", - "value": 1000 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationValue", - "values": [ - { - "name": "UNKNOWN", - "value": 1 - }, - { - "name": "ASSOCIATED_CURRENT_USER", - "value": 2 - }, - { - "name": "ASSOCIATED_ANOTHER_USER", - "value": 3 - }, - { - "name": "NOT_ASSOCIATED_ANY_USER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ErrorState", - "values": [ - { - "name": "OTHER_ERROR_STATE", - "value": -1 - }, - { - "name": "NOT_AVAILABLE_DISABLED", - "value": -2 - }, - { - "name": "NOT_AVAILABLE_SPEED_LOW", - "value": -3 - }, - { - "name": "NOT_AVAILABLE_SPEED_HIGH", - "value": -4 - }, - { - "name": "NOT_AVAILABLE_POOR_VISIBILITY", - "value": -5 - }, - { - "name": "NOT_AVAILABLE_SAFETY", - "value": -6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleIgnitionState", - "values": [ - { - "name": "UNDEFINED", - "value": 0 - }, - { - "name": "LOCK", - "value": 1 - }, - { - "name": "OFF", - "value": 2 - }, - { - "name": "ACC", - "value": 3 - }, - { - "name": "ON", - "value": 4 - }, - { - "name": "START", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaSeat", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 - }, - { - "name": "ROW_1_CENTER", - "value": 2 - }, - { - "name": "ROW_1_RIGHT", - "value": 4 - }, - { - "name": "ROW_2_LEFT", - "value": 16 - }, - { - "name": "ROW_2_CENTER", - "value": 32 - }, - { - "name": "ROW_2_RIGHT", - "value": 64 - }, - { - "name": "ROW_3_LEFT", - "value": 256 - }, - { - "name": "ROW_3_CENTER", - "value": 512 - }, - { - "name": "ROW_3_RIGHT", - "value": 1024 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceRequestIndex", - "values": [ - { - "name": "TYPE", - "value": 0 - }, - { - "name": "STATE", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneDepartureWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING_LEFT", - "value": 2 - }, - { - "name": "WARNING_RIGHT", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2SparkIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CreateUserStatus", - "values": [ - { - "name": "SUCCESS", - "value": 1 - }, - { - "name": "FAILURE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehiclePropertyGroup", - "values": [ - { - "name": "SYSTEM", - "value": 268435456 - }, - { - "name": "VENDOR", - "value": 536870912 - }, - { - "name": "MASK", - "value": 4026531840 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleVendorPermission", - "values": [ - { - "name": "PERMISSION_DEFAULT", - "value": 0 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_WINDOW", - "value": 1 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_WINDOW", - "value": 2 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_DOOR", - "value": 3 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_DOOR", - "value": 4 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_SEAT", - "value": 5 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_SEAT", - "value": 6 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_MIRROR", - "value": 7 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_MIRROR", - "value": 8 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_INFO", - "value": 9 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_INFO", - "value": 10 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_ENGINE", - "value": 11 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_ENGINE", - "value": 12 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_HVAC", - "value": 13 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_HVAC", - "value": 14 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_LIGHT", - "value": 15 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_LIGHT", - "value": 16 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_1", - "value": 65536 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_1", - "value": 69632 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_2", - "value": 131072 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_2", - "value": 135168 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_3", - "value": 196608 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_3", - "value": 200704 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_4", - "value": 262144 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_4", - "value": 266240 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_5", - "value": 327680 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_5", - "value": 331776 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_6", - "value": 393216 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_6", - "value": 397312 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_7", - "value": 458752 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_7", - "value": 462848 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_8", - "value": 524288 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_8", - "value": 528384 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_9", - "value": 589824 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_9", - "value": 593920 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_10", - "value": 655360 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_10", - "value": 659456 - }, - { - "name": "PERMISSION_NOT_ACCESSIBLE", - "value": 4026531840 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsOfferingMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "PUBLISHER_ID", - "value": 1 - }, - { - "name": "NUMBER_OF_OFFERS", - "value": 2 - }, - { - "name": "OFFERING_START", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsBaseMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2CompressionIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneKeepAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED_STEER_LEFT", - "value": 2 - }, - { - "name": "ACTIVATED_STEER_RIGHT", - "value": 3 - }, - { - "name": "USER_OVERRIDE", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionInputAction", - "values": [ - { - "name": "ACTION_DOWN", - "value": 0 - }, - { - "name": "ACTION_UP", - "value": 1 - }, - { - "name": "ACTION_MOVE", - "value": 2 - }, - { - "name": "ACTION_CANCEL", - "value": 3 - }, - { - "name": "ACTION_OUTSIDE", - "value": 4 - }, - { - "name": "ACTION_POINTER_DOWN", - "value": 5 - }, - { - "name": "ACTION_POINTER_UP", - "value": 6 - }, - { - "name": "ACTION_HOVER_MOVE", - "value": 7 - }, - { - "name": "ACTION_SCROLL", - "value": 8 - }, - { - "name": "ACTION_HOVER_ENTER", - "value": 9 - }, - { - "name": "ACTION_HOVER_EXIT", - "value": 10 - }, - { - "name": "ACTION_BUTTON_PRESS", - "value": 11 - }, - { - "name": "ACTION_BUTTON_RELEASE", - "value": 12 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateConfigFlag", - "values": [ - { - "name": "ENABLE_DEEP_SLEEP_FLAG", - "value": 1 - }, - { - "name": "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG", - "value": 2 - }, - { - "name": "ENABLE_HIBERNATION_FLAG", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2SecondaryAirStatus", - "values": [ - { - "name": "UPSTREAM", - "value": 1 - }, - { - "name": "DOWNSTREAM_OF_CATALYCIC_CONVERTER", - "value": 2 - }, - { - "name": "FROM_OUTSIDE_OR_OFF", - "value": 4 - }, - { - "name": "PUMP_ON_FOR_DIAGNOSTICS", - "value": 8 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsPublisherInformationIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "PUBLISHER_ID", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReq", - "values": [ - { - "name": "ON", - "value": 0 - }, - { - "name": "SHUTDOWN_PREPARE", - "value": 1 - }, - { - "name": "CANCEL_SHUTDOWN", - "value": 2 - }, - { - "name": "FINISHED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "WindshieldWipersState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "OFF", - "value": 1 - }, - { - "name": "ON", - "value": 2 - }, - { - "name": "SERVICE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneCenteringAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATION_REQUESTED", - "value": 2 - }, - { - "name": "ACTIVATED", - "value": 3 - }, - { - "name": "USER_OVERRIDE", - "value": 4 - }, - { - "name": "FORCED_DEACTIVATION_WARNING", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationSetValue", - "values": [ - { - "name": "INVALID", - "value": 0 - }, - { - "name": "ASSOCIATE_CURRENT_USER", - "value": 1 - }, - { - "name": "DISASSOCIATE_CURRENT_USER", - "value": 2 - }, - { - "name": "DISASSOCIATE_ALL_USERS", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2CommonIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionInputSource", - "values": [ - { - "name": "SOURCE_UNKNOWN", - "value": 0 - }, - { - "name": "SOURCE_KEYBOARD", - "value": 1 - }, - { - "name": "SOURCE_DPAD", - "value": 2 - }, - { - "name": "SOURCE_GAMEPAD", - "value": 3 - }, - { - "name": "SOURCE_TOUCHSCREEN", - "value": 4 - }, - { - "name": "SOURCE_MOUSE", - "value": 5 - }, - { - "name": "SOURCE_STYLUS", - "value": 6 - }, - { - "name": "SOURCE_BLUETOOTH_STYLUS", - "value": 7 - }, - { - "name": "SOURCE_TRACKBALL", - "value": 8 - }, - { - "name": "SOURCE_MOUSE_RELATIVE", - "value": 9 - }, - { - "name": "SOURCE_TOUCHPAD", - "value": 10 - }, - { - "name": "SOURCE_TOUCH_NAVIGATION", - "value": 11 - }, - { - "name": "SOURCE_ROTARY_ENCODER", - "value": 12 - }, - { - "name": "SOURCE_JOYSTICK", - "value": 13 - }, - { - "name": "SOURCE_HDMI", - "value": 14 - }, - { - "name": "SOURCE_SENSOR", - "value": 15 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ForwardCollisionWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleArea", - "values": [ - { - "name": "GLOBAL", - "value": 16777216 - }, - { - "name": "WINDOW", - "value": 50331648 - }, - { - "name": "MIRROR", - "value": 67108864 - }, - { - "name": "SEAT", - "value": 83886080 - }, - { - "name": "DOOR", - "value": 100663296 - }, - { - "name": "WHEEL", - "value": 117440512 - }, - { - "name": "MASK", - "value": 251658240 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "PortLocationType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FRONT_LEFT", - "value": 1 - }, - { - "name": "FRONT_RIGHT", - "value": 2 - }, - { - "name": "REAR_RIGHT", - "value": 3 - }, - { - "name": "REAR_LEFT", - "value": 4 - }, - { - "name": "FRONT", - "value": 5 - }, - { - "name": "REAR", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "InitialUserInfoResponseAction", - "values": [ - { - "name": "DEFAULT", - "value": 0 - }, - { - "name": "SWITCH", - "value": 1 - }, - { - "name": "CREATE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsSubscriptionsStateIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SEQUENCE_NUMBER", - "value": 1 - }, - { - "name": "NUMBER_OF_LAYERS", - "value": 2 - }, - { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", - "value": 3 - }, - { - "name": "SUBSCRIPTIONS_START", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlType", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "STANDARD", - "value": 1 - }, - { - "name": "ADAPTIVE", - "value": 2 - }, - { - "name": "PREDICTIVE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "DiagnosticFloatSensorIndex", - "values": [ - { - "name": "CALCULATED_ENGINE_LOAD", - "value": 0 - }, - { - "name": "ENGINE_COOLANT_TEMPERATURE", - "value": 1 - }, - { - "name": "SHORT_TERM_FUEL_TRIM_BANK1", - "value": 2 - }, - { - "name": "LONG_TERM_FUEL_TRIM_BANK1", - "value": 3 - }, - { - "name": "SHORT_TERM_FUEL_TRIM_BANK2", - "value": 4 - }, - { - "name": "LONG_TERM_FUEL_TRIM_BANK2", - "value": 5 - }, - { - "name": "FUEL_PRESSURE", - "value": 6 - }, - { - "name": "INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 7 - }, - { - "name": "ENGINE_RPM", - "value": 8 - }, - { - "name": "VEHICLE_SPEED", - "value": 9 - }, - { - "name": "TIMING_ADVANCE", - "value": 10 - }, - { - "name": "MAF_AIR_FLOW_RATE", - "value": 11 - }, - { - "name": "THROTTLE_POSITION", - "value": 12 - }, - { - "name": "OXYGEN_SENSOR1_VOLTAGE", - "value": 13 - }, - { - "name": "OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM", - "value": 14 - }, - { - "name": "OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 15 - }, - { - "name": "OXYGEN_SENSOR2_VOLTAGE", - "value": 16 - }, - { - "name": "OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM", - "value": 17 - }, - { - "name": "OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 18 - }, - { - "name": "OXYGEN_SENSOR3_VOLTAGE", - "value": 19 - }, - { - "name": "OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM", - "value": 20 - }, - { - "name": "OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 21 - }, - { - "name": "OXYGEN_SENSOR4_VOLTAGE", - "value": 22 - }, - { - "name": "OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM", - "value": 23 - }, - { - "name": "OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 24 - }, - { - "name": "OXYGEN_SENSOR5_VOLTAGE", - "value": 25 - }, - { - "name": "OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM", - "value": 26 - }, - { - "name": "OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 27 - }, - { - "name": "OXYGEN_SENSOR6_VOLTAGE", - "value": 28 - }, - { - "name": "OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM", - "value": 29 - }, - { - "name": "OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 30 - }, - { - "name": "OXYGEN_SENSOR7_VOLTAGE", - "value": 31 - }, - { - "name": "OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM", - "value": 32 - }, - { - "name": "OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 33 - }, - { - "name": "OXYGEN_SENSOR8_VOLTAGE", - "value": 34 - }, - { - "name": "OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM", - "value": 35 - }, - { - "name": "OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 36 - }, - { - "name": "FUEL_RAIL_PRESSURE", - "value": 37 - }, - { - "name": "FUEL_RAIL_GAUGE_PRESSURE", - "value": 38 - }, - { - "name": "COMMANDED_EXHAUST_GAS_RECIRCULATION", - "value": 39 - }, - { - "name": "EXHAUST_GAS_RECIRCULATION_ERROR", - "value": 40 - }, - { - "name": "COMMANDED_EVAPORATIVE_PURGE", - "value": 41 - }, - { - "name": "FUEL_TANK_LEVEL_INPUT", - "value": 42 - }, - { - "name": "EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 43 - }, - { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR1", - "value": 44 - }, - { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR1", - "value": 45 - }, - { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR2", - "value": 46 - }, - { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR2", - "value": 47 - }, - { - "name": "ABSOLUTE_LOAD_VALUE", - "value": 48 - }, - { - "name": "FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO", - "value": 49 - }, - { - "name": "RELATIVE_THROTTLE_POSITION", - "value": 50 - }, - { - "name": "ABSOLUTE_THROTTLE_POSITION_B", - "value": 51 - }, - { - "name": "ABSOLUTE_THROTTLE_POSITION_C", - "value": 52 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_D", - "value": 53 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_E", - "value": 54 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_F", - "value": 55 - }, - { - "name": "COMMANDED_THROTTLE_ACTUATOR", - "value": 56 - }, - { - "name": "ETHANOL_FUEL_PERCENTAGE", - "value": 57 - }, - { - "name": "ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 58 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 59 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 60 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 61 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 62 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 63 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 64 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 65 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 66 - }, - { - "name": "RELATIVE_ACCELERATOR_PEDAL_POSITION", - "value": 67 - }, - { - "name": "HYBRID_BATTERY_PACK_REMAINING_LIFE", - "value": 68 - }, - { - "name": "FUEL_INJECTION_TIMING", - "value": 69 - }, - { - "name": "ENGINE_FUEL_RATE", - "value": 70 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "GsrComplianceRequirementType", - "values": [ - { - "name": "GSR_COMPLIANCE_NOT_REQUIRED", - "value": 0 - }, - { - "name": "GSR_COMPLIANCE_REQUIRED_V1", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleLightState", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - }, - { - "name": "DAYTIME_RUNNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageWithLayerIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "LAYER_TYPE", - "value": 1 - }, - { - "name": "LAYER_SUBTYPE", - "value": 2 - }, - { - "name": "LAYER_VERSION", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvRegenerativeBrakingState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "DISABLED", - "value": 1 - }, - { - "name": "PARTIALLY_ENABLED", - "value": 2 - }, - { - "name": "FULLY_ENABLED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReqIndex", - "values": [ - { - "name": "STATE", - "value": 0 - }, - { - "name": "ADDITIONAL", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "RotaryInputType", - "values": [ - { - "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", - "value": 0 - }, - { - "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageType", - "values": [ - { - "name": "SUBSCRIBE", - "value": 1 - }, - { - "name": "SUBSCRIBE_TO_PUBLISHER", - "value": 2 - }, - { - "name": "UNSUBSCRIBE", - "value": 3 - }, - { - "name": "UNSUBSCRIBE_TO_PUBLISHER", - "value": 4 - }, - { - "name": "OFFERING", - "value": 5 - }, - { - "name": "AVAILABILITY_REQUEST", - "value": 6 - }, - { - "name": "SUBSCRIPTIONS_REQUEST", - "value": 7 - }, - { - "name": "AVAILABILITY_RESPONSE", - "value": 8 - }, - { - "name": "AVAILABILITY_CHANGE", - "value": 9 - }, - { - "name": "SUBSCRIPTIONS_RESPONSE", - "value": 10 - }, - { - "name": "SUBSCRIPTIONS_CHANGE", - "value": 11 - }, - { - "name": "DATA", - "value": 12 - }, - { - "name": "PUBLISHER_ID_REQUEST", - "value": 13 - }, - { - "name": "PUBLISHER_ID_RESPONSE", - "value": 14 - }, - { - "name": "PUBLISHER_INFORMATION_REQUEST", - "value": 15 - }, - { - "name": "PUBLISHER_INFORMATION_RESPONSE", - "value": 16 - }, - { - "name": "START_SESSION", - "value": 17 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "FuelType", - "values": [ - { - "name": "FUEL_TYPE_UNKNOWN", - "value": 0 - }, - { - "name": "FUEL_TYPE_UNLEADED", - "value": 1 - }, - { - "name": "FUEL_TYPE_LEADED", - "value": 2 - }, - { - "name": "FUEL_TYPE_DIESEL_1", - "value": 3 - }, - { - "name": "FUEL_TYPE_DIESEL_2", - "value": 4 - }, - { - "name": "FUEL_TYPE_BIODIESEL", - "value": 5 - }, - { - "name": "FUEL_TYPE_E85", - "value": 6 - }, - { - "name": "FUEL_TYPE_LPG", - "value": 7 - }, - { - "name": "FUEL_TYPE_CNG", - "value": 8 - }, - { - "name": "FUEL_TYPE_LNG", - "value": 9 - }, - { - "name": "FUEL_TYPE_ELECTRIC", - "value": 10 - }, - { - "name": "FUEL_TYPE_HYDROGEN", - "value": 11 - }, - { - "name": "FUEL_TYPE_OTHER", - "value": 12 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleSeatOccupancyState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "VACANT", - "value": 1 - }, - { - "name": "OCCUPIED", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvStoppingMode", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "CREEP", - "value": 1 - }, - { - "name": "ROLL", - "value": 2 - }, - { - "name": "HOLD", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "AutomaticEmergencyBrakingState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED", - "value": 2 - }, - { - "name": "USER_OVERRIDE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReport", - "values": [ - { - "name": "WAIT_FOR_VHAL", - "value": 1 - }, - { - "name": "DEEP_SLEEP_ENTRY", - "value": 2 - }, - { - "name": "DEEP_SLEEP_EXIT", - "value": 3 - }, - { - "name": "SHUTDOWN_POSTPONE", - "value": 4 - }, - { - "name": "SHUTDOWN_START", - "value": 5 - }, - { - "name": "ON", - "value": 6 - }, - { - "name": "SHUTDOWN_PREPARE", - "value": 7 - }, - { - "name": "SHUTDOWN_CANCELLED", - "value": 8 - }, - { - "name": "HIBERNATION_ENTRY", - "value": 9 - }, - { - "name": "HIBERNATION_EXIT", - "value": 10 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "SwitchUserMessageType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEGACY_ANDROID_SWITCH", - "value": 1 - }, - { - "name": "ANDROID_SWITCH", - "value": 2 - }, - { - "name": "VEHICLE_RESPONSE", - "value": 3 - }, - { - "name": "VEHICLE_REQUEST", - "value": 4 - }, - { - "name": "ANDROID_POST_SWITCH", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaMirror", - "values": [ - { - "name": "DRIVER_LEFT", - "value": 1 - }, - { - "name": "DRIVER_RIGHT", - "value": 2 - }, - { - "name": "DRIVER_CENTER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "TrailerState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "NOT_PRESENT", - "value": 1 - }, - { - "name": "PRESENT", - "value": 2 - }, - { - "name": "ERROR", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceState", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwKeyInputAction", - "values": [ - { - "name": "ACTION_DOWN", - "value": 0 - }, - { - "name": "ACTION_UP", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "BlindSpotWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleGear", - "values": [ - { - "name": "GEAR_UNKNOWN", - "value": 0 - }, - { - "name": "GEAR_NEUTRAL", - "value": 1 - }, - { - "name": "GEAR_REVERSE", - "value": 2 - }, - { - "name": "GEAR_PARK", - "value": 4 - }, - { - "name": "GEAR_DRIVE", - "value": 8 - }, - { - "name": "GEAR_1", - "value": 16 - }, - { - "name": "GEAR_2", - "value": 32 - }, - { - "name": "GEAR_3", - "value": 64 - }, - { - "name": "GEAR_4", - "value": 128 - }, - { - "name": "GEAR_5", - "value": 256 - }, - { - "name": "GEAR_6", - "value": 512 - }, - { - "name": "GEAR_7", - "value": 1024 - }, - { - "name": "GEAR_8", - "value": 2048 - }, - { - "name": "GEAR_9", - "value": 4096 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsStartSessionMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SERVICE_ID", - "value": 1 - }, - { - "name": "CLIENT_ID", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2FuelSystemStatus", - "values": [ - { - "name": "OPEN_INSUFFICIENT_ENGINE_TEMPERATURE", - "value": 1 - }, - { - "name": "CLOSED_LOOP", - "value": 2 - }, - { - "name": "OPEN_ENGINE_LOAD_OR_DECELERATION", - "value": 4 - }, - { - "name": "OPEN_SYSTEM_FAILURE", - "value": 8 - }, - { - "name": "CLOSED_LOOP_BUT_FEEDBACK_FAULT", - "value": 16 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ElectronicTollCollectionCardStatus", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", - "value": 1 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", - "value": 2 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateShutdownParam", - "values": [ - { - "name": "SHUTDOWN_IMMEDIATELY", - "value": 1 - }, - { - "name": "CAN_SLEEP", - "value": 2 - }, - { - "name": "SHUTDOWN_ONLY", - "value": 3 - }, - { - "name": "SLEEP_IMMEDIATELY", - "value": 4 - }, - { - "name": "HIBERNATE_IMMEDIATELY", - "value": 5 - }, - { - "name": "CAN_HIBERNATE", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CustomInputType", - "values": [ - { - "name": "CUSTOM_EVENT_F1", - "value": 1001 - }, - { - "name": "CUSTOM_EVENT_F2", - "value": 1002 - }, - { - "name": "CUSTOM_EVENT_F3", - "value": 1003 - }, - { - "name": "CUSTOM_EVENT_F4", - "value": 1004 - }, - { - "name": "CUSTOM_EVENT_F5", - "value": 1005 - }, - { - "name": "CUSTOM_EVENT_F6", - "value": 1006 - }, - { - "name": "CUSTOM_EVENT_F7", - "value": 1007 - }, - { - "name": "CUSTOM_EVENT_F8", - "value": 1008 - }, - { - "name": "CUSTOM_EVENT_F9", - "value": 1009 - }, - { - "name": "CUSTOM_EVENT_F10", - "value": 1010 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleTurnSignal", - "values": [ - { - "name": "NONE", - "value": 0 - }, - { - "name": "RIGHT", - "value": 1 - }, - { - "name": "LEFT", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ElectronicTollCollectionCardType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", - "value": 1 - }, - { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleProperty", - "values": [ - { - "name": "Undefined property.", - "value": 0 - }, - { - "name": "VIN of vehicle", - "value": 286261504, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Manufacturer of vehicle", - "value": 286261505, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Model of vehicle", - "value": 286261506, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Model year of vehicle.", - "value": 289407235, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:YEAR" - }, - { - "name": "Fuel capacity of the vehicle in milliliters", - "value": 291504388, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" - }, - { - "name": "List of fuels the vehicle may use.", - "value": 289472773, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "FuelType" - }, - { - "name": "Nominal battery capacity for EV or hybrid vehicle", - "value": 291504390, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "List of connectors this EV may use", - "value": 289472775, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "EvConnectorType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Fuel door location", - "value": 289407240, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "PortLocationType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "EV port location", - "value": 289407241, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" - }, - { - "name": "INFO_DRIVER_SEAT", - "value": 356516106, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "VehicleAreaSeat", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Exterior dimensions of vehicle.", - "value": 289472779, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLIMETER" - }, - { - "name": "Multiple EV port locations", - "value": 289472780, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" - }, - { - "name": "Current odometer value of the vehicle", - "value": 291504644, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOMETER" - }, - { - "name": "Speed of the vehicle", - "value": 291504647, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "Speed of the vehicle for displays", - "value": 291504648, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "Front bicycle model steering angle for vehicle", - "value": 291504649, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" - }, - { - "name": "Rear bicycle model steering angle for vehicle", - "value": 291504656, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" - }, - { - "name": "Temperature of engine coolant", - "value": 291504897, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Engine oil level", - "value": 289407747, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleOilLevel" - }, - { - "name": "Temperature of engine oil", - "value": 291504900, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Engine rpm", - "value": 291504901, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:RPM" - }, - { - "name": "Reports wheel ticks", - "value": 290521862, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "FUEL_LEVEL", - "value": 291504903, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" - }, - { - "name": "Fuel door open", - "value": 287310600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Battery level for EV or hybrid vehicle", - "value": 291504905, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "Current battery capacity for EV or hybrid vehicle", - "value": 291504909, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "EV charge port open", - "value": 287310602, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EV charge port connected", - "value": 287310603, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "EV instantaneous charge rate in milliwatts", - "value": 291504908, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MW" - }, - { - "name": "Range remaining", - "value": 291504904, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:METER" - }, - { - "name": "Tire pressure", - "value": 392168201, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" - }, - { - "name": "Critically low tire pressure", - "value": 392168202, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" - }, - { - "name": "Represents feature for engine idle automatic stop.", - "value": 287310624, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Currently selected gear", - "value": 289408000, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" - }, - { - "name": "CURRENT_GEAR", - "value": 289408001, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" - }, - { - "name": "Parking brake state.", - "value": 287310850, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "PARKING_BRAKE_AUTO_APPLY", - "value": 287310851, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Regenerative braking level of a electronic vehicle", - "value": 289408012, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Warning for fuel low level.", - "value": 287310853, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Night mode", - "value": 287310855, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "State of the vehicles turn signals", - "value": 289408008, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleTurnSignal" - }, - { - "name": "Represents ignition state", - "value": 289408009, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleIgnitionState" - }, - { - "name": "ABS is active", - "value": 287310858, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Traction Control is active", - "value": 287310859, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Represents property for the current stopping mode of the vehicle.", - "value": 289408013, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "EvStoppingMode" - }, - { - "name": "HVAC Properties", - "value": 356517120, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Fan direction setting", - "value": 356517121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleHvacFanDirection" - }, - { - "name": "HVAC current temperature.", - "value": 358614274, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "HVAC_TEMPERATURE_SET", - "value": 358614275, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "HVAC_DEFROSTER", - "value": 320865540, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_AC_ON", - "value": 354419973, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "config_flags": "Supported" - }, - { - "name": "HVAC_MAX_AC_ON", - "value": 354419974, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_MAX_DEFROST_ON", - "value": 354419975, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_RECIRC_ON", - "value": 354419976, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Enable temperature coupling between areas.", - "value": 354419977, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_AUTO_ON", - "value": 354419978, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_SEAT_TEMPERATURE", - "value": 356517131, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Side Mirror Heat", - "value": 339739916, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_STEERING_WHEEL_HEAT", - "value": 289408269, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Temperature units for display", - "value": 289408270, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Actual fan speed", - "value": 356517135, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "HVAC_POWER_ON", - "value": 354419984, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Fan Positions Available", - "value": 356582673, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleHvacFanDirection" - }, - { - "name": "HVAC_AUTO_RECIRC_ON", - "value": 354419986, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat ventilation", - "value": 356517139, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_ELECTRIC_DEFROSTER_ON", - "value": 320865556, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Suggested values for setting HVAC temperature.", - "value": 291570965, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Distance units for display", - "value": 289408512, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Fuel volume units for display", - "value": 289408513, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Tire pressure units for display", - "value": 289408514, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "EV battery units for display", - "value": 289408515, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Fuel consumption units for display", - "value": 287311364, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Speed units for display", - "value": 289408517, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "ANDROID_EPOCH_TIME", - "value": 290457094, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "External encryption binding seed.", - "value": 292554247, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Outside temperature", - "value": 291505923, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Property to control power state of application processor", - "value": 289475072, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Property to report power state of application processor", - "value": 289475073, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "AP_POWER_BOOTUP_REASON", - "value": 289409538, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Property to represent brightness of the display.", - "value": 289409539, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Property to represent brightness of the displays which are controlled separately.", - "value": 289475076, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HW_KEY_INPUT", - "value": 289475088, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_KEY_INPUT_V2", - "value": 367004177, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_MOTION_INPUT", - "value": 367004178, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_ROTARY_INPUT", - "value": 289475104, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "RotaryInputType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines a custom OEM partner input event.", - "value": 289475120, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "CustomInputType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "DOOR_POS", - "value": 373295872, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door move", - "value": 373295873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door lock", - "value": 371198722, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door child lock feature enabled", - "value": 371198723, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Z Position", - "value": 339741504, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Z Move", - "value": 339741505, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Y Position", - "value": 339741506, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Y Move", - "value": 339741507, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Lock", - "value": 287312708, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Fold", - "value": 287312709, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for Mirror Auto Fold feature.", - "value": 337644358, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for Mirror Auto Tilt feature.", - "value": 337644359, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat memory select", - "value": 356518784, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Seat memory set", - "value": 356518785, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Seatbelt buckled", - "value": 354421634, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seatbelt height position", - "value": 356518787, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seatbelt height move", - "value": 356518788, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_FORE_AFT_POS", - "value": 356518789, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_FORE_AFT_MOVE", - "value": 356518790, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 1 position", - "value": 356518791, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 1 move", - "value": 356518792, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 2 position", - "value": 356518793, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 2 move", - "value": 356518794, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat height position", - "value": 356518795, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat height move", - "value": 356518796, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat depth position", - "value": 356518797, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat depth move", - "value": 356518798, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat tilt position", - "value": 356518799, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat tilt move", - "value": 356518800, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_FORE_AFT_POS", - "value": 356518801, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_FORE_AFT_MOVE", - "value": 356518802, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lumbar side support position", - "value": 356518803, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lumbar side support move", - "value": 356518804, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_HEIGHT_POS", - "value": 289409941, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest height position", - "value": 356518820, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest height move", - "value": 356518806, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest angle position", - "value": 356518807, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest angle move", - "value": 356518808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_FORE_AFT_POS", - "value": 356518809, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_FORE_AFT_MOVE", - "value": 356518810, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for the seat footwell lights state.", - "value": 356518811, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Represents property for the seat footwell lights switch.", - "value": 356518812, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Represents property for Seat easy access feature.", - "value": 354421661, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_AIRBAG_ENABLED", - "value": 354421662, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_CUSHION_SIDE_SUPPORT_POS", - "value": 356518815, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for movement direction and speed of seat cushion side support.", - "value": 356518816, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_VERTICAL_POS", - "value": 356518817, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for vertical movement direction and speed of seat lumbar support.", - "value": 356518818, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_WALK_IN_POS", - "value": 356518819, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat Occupancy", - "value": 356518832, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleSeatOccupancyState" - }, - { - "name": "Window Position", - "value": 322964416, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Window Move", - "value": 322964417, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Window Lock", - "value": 320867268, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "WINDSHIELD_WIPERS_PERIOD", - "value": 322964421, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "Windshield wipers state.", - "value": 322964422, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "WindshieldWipersState" - }, - { - "name": "Windshield wipers switch.", - "value": 322964423, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "WindshieldWipersSwitch" - }, - { - "name": "Steering wheel depth position", - "value": 289410016, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel depth movement", - "value": 289410017, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel height position", - "value": 289410018, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel height movement", - "value": 289410019, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel theft lock feature enabled", - "value": 287312868, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel locked", - "value": 287312869, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel easy access feature enabled", - "value": 287312870, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Property that represents the current position of the glove box door.", - "value": 356518896, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lock or unlock the glove box.", - "value": 354421745, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "VEHICLE_MAP_SERVICE", - "value": 299895808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Characterization of inputs used for computing location.", - "value": 289410064, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Live Sensor Data", - "value": 299896064, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Sensor Data", - "value": 299896065, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Information", - "value": 299896066, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Clear", - "value": 299896067, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Headlights State", - "value": 289410560, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "High beam lights state", - "value": 289410561, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Fog light state", - "value": 289410562, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Hazard light status", - "value": 289410563, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Headlight switch", - "value": 289410576, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "High beam light switch", - "value": 289410577, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Fog light switch", - "value": 289410578, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Hazard light switch", - "value": 289410579, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Cabin lights", - "value": 289410817, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Cabin lights switch", - "value": 289410818, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Reading lights", - "value": 356519683, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Reading lights switch", - "value": 356519684, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Steering wheel lights state", - "value": 289410828, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Steering wheel lights switch", - "value": 289410829, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Support customize permissions for vendor properties", - "value": 287313669, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Allow disabling optional featurs from vhal.", - "value": 286265094, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines the initial Android user to be used during initialization.", - "value": 299896583, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Defines a request to switch the foreground Android user.", - "value": 299896584, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Called by the Android System after an Android user was created.", - "value": 299896585, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Called by the Android System after an Android user was removed.", - "value": 299896586, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "USER_IDENTIFICATION_ASSOCIATION", - "value": 299896587, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EVS_SERVICE_REQUEST", - "value": 289476368, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines a request to apply power policy.", - "value": 286265121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "POWER_POLICY_GROUP_REQ", - "value": 286265122, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Notifies the current power policy to VHAL layer.", - "value": 286265123, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "WATCHDOG_ALIVE", - "value": 290459441, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Defines a process terminated by car watchdog and the reason of termination.", - "value": 299896626, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Defines an event that VHAL signals to car watchdog as a heartbeat.", - "value": 290459443, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Starts the ClusterUI in cluster display.", - "value": 289410868, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Changes the state of the cluster display.", - "value": 289476405, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Reports the current display state and ClusterUI state.", - "value": 299896630, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Requests to change the cluster display state to show some ClusterUI.", - "value": 289410871, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Informs the current navigation state.", - "value": 292556600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Electronic Toll Collection card type.", - "value": 289410873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardType" - }, - { - "name": "Electronic Toll Collection card status.", - "value": 289410874, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardStatus" - }, - { - "name": "Front fog lights state", - "value": 289410875, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Front fog lights switch", - "value": 289410876, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Rear fog lights state", - "value": 289410877, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Rear fog lights switch", - "value": 289410878, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Indicates the maximum current draw threshold for charging set by the user", - "value": 291508031, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:AMPERE" - }, - { - "name": "Indicates the maximum charge percent threshold set by the user", - "value": 291508032, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Charging state of the car", - "value": 289410881, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvChargeState" - }, - { - "name": "Start or stop charging the EV battery", - "value": 287313730, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Estimated charge time remaining in seconds", - "value": 289410883, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:SECS" - }, - { - "name": "EV_REGENERATIVE_BRAKING_STATE", - "value": 289410884, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvRegenerativeBrakingState" - }, - { - "name": "Indicates if there is a trailer present or not.", - "value": 289410885, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "TrailerState" - }, - { - "name": "VEHICLE_CURB_WEIGHT", - "value": 289410886, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOGRAM" - }, - { - "name": "GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", - "value": 289410887, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "GsrComplianceRequirementType" - }, - { - "name": "SUPPORTED_PROPERTY_IDS", - "value": 289476424, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Request the head unit to be shutdown.", - "value": 289410889, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "VehicleApPowerStateShutdownParam" - }, - { - "name": "Whether the vehicle is currently in use.", - "value": 287313738, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Start of ADAS Properties", - "value": 287313920, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "AUTOMATIC_EMERGENCY_BRAKING_STATE", - "value": 289411073, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "FORWARD_COLLISION_WARNING_ENABLED", - "value": 287313922, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "FORWARD_COLLISION_WARNING_STATE", - "value": 289411075, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "BLIND_SPOT_WARNING_ENABLED", - "value": 287313924, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "BLIND_SPOT_WARNING_STATE", - "value": 339742725, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_DEPARTURE_WARNING_ENABLED", - "value": 287313926, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_DEPARTURE_WARNING_STATE", - "value": 289411079, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_KEEP_ASSIST_ENABLED", - "value": 287313928, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_KEEP_ASSIST_STATE", - "value": 289411081, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_CENTERING_ASSIST_ENABLED", - "value": 287313930, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_CENTERING_ASSIST_COMMAND", - "value": 289411083, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "LaneCenteringAssistCommand" - }, - { - "name": "LANE_CENTERING_ASSIST_STATE", - "value": 289411084, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "EMERGENCY_LANE_KEEP_ASSIST_ENABLED", - "value": 287313933 - }, - { - "name": "EMERGENCY_LANE_KEEP_ASSIST_STATE", - "value": 289411086, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_ENABLED", - "value": 287313935, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "CRUISE_CONTROL_TYPE", - "value": 289411088, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_STATE", - "value": 289411089, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_COMMAND", - "value": 289411090, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "CruiseControlCommand" - }, - { - "name": "CRUISE_CONTROL_TARGET_SPEED", - "value": 291508243, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP", - "value": 289411092, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE", - "value": 289411093, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLIMETER" - }, - { - "name": "HANDS_ON_DETECTION_ENABLED", - "value": 287313942, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HANDS_ON_DETECTION_DRIVER_STATE", - "value": 289411095, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "HANDS_ON_DETECTION_WARNING", - "value": 289411096, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "DiagnosticIntegerSensorIndex", - "values": [ - { - "name": "FUEL_SYSTEM_STATUS", - "value": 0 - }, - { - "name": "MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 1 - }, - { - "name": "IGNITION_MONITORS_SUPPORTED", - "value": 2 - }, - { - "name": "IGNITION_SPECIFIC_MONITORS", - "value": 3 - }, - { - "name": "INTAKE_AIR_TEMPERATURE", - "value": 4 - }, - { - "name": "COMMANDED_SECONDARY_AIR_STATUS", - "value": 5 - }, - { - "name": "NUM_OXYGEN_SENSORS_PRESENT", - "value": 6 - }, - { - "name": "RUNTIME_SINCE_ENGINE_START", - "value": 7 - }, - { - "name": "DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 8 - }, - { - "name": "WARMUPS_SINCE_CODES_CLEARED", - "value": 9 - }, - { - "name": "DISTANCE_TRAVELED_SINCE_CODES_CLEARED", - "value": 10 - }, - { - "name": "ABSOLUTE_BAROMETRIC_PRESSURE", - "value": 11 - }, - { - "name": "CONTROL_MODULE_VOLTAGE", - "value": 12 - }, - { - "name": "AMBIENT_AIR_TEMPERATURE", - "value": 13 - }, - { - "name": "TIME_WITH_MALFUNCTION_LIGHT_ON", - "value": 14 - }, - { - "name": "TIME_SINCE_TROUBLE_CODES_CLEARED", - "value": 15 - }, - { - "name": "MAX_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 16 - }, - { - "name": "MAX_OXYGEN_SENSOR_VOLTAGE", - "value": 17 - }, - { - "name": "MAX_OXYGEN_SENSOR_CURRENT", - "value": 18 - }, - { - "name": "MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 19 - }, - { - "name": "MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR", - "value": 20 - }, - { - "name": "FUEL_TYPE", - "value": 21 - }, - { - "name": "FUEL_RAIL_ABSOLUTE_PRESSURE", - "value": 22 - }, - { - "name": "ENGINE_OIL_TEMPERATURE", - "value": 23 - }, - { - "name": "DRIVER_DEMAND_PERCENT_TORQUE", - "value": 24 - }, - { - "name": "ENGINE_ACTUAL_PERCENT_TORQUE", - "value": 25 - }, - { - "name": "ENGINE_REFERENCE_PERCENT_TORQUE", - "value": 26 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_IDLE", - "value": 27 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT1", - "value": 28 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT2", - "value": 29 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT3", - "value": 30 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT4", - "value": 31 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleUnit", - "values": [ - { - "name": "SHOULD_NOT_USE", - "value": 0 - }, - { - "name": "METER_PER_SEC", - "value": 1 - }, - { - "name": "RPM", - "value": 2 - }, - { - "name": "HERTZ", - "value": 3 - }, - { - "name": "PERCENTILE", - "value": 16 - }, - { - "name": "MILLIMETER", - "value": 32 - }, - { - "name": "METER", - "value": 33 - }, - { - "name": "KILOMETER", - "value": 35 - }, - { - "name": "MILE", - "value": 36 - }, - { - "name": "CELSIUS", - "value": 48 - }, - { - "name": "FAHRENHEIT", - "value": 49 - }, - { - "name": "KELVIN", - "value": 50 - }, - { - "name": "MILLILITER", - "value": 64 - }, - { - "name": "LITER", - "value": 65 - }, - { - "name": "GALLON", - "value": 66 - }, - { - "name": "US_GALLON", - "value": 66 - }, - { - "name": "IMPERIAL_GALLON", - "value": 67 - }, - { - "name": "NANO_SECS", - "value": 80 - }, - { - "name": "MILLI_SECS", - "value": 81 - }, - { - "name": "SECS", - "value": 83 - }, - { - "name": "YEAR", - "value": 89 - }, - { - "name": "WATT_HOUR", - "value": 96 - }, - { - "name": "MILLIAMPERE", - "value": 97 - }, - { - "name": "MILLIVOLT", - "value": 98 - }, - { - "name": "MILLIWATTS", - "value": 99 - }, - { - "name": "AMPERE_HOURS", - "value": 100 - }, - { - "name": "KILOWATT_HOUR", - "value": 101 - }, - { - "name": "AMPERE", - "value": 102 - }, - { - "name": "KILOPASCAL", - "value": 112 - }, - { - "name": "PSI", - "value": 113 - }, - { - "name": "BAR", - "value": 114 - }, - { - "name": "DEGREES", - "value": 128 - }, - { - "name": "MILES_PER_HOUR", - "value": 144 - }, - { - "name": "KILOMETERS_PER_HOUR", - "value": 145 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneCenteringAssistCommand", - "values": [ - { - "name": "ACTIVATE", - "value": 1 - }, - { - "name": "DEACTIVATE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2FuelType", - "values": [ - { - "name": "NOT_AVAILABLE", - "value": 0 - }, - { - "name": "GASOLINE", - "value": 1 - }, - { - "name": "METHANOL", - "value": 2 - }, - { - "name": "ETHANOL", - "value": 3 - }, - { - "name": "DIESEL", - "value": 4 - }, - { - "name": "LPG", - "value": 5 - }, - { - "name": "CNG", - "value": 6 - }, - { - "name": "PROPANE", - "value": 7 - }, - { - "name": "ELECTRIC", - "value": 8 - }, - { - "name": "BIFUEL_RUNNING_GASOLINE", - "value": 9 - }, - { - "name": "BIFUEL_RUNNING_METHANOL", - "value": 10 - }, - { - "name": "BIFUEL_RUNNING_ETHANOL", - "value": 11 - }, - { - "name": "BIFUEL_RUNNING_LPG", - "value": 12 - }, - { - "name": "BIFUEL_RUNNING_CNG", - "value": 13 - }, - { - "name": "BIFUEL_RUNNING_PROPANE", - "value": 14 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC", - "value": 15 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 16 - }, - { - "name": "HYBRID_GASOLINE", - "value": 17 - }, - { - "name": "HYBRID_ETHANOL", - "value": 18 - }, - { - "name": "HYBRID_DIESEL", - "value": 19 - }, - { - "name": "HYBRID_ELECTRIC", - "value": 20 - }, - { - "name": "HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 21 - }, - { - "name": "HYBRID_REGENERATIVE", - "value": 22 - }, - { - "name": "BIFUEL_RUNNING_DIESEL", - "value": 23 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ProcessTerminationReason", - "values": [ - { - "name": "NOT_RESPONDING", - "value": 1 - }, - { - "name": "IO_OVERUSE", - "value": 2 - }, - { - "name": "MEMORY_OVERUSE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageWithLayerAndPublisherIdIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "LAYER_TYPE", - "value": 1 - }, - { - "name": "LAYER_SUBTYPE", - "value": 2 - }, - { - "name": "LAYER_VERSION", - "value": 3 - }, - { - "name": "PUBLISHER_ID", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvChargeState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "CHARGING", - "value": 1 - }, - { - "name": "FULLY_CHARGED", - "value": 2 - }, - { - "name": "NOT_CHARGING", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 - } - ] - } + { + "name": "VehicleProperty", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "VIN of vehicle", + "value": 286261504 + }, + { + "name": "Manufacturer of vehicle", + "value": 286261505 + }, + { + "name": "Model of vehicle", + "value": 286261506 + }, + { + "name": "INFO_MODEL_YEAR", + "value": 289407235 + }, + { + "name": "INFO_FUEL_CAPACITY", + "value": 291504388 + }, + { + "name": "INFO_FUEL_TYPE", + "value": 289472773, + "data_enums": [ + "FuelType" + ], + "data_enum": "FuelType" + }, + { + "name": "INFO_EV_BATTERY_CAPACITY", + "value": 291504390 + }, + { + "name": "INFO_EV_CONNECTOR_TYPE", + "value": 289472775, + "data_enums": [ + "EvConnectorType" + ], + "data_enum": "EvConnectorType" + }, + { + "name": "Fuel door location", + "value": 289407240, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "EV port location", + "value": 289407241, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "INFO_DRIVER_SEAT", + "value": 356516106, + "data_enums": [ + "VehicleAreaSeat" + ], + "data_enum": "VehicleAreaSeat" + }, + { + "name": "INFO_EXTERIOR_DIMENSIONS", + "value": 289472779 + }, + { + "name": "Multiple EV port locations", + "value": 289472780, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "PERF_ODOMETER", + "value": 291504644 + }, + { + "name": "Speed of the vehicle", + "value": 291504647 + }, + { + "name": "PERF_VEHICLE_SPEED_DISPLAY", + "value": 291504648 + }, + { + "name": "PERF_STEERING_ANGLE", + "value": 291504649 + }, + { + "name": "PERF_REAR_STEERING_ANGLE", + "value": 291504656 + }, + { + "name": "Temperature of engine coolant", + "value": 291504897 + }, + { + "name": "Engine oil level", + "value": 289407747, + "data_enums": [ + "VehicleOilLevel" + ], + "data_enum": "VehicleOilLevel" + }, + { + "name": "Temperature of engine oil", + "value": 291504900 + }, + { + "name": "Engine rpm", + "value": 291504901 + }, + { + "name": "Reports wheel ticks", + "value": 290521862 + }, + { + "name": "FUEL_LEVEL", + "value": 291504903 + }, + { + "name": "Fuel door open", + "value": 287310600 + }, + { + "name": "EV_BATTERY_LEVEL", + "value": 291504905 + }, + { + "name": "EV_CURRENT_BATTERY_CAPACITY", + "value": 291504909 + }, + { + "name": "EV charge port open", + "value": 287310602 + }, + { + "name": "EV charge port connected", + "value": 287310603 + }, + { + "name": "EV_BATTERY_INSTANTANEOUS_CHARGE_RATE", + "value": 291504908 + }, + { + "name": "Range remaining", + "value": 291504904 + }, + { + "name": "EV battery average temperature", + "value": 291504910 + }, + { + "name": "Tire pressure", + "value": 392168201 + }, + { + "name": "Critically low tire pressure", + "value": 392168202 + }, + { + "name": "ENGINE_IDLE_AUTO_STOP_ENABLED", + "value": 287310624 + }, + { + "name": "Impact detected.", + "value": 289407792, + "data_enums": [ + "ImpactSensorLocation" + ], + "data_enum": "ImpactSensorLocation" + }, + { + "name": "Currently selected gear", + "value": 289408000, + "data_enums": [ + "VehicleGear" + ], + "data_enum": "VehicleGear" + }, + { + "name": "CURRENT_GEAR", + "value": 289408001, + "data_enums": [ + "VehicleGear" + ], + "data_enum": "VehicleGear" + }, + { + "name": "Parking brake state.", + "value": 287310850 + }, + { + "name": "Auto-apply parking brake.", + "value": 287310851 + }, + { + "name": "EV_BRAKE_REGENERATION_LEVEL", + "value": 289408012 + }, + { + "name": "Warning for fuel low level.", + "value": 287310853 + }, + { + "name": "Night mode", + "value": 287310855 + }, + { + "name": "TURN_SIGNAL_STATE", + "value": 289408008, + "data_enums": [ + "VehicleTurnSignal" + ], + "data_enum": "VehicleTurnSignal" + }, + { + "name": "Represents ignition state", + "value": 289408009, + "data_enums": [ + "VehicleIgnitionState" + ], + "data_enum": "VehicleIgnitionState" + }, + { + "name": "ABS is active", + "value": 287310858 + }, + { + "name": "Traction Control is active", + "value": 287310859 + }, + { + "name": "EV_STOPPING_MODE", + "value": 289408013, + "data_enums": [ + "EvStoppingMode" + ], + "data_enum": "EvStoppingMode" + }, + { + "name": "ELECTRONIC_STABILITY_CONTROL_ENABLED", + "value": 287310862 + }, + { + "name": "ELECTRONIC_STABILITY_CONTROL_STATE", + "value": 289408015, + "data_enums": [ + "ElectronicStabilityControlState", + "ErrorState" + ], + "data_enum": "ElectronicStabilityControlState" + }, + { + "name": "Fan speed setting", + "value": 356517120 + }, + { + "name": "Fan direction setting", + "value": 356517121, + "data_enums": [ + "VehicleHvacFanDirection" + ], + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "HVAC current temperature.", + "value": 358614274 + }, + { + "name": "HVAC, target temperature set.", + "value": 358614275 + }, + { + "name": "HVAC_DEFROSTER", + "value": 320865540 + }, + { + "name": "HVAC_AC_ON", + "value": 354419973 + }, + { + "name": "On\/off max AC", + "value": 354419974 + }, + { + "name": "On\/off max defrost", + "value": 354419975 + }, + { + "name": "Recirculation on\/off", + "value": 354419976 + }, + { + "name": "HVAC_DUAL_ON", + "value": 354419977 + }, + { + "name": "HVAC_AUTO_ON", + "value": 354419978 + }, + { + "name": "Seat heating\/cooling", + "value": 356517131 + }, + { + "name": "Side Mirror Heat", + "value": 339739916 + }, + { + "name": "Steering Wheel Heating\/Cooling", + "value": 289408269 + }, + { + "name": "Temperature units for display", + "value": 289408270, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "Actual fan speed", + "value": 356517135 + }, + { + "name": "HVAC_POWER_ON", + "value": 354419984 + }, + { + "name": "Fan Positions Available", + "value": 356582673, + "data_enums": [ + "VehicleHvacFanDirection" + ], + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "Automatic recirculation on\/off", + "value": 354419986 + }, + { + "name": "Seat ventilation", + "value": 356517139 + }, + { + "name": "Electric defrosters' status", + "value": 320865556 + }, + { + "name": "HVAC_TEMPERATURE_VALUE_SUGGESTION", + "value": 291570965 + }, + { + "name": "Distance units for display", + "value": 289408512, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "Fuel volume units for display", + "value": 289408513, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "TIRE_PRESSURE_DISPLAY_UNITS", + "value": 289408514, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "EV battery units for display", + "value": 289408515, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME", + "value": 287311364 + }, + { + "name": "Speed units for display", + "value": 289408517 + }, + { + "name": "EXTERNAL_CAR_TIME", + "value": 290457096 + }, + { + "name": "ANDROID_EPOCH_TIME", + "value": 290457094 + }, + { + "name": "STORAGE_ENCRYPTION_BINDING_SEED", + "value": 292554247 + }, + { + "name": "Outside temperature", + "value": 291505923 + }, + { + "name": "AP_POWER_STATE_REQ", + "value": 289475072 + }, + { + "name": "AP_POWER_STATE_REPORT", + "value": 289475073 + }, + { + "name": "AP_POWER_BOOTUP_REASON", + "value": 289409538 + }, + { + "name": "DISPLAY_BRIGHTNESS", + "value": 289409539 + }, + { + "name": "PER_DISPLAY_BRIGHTNESS", + "value": 289475076 + }, + { + "name": "Valet mode enabled", + "value": 287312389 + }, + { + "name": "Head up display (HUD) enabled", + "value": 354421254 + }, + { + "name": "HW_KEY_INPUT", + "value": 289475088 + }, + { + "name": "HW_KEY_INPUT_V2", + "value": 367004177 + }, + { + "name": "HW_MOTION_INPUT", + "value": 367004178 + }, + { + "name": "HW_ROTARY_INPUT", + "value": 289475104, + "data_enums": [ + "RotaryInputType" + ], + "data_enum": "RotaryInputType" + }, + { + "name": "HW_CUSTOM_INPUT", + "value": 289475120, + "data_enums": [ + "CustomInputType" + ], + "data_enum": "CustomInputType" + }, + { + "name": "Door position", + "value": 373295872 + }, + { + "name": "Door move", + "value": 373295873 + }, + { + "name": "Door lock", + "value": 371198722 + }, + { + "name": "DOOR_CHILD_LOCK_ENABLED", + "value": 371198723 + }, + { + "name": "Mirror Z Position", + "value": 339741504 + }, + { + "name": "Mirror Z Move", + "value": 339741505 + }, + { + "name": "Mirror Y Position", + "value": 339741506 + }, + { + "name": "Mirror Y Move", + "value": 339741507 + }, + { + "name": "Mirror Lock", + "value": 287312708 + }, + { + "name": "Mirror Fold", + "value": 287312709 + }, + { + "name": "MIRROR_AUTO_FOLD_ENABLED", + "value": 337644358 + }, + { + "name": "MIRROR_AUTO_TILT_ENABLED", + "value": 337644359 + }, + { + "name": "Seat memory select", + "value": 356518784 + }, + { + "name": "Seat memory set", + "value": 356518785 + }, + { + "name": "Seatbelt buckled", + "value": 354421634 + }, + { + "name": "Seatbelt height position", + "value": 356518787 + }, + { + "name": "Seatbelt height move", + "value": 356518788 + }, + { + "name": "Seat fore\/aft position", + "value": 356518789 + }, + { + "name": "Seat fore\/aft move", + "value": 356518790 + }, + { + "name": "Seat backrest angle 1 position", + "value": 356518791 + }, + { + "name": "Seat backrest angle 1 move", + "value": 356518792 + }, + { + "name": "Seat backrest angle 2 position", + "value": 356518793 + }, + { + "name": "Seat backrest angle 2 move", + "value": 356518794 + }, + { + "name": "Seat height position", + "value": 356518795 + }, + { + "name": "Seat height move", + "value": 356518796 + }, + { + "name": "Seat depth position", + "value": 356518797 + }, + { + "name": "Seat depth move", + "value": 356518798 + }, + { + "name": "Seat tilt position", + "value": 356518799 + }, + { + "name": "Seat tilt move", + "value": 356518800 + }, + { + "name": "Lumber fore\/aft position", + "value": 356518801 + }, + { + "name": "Lumbar fore\/aft move", + "value": 356518802 + }, + { + "name": "Lumbar side support position", + "value": 356518803 + }, + { + "name": "Lumbar side support move", + "value": 356518804 + }, + { + "name": "SEAT_HEADREST_HEIGHT_POS", + "value": 289409941 + }, + { + "name": "Headrest height position", + "value": 356518820 + }, + { + "name": "Headrest height move", + "value": 356518806 + }, + { + "name": "Headrest angle position", + "value": 356518807 + }, + { + "name": "Headrest angle move", + "value": 356518808 + }, + { + "name": "Headrest fore\/aft position", + "value": 356518809 + }, + { + "name": "Headrest fore\/aft move", + "value": 356518810 + }, + { + "name": "SEAT_FOOTWELL_LIGHTS_STATE", + "value": 356518811, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "SEAT_FOOTWELL_LIGHTS_SWITCH", + "value": 356518812, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "SEAT_EASY_ACCESS_ENABLED", + "value": 354421661 + }, + { + "name": "SEAT_AIRBAG_ENABLED", + "value": 354421662 + }, + { + "name": "Seat airbags deployed", + "value": 356518821, + "data_enums": [ + "VehicleAirbagLocation" + ], + "data_enum": "VehicleAirbagLocation" + }, + { + "name": "SEAT_CUSHION_SIDE_SUPPORT_POS", + "value": 356518815 + }, + { + "name": "SEAT_CUSHION_SIDE_SUPPORT_MOVE", + "value": 356518816 + }, + { + "name": "SEAT_LUMBAR_VERTICAL_POS", + "value": 356518817 + }, + { + "name": "SEAT_LUMBAR_VERTICAL_MOVE", + "value": 356518818 + }, + { + "name": "SEAT_WALK_IN_POS", + "value": 356518819 + }, + { + "name": "SEAT_BELT_PRETENSIONER_DEPLOYED", + "value": 354421670 + }, + { + "name": "Seat Occupancy", + "value": 356518832, + "data_enums": [ + "VehicleSeatOccupancyState" + ], + "data_enum": "VehicleSeatOccupancyState" + }, + { + "name": "Window Position", + "value": 322964416 + }, + { + "name": "Window Move", + "value": 322964417 + }, + { + "name": "Window Lock", + "value": 320867268 + }, + { + "name": "WINDSHIELD_WIPERS_PERIOD", + "value": 322964421 + }, + { + "name": "Windshield wipers state.", + "value": 322964422, + "data_enums": [ + "WindshieldWipersState" + ], + "data_enum": "WindshieldWipersState" + }, + { + "name": "Windshield wipers switch.", + "value": 322964423, + "data_enums": [ + "WindshieldWipersSwitch" + ], + "data_enum": "WindshieldWipersSwitch" + }, + { + "name": "Steering wheel depth position", + "value": 289410016 + }, + { + "name": "Steering wheel depth movement", + "value": 289410017 + }, + { + "name": "Steering wheel height position", + "value": 289410018 + }, + { + "name": "Steering wheel height movement", + "value": 289410019 + }, + { + "name": "STEERING_WHEEL_THEFT_LOCK_ENABLED", + "value": 287312868 + }, + { + "name": "Steering wheel locked", + "value": 287312869 + }, + { + "name": "STEERING_WHEEL_EASY_ACCESS_ENABLED", + "value": 287312870 + }, + { + "name": "GLOVE_BOX_DOOR_POS", + "value": 356518896 + }, + { + "name": "Lock or unlock the glove box.", + "value": 354421745 + }, + { + "name": "VEHICLE_MAP_SERVICE", + "value": 299895808 + }, + { + "name": "LOCATION_CHARACTERIZATION", + "value": 289410064 + }, + { + "name": "ULTRASONICS_SENSOR_POSITION", + "value": 406916128 + }, + { + "name": "ULTRASONICS_SENSOR_ORIENTATION", + "value": 409013281 + }, + { + "name": "ULTRASONICS_SENSOR_FIELD_OF_VIEW", + "value": 406916130 + }, + { + "name": "ULTRASONICS_SENSOR_DETECTION_RANGE", + "value": 406916131 + }, + { + "name": "ULTRASONICS_SENSOR_SUPPORTED_RANGES", + "value": 406916132 + }, + { + "name": "ULTRASONICS_SENSOR_MEASURED_DISTANCE", + "value": 406916133 + }, + { + "name": "OBD2 Live Sensor Data", + "value": 299896064 + }, + { + "name": "OBD2 Freeze Frame Sensor Data", + "value": 299896065 + }, + { + "name": "OBD2 Freeze Frame Information", + "value": 299896066 + }, + { + "name": "OBD2 Freeze Frame Clear", + "value": 299896067 + }, + { + "name": "Headlights State", + "value": 289410560, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "High beam lights state", + "value": 289410561, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Fog light state", + "value": 289410562, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Hazard light status", + "value": 289410563, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Headlight switch", + "value": 289410576, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "High beam light switch", + "value": 289410577, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Fog light switch", + "value": 289410578, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Hazard light switch", + "value": 289410579, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Cabin lights", + "value": 289410817, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Cabin lights switch", + "value": 289410818, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Reading lights", + "value": 356519683, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Reading lights switch", + "value": 356519684, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Steering wheel lights state", + "value": 289410828, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Steering wheel lights switch", + "value": 289410829, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "SUPPORT_CUSTOMIZE_VENDOR_PERMISSION", + "value": 287313669 + }, + { + "name": "DISABLED_OPTIONAL_FEATURES", + "value": 286265094 + }, + { + "name": "INITIAL_USER_INFO", + "value": 299896583 + }, + { + "name": "SWITCH_USER", + "value": 299896584 + }, + { + "name": "CREATE_USER", + "value": 299896585 + }, + { + "name": "REMOVE_USER", + "value": 299896586 + }, + { + "name": "USER_IDENTIFICATION_ASSOCIATION", + "value": 299896587 + }, + { + "name": "Enable\/request an EVS service.", + "value": 289476368 + }, + { + "name": "POWER_POLICY_REQ", + "value": 286265121 + }, + { + "name": "POWER_POLICY_GROUP_REQ", + "value": 286265122 + }, + { + "name": "CURRENT_POWER_POLICY", + "value": 286265123 + }, + { + "name": "WATCHDOG_ALIVE", + "value": 290459441 + }, + { + "name": "WATCHDOG_TERMINATED_PROCESS", + "value": 299896626 + }, + { + "name": "VHAL_HEARTBEAT", + "value": 290459443 + }, + { + "name": "CLUSTER_SWITCH_UI", + "value": 289410868 + }, + { + "name": "CLUSTER_DISPLAY_STATE", + "value": 289476405 + }, + { + "name": "CLUSTER_REPORT_STATE", + "value": 299896630 + }, + { + "name": "CLUSTER_REQUEST_DISPLAY", + "value": 289410871 + }, + { + "name": "CLUSTER_NAVIGATION_STATE", + "value": 292556600 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", + "value": 289410873, + "data_enums": [ + "ElectronicTollCollectionCardType" + ], + "data_enum": "ElectronicTollCollectionCardType" + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_STATUS", + "value": 289410874, + "data_enums": [ + "ElectronicTollCollectionCardStatus" + ], + "data_enum": "ElectronicTollCollectionCardStatus" + }, + { + "name": "Front fog lights state", + "value": 289410875, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Front fog lights switch", + "value": 289410876, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Rear fog lights state", + "value": 289410877, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Rear fog lights switch", + "value": 289410878, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "EV_CHARGE_CURRENT_DRAW_LIMIT", + "value": 291508031 + }, + { + "name": "EV_CHARGE_PERCENT_LIMIT", + "value": 291508032 + }, + { + "name": "Charging state of the car", + "value": 289410881, + "data_enums": [ + "EvChargeState" + ], + "data_enum": "EvChargeState" + }, + { + "name": "EV_CHARGE_SWITCH", + "value": 287313730 + }, + { + "name": "EV_CHARGE_TIME_REMAINING", + "value": 289410883 + }, + { + "name": "EV_REGENERATIVE_BRAKING_STATE", + "value": 289410884, + "data_enums": [ + "EvRegenerativeBrakingState" + ], + "data_enum": "EvRegenerativeBrakingState" + }, + { + "name": "TRAILER_PRESENT", + "value": 289410885, + "data_enums": [ + "TrailerState" + ], + "data_enum": "TrailerState" + }, + { + "name": "Vehicle’s curb weight", + "value": 289410886 + }, + { + "name": "GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", + "value": 289410887, + "data_enums": [ + "GsrComplianceRequirementType" + ], + "data_enum": "GsrComplianceRequirementType" + }, + { + "name": "SUPPORTED_PROPERTY_IDS", + "value": 289476424 + }, + { + "name": "SHUTDOWN_REQUEST", + "value": 289410889, + "data_enums": [ + "VehicleApPowerStateShutdownParam" + ], + "data_enum": "VehicleApPowerStateShutdownParam" + }, + { + "name": "VEHICLE_IN_USE", + "value": 287313738 + }, + { + "name": "CLUSTER_HEARTBEAT", + "value": 299896651 + }, + { + "name": "VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL", + "value": 289410892, + "data_enums": [ + "VehicleAutonomousState" + ], + "data_enum": "VehicleAutonomousState" + }, + { + "name": "AUTOMATIC_EMERGENCY_BRAKING_ENABLED", + "value": 287313920 + }, + { + "name": "AUTOMATIC_EMERGENCY_BRAKING_STATE", + "value": 289411073, + "data_enums": [ + "AutomaticEmergencyBrakingState", + "ErrorState" + ], + "data_enum": "AutomaticEmergencyBrakingState" + }, + { + "name": "FORWARD_COLLISION_WARNING_ENABLED", + "value": 287313922 + }, + { + "name": "FORWARD_COLLISION_WARNING_STATE", + "value": 289411075, + "data_enums": [ + "ForwardCollisionWarningState", + "ErrorState" + ], + "data_enum": "ForwardCollisionWarningState" + }, + { + "name": "BLIND_SPOT_WARNING_ENABLED", + "value": 287313924 + }, + { + "name": "BLIND_SPOT_WARNING_STATE", + "value": 339742725, + "data_enums": [ + "BlindSpotWarningState", + "ErrorState" + ], + "data_enum": "BlindSpotWarningState" + }, + { + "name": "LANE_DEPARTURE_WARNING_ENABLED", + "value": 287313926 + }, + { + "name": "LANE_DEPARTURE_WARNING_STATE", + "value": 289411079, + "data_enums": [ + "LaneDepartureWarningState", + "ErrorState" + ], + "data_enum": "LaneDepartureWarningState" + }, + { + "name": "LANE_KEEP_ASSIST_ENABLED", + "value": 287313928 + }, + { + "name": "Lane Keep Assist (LKA) state.", + "value": 289411081, + "data_enums": [ + "LaneKeepAssistState", + "ErrorState" + ], + "data_enum": "LaneKeepAssistState" + }, + { + "name": "LANE_CENTERING_ASSIST_ENABLED", + "value": 287313930 + }, + { + "name": "LANE_CENTERING_ASSIST_COMMAND", + "value": 289411083, + "data_enums": [ + "LaneCenteringAssistCommand" + ], + "data_enum": "LaneCenteringAssistCommand" + }, + { + "name": "LANE_CENTERING_ASSIST_STATE", + "value": 289411084, + "data_enums": [ + "LaneCenteringAssistState", + "ErrorState" + ], + "data_enum": "LaneCenteringAssistState" + }, + { + "name": "EMERGENCY_LANE_KEEP_ASSIST_ENABLED", + "value": 287313933 + }, + { + "name": "EMERGENCY_LANE_KEEP_ASSIST_STATE", + "value": 289411086, + "data_enums": [ + "EmergencyLaneKeepAssistState", + "ErrorState" + ], + "data_enum": "EmergencyLaneKeepAssistState" + }, + { + "name": "CRUISE_CONTROL_ENABLED", + "value": 287313935 + }, + { + "name": "CRUISE_CONTROL_TYPE", + "value": 289411088, + "data_enums": [ + "CruiseControlType", + "ErrorState" + ], + "data_enum": "CruiseControlType" + }, + { + "name": "CRUISE_CONTROL_STATE", + "value": 289411089, + "data_enums": [ + "CruiseControlState", + "ErrorState" + ], + "data_enum": "CruiseControlState" + }, + { + "name": "CRUISE_CONTROL_COMMAND", + "value": 289411090, + "data_enums": [ + "CruiseControlCommand" + ], + "data_enum": "CruiseControlCommand" + }, + { + "name": "CRUISE_CONTROL_TARGET_SPEED", + "value": 291508243 + }, + { + "name": "ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP", + "value": 289411092 + }, + { + "name": "ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE", + "value": 289411093 + }, + { + "name": "HANDS_ON_DETECTION_ENABLED", + "value": 287313942 + }, + { + "name": "HANDS_ON_DETECTION_DRIVER_STATE", + "value": 289411095, + "data_enums": [ + "HandsOnDetectionDriverState", + "ErrorState" + ], + "data_enum": "HandsOnDetectionDriverState" + }, + { + "name": "HANDS_ON_DETECTION_WARNING", + "value": 289411096, + "data_enums": [ + "HandsOnDetectionWarning", + "ErrorState" + ], + "data_enum": "HandsOnDetectionWarning" + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED", + "value": 287313945 + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_STATE", + "value": 289411098, + "data_enums": [ + "DriverDrowsinessAttentionState", + "ErrorState" + ], + "data_enum": "DriverDrowsinessAttentionState" + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED", + "value": 287313947 + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_WARNING", + "value": 289411100, + "data_enums": [ + "DriverDrowsinessAttentionWarning", + "ErrorState" + ], + "data_enum": "DriverDrowsinessAttentionWarning" + }, + { + "name": "DRIVER_DISTRACTION_SYSTEM_ENABLED", + "value": 287313949 + }, + { + "name": "Driver distraction state.", + "value": 289411102, + "data_enums": [ + "DriverDistractionState", + "ErrorState" + ], + "data_enum": "DriverDistractionState" + }, + { + "name": "DRIVER_DISTRACTION_WARNING_ENABLED", + "value": 287313951 + }, + { + "name": "Driver distraction warning.", + "value": 289411104, + "data_enums": [ + "DriverDistractionWarning", + "ErrorState" + ], + "data_enum": "DriverDistractionWarning" + }, + { + "name": "LOW_SPEED_COLLISION_WARNING_ENABLED", + "value": 287313953 + }, + { + "name": "LOW_SPEED_COLLISION_WARNING_STATE", + "value": 289411106, + "data_enums": [ + "LowSpeedCollisionWarningState", + "ErrorState" + ], + "data_enum": "LowSpeedCollisionWarningState" + }, + { + "name": "CROSS_TRAFFIC_MONITORING_ENABLED", + "value": 287313955 + }, + { + "name": "CROSS_TRAFFIC_MONITORING_WARNING_STATE", + "value": 289411108, + "data_enums": [ + "CrossTrafficMonitoringWarningState", + "ErrorState" + ], + "data_enum": "CrossTrafficMonitoringWarningState" + }, + { + "name": "LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED", + "value": 287313957 + }, + { + "name": "LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE", + "value": 289411110, + "data_enums": [ + "LowSpeedAutomaticEmergencyBrakingState", + "ErrorState" + ], + "data_enum": "LowSpeedAutomaticEmergencyBrakingState" + } + ] + }, + { + "name": "LaneDepartureWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING_LEFT", + "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + } + ] + }, + { + "name": "HandsOnDetectionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "DriverDistractionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NOT_DISTRACTED", + "value": 1 + }, + { + "name": "DISTRACTED", + "value": 2 + } + ] + }, + { + "name": "VehicleTurnSignal", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "NONE", + "value": 0 + }, + { + "name": "RIGHT", + "value": 1 + }, + { + "name": "LEFT", + "value": 2 + } + ] + }, + { + "name": "RotaryInputType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", + "value": 0 + }, + { + "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", + "value": 1 + } + ] + }, + { + "name": "EvStoppingMode", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "CREEP", + "value": 1 + }, + { + "name": "ROLL", + "value": 2 + }, + { + "name": "HOLD", + "value": 3 + } + ] + }, + { + "name": "VehicleLightState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + } + ] + }, + { + "name": "FuelType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "FUEL_TYPE_UNKNOWN", + "value": 0 + }, + { + "name": "FUEL_TYPE_UNLEADED", + "value": 1 + }, + { + "name": "FUEL_TYPE_LEADED", + "value": 2 + }, + { + "name": "FUEL_TYPE_DIESEL_1", + "value": 3 + }, + { + "name": "FUEL_TYPE_DIESEL_2", + "value": 4 + }, + { + "name": "FUEL_TYPE_BIODIESEL", + "value": 5 + }, + { + "name": "FUEL_TYPE_E85", + "value": 6 + }, + { + "name": "FUEL_TYPE_LPG", + "value": 7 + }, + { + "name": "FUEL_TYPE_CNG", + "value": 8 + }, + { + "name": "FUEL_TYPE_LNG", + "value": 9 + }, + { + "name": "FUEL_TYPE_ELECTRIC", + "value": 10 + }, + { + "name": "FUEL_TYPE_HYDROGEN", + "value": 11 + }, + { + "name": "FUEL_TYPE_OTHER", + "value": 12 + } + ] + }, + { + "name": "VehicleIgnitionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNDEFINED", + "value": 0 + }, + { + "name": "LOCK", + "value": 1 + }, + { + "name": "OFF", + "value": 2 + }, + { + "name": "ACC", + "value": 3 + }, + { + "name": "ON", + "value": 4 + }, + { + "name": "START", + "value": 5 + } + ] + }, + { + "name": "EvConnectorType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "IEC_TYPE_1_AC", + "value": 1 + }, + { + "name": "IEC_TYPE_2_AC", + "value": 2 + }, + { + "name": "IEC_TYPE_3_AC", + "value": 3 + }, + { + "name": "IEC_TYPE_4_DC", + "value": 4 + }, + { + "name": "IEC_TYPE_1_CCS_DC", + "value": 5 + }, + { + "name": "IEC_TYPE_2_CCS_DC", + "value": 6 + }, + { + "name": "TESLA_ROADSTER", + "value": 7 + }, + { + "name": "TESLA_HPWC", + "value": 8 + }, + { + "name": "TESLA_SUPERCHARGER", + "value": 9 + }, + { + "name": "GBT_AC", + "value": 10 + }, + { + "name": "GBT_DC", + "value": 11 + }, + { + "name": "OTHER", + "value": 101 + } + ] + }, + { + "name": "TrailerState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "NOT_PRESENT", + "value": 1 + }, + { + "name": "PRESENT", + "value": 2 + }, + { + "name": "ERROR", + "value": 3 + } + ] + }, + { + "name": "DriverDrowsinessAttentionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "KSS_RATING_1_EXTREMELY_ALERT", + "value": 1 + }, + { + "name": "KSS_RATING_2_VERY_ALERT", + "value": 2 + }, + { + "name": "KSS_RATING_3_ALERT", + "value": 3 + }, + { + "name": "KSS_RATING_4_RATHER_ALERT", + "value": 4 + }, + { + "name": "KSS_RATING_5_NEITHER_ALERT_NOR_SLEEPY", + "value": 5 + }, + { + "name": "KSS_RATING_6_SOME_SLEEPINESS", + "value": 6 + }, + { + "name": "KSS_RATING_7_SLEEPY_NO_EFFORT", + "value": 7 + }, + { + "name": "KSS_RATING_8_SLEEPY_SOME_EFFORT", + "value": 8 + }, + { + "name": "KSS_RATING_9_VERY_SLEEPY", + "value": 9 + } + ] + }, + { + "name": "DriverDistractionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleAreaSeat", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "ROW_1_LEFT", + "value": 1 + }, + { + "name": "ROW_1_CENTER", + "value": 2 + }, + { + "name": "ROW_1_RIGHT", + "value": 4 + }, + { + "name": "ROW_2_LEFT", + "value": 16 + }, + { + "name": "ROW_2_CENTER", + "value": 32 + }, + { + "name": "ROW_2_RIGHT", + "value": 64 + }, + { + "name": "ROW_3_LEFT", + "value": 256 + }, + { + "name": "ROW_3_CENTER", + "value": 512 + }, + { + "name": "ROW_3_RIGHT", + "value": 1024 + } + ] + }, + { + "name": "VehicleLightSwitch", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + }, + { + "name": "AUTOMATIC", + "value": 256 + } + ] + }, + { + "name": "WindshieldWipersSwitch", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "OFF", + "value": 1 + }, + { + "name": "MIST", + "value": 2 + }, + { + "name": "INTERMITTENT_LEVEL_1", + "value": 3 + }, + { + "name": "INTERMITTENT_LEVEL_2", + "value": 4 + }, + { + "name": "INTERMITTENT_LEVEL_3", + "value": 5 + }, + { + "name": "INTERMITTENT_LEVEL_4", + "value": 6 + }, + { + "name": "INTERMITTENT_LEVEL_5", + "value": 7 + }, + { + "name": "CONTINUOUS_LEVEL_1", + "value": 8 + }, + { + "name": "CONTINUOUS_LEVEL_2", + "value": 9 + }, + { + "name": "CONTINUOUS_LEVEL_3", + "value": 10 + }, + { + "name": "CONTINUOUS_LEVEL_4", + "value": 11 + }, + { + "name": "CONTINUOUS_LEVEL_5", + "value": 12 + }, + { + "name": "AUTO", + "value": 13 + }, + { + "name": "SERVICE", + "value": 14 + } + ] + }, + { + "name": "CrossTrafficMonitoringWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING_FRONT_LEFT", + "value": 2 + }, + { + "name": "WARNING_FRONT_RIGHT", + "value": 3 + }, + { + "name": "WARNING_FRONT_BOTH", + "value": 4 + }, + { + "name": "WARNING_REAR_LEFT", + "value": 5 + }, + { + "name": "WARNING_REAR_RIGHT", + "value": 6 + }, + { + "name": "WARNING_REAR_BOTH", + "value": 7 + } + ] + }, + { + "name": "LaneCenteringAssistCommand", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ACTIVATE", + "value": 1 + }, + { + "name": "DEACTIVATE", + "value": 2 + } + ] + }, + { + "name": "VehicleSeatOccupancyState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "VACANT", + "value": 1 + }, + { + "name": "OCCUPIED", + "value": 2 + } + ] + }, + { + "name": "ErrorState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER_ERROR_STATE", + "value": -1 + }, + { + "name": "NOT_AVAILABLE_DISABLED", + "value": -2 + }, + { + "name": "NOT_AVAILABLE_SPEED_LOW", + "value": -3 + }, + { + "name": "NOT_AVAILABLE_SPEED_HIGH", + "value": -4 + }, + { + "name": "NOT_AVAILABLE_POOR_VISIBILITY", + "value": -5 + }, + { + "name": "NOT_AVAILABLE_SAFETY", + "value": -6 + } + ] + }, + { + "name": "BlindSpotWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "WindshieldWipersState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "OFF", + "value": 1 + }, + { + "name": "ON", + "value": 2 + }, + { + "name": "SERVICE", + "value": 3 + } + ] + }, + { + "name": "VehicleAirbagLocation", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 1 + }, + { + "name": "FRONT", + "value": 2 + }, + { + "name": "KNEE", + "value": 4 + }, + { + "name": "LEFT_SIDE", + "value": 8 + }, + { + "name": "RIGHT_SIDE", + "value": 16 + }, + { + "name": "CURTAIN", + "value": 32 + } + ] + }, + { + "name": "DriverDrowsinessAttentionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleOilLevel", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "CRITICALLY_LOW", + "value": 0 + }, + { + "name": "LOW", + "value": 1 + }, + { + "name": "NORMAL", + "value": 2 + }, + { + "name": "HIGH", + "value": 3 + }, + { + "name": "ERROR", + "value": 4 + } + ] + }, + { + "name": "ForwardCollisionWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleUnit", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "SHOULD_NOT_USE", + "value": 0 + }, + { + "name": "METER_PER_SEC", + "value": 1 + }, + { + "name": "RPM", + "value": 2 + }, + { + "name": "HERTZ", + "value": 3 + }, + { + "name": "PERCENTILE", + "value": 16 + }, + { + "name": "MILLIMETER", + "value": 32 + }, + { + "name": "METER", + "value": 33 + }, + { + "name": "KILOMETER", + "value": 35 + }, + { + "name": "MILE", + "value": 36 + }, + { + "name": "CELSIUS", + "value": 48 + }, + { + "name": "FAHRENHEIT", + "value": 49 + }, + { + "name": "KELVIN", + "value": 50 + }, + { + "name": "MILLILITER", + "value": 64 + }, + { + "name": "LITER", + "value": 65 + }, + { + "name": "GALLON", + "value": 66 + }, + { + "name": "US_GALLON", + "value": 66 + }, + { + "name": "IMPERIAL_GALLON", + "value": 67 + }, + { + "name": "NANO_SECS", + "value": 80 + }, + { + "name": "MILLI_SECS", + "value": 81 + }, + { + "name": "SECS", + "value": 83 + }, + { + "name": "YEAR", + "value": 89 + }, + { + "name": "WATT_HOUR", + "value": 96 + }, + { + "name": "MILLIAMPERE", + "value": 97 + }, + { + "name": "MILLIVOLT", + "value": 98 + }, + { + "name": "MILLIWATTS", + "value": 99 + }, + { + "name": "AMPERE_HOURS", + "value": 100 + }, + { + "name": "KILOWATT_HOUR", + "value": 101 + }, + { + "name": "AMPERE", + "value": 102 + }, + { + "name": "KILOPASCAL", + "value": 112 + }, + { + "name": "PSI", + "value": 113 + }, + { + "name": "BAR", + "value": 114 + }, + { + "name": "DEGREES", + "value": 128 + }, + { + "name": "MILES_PER_HOUR", + "value": 144 + }, + { + "name": "KILOMETERS_PER_HOUR", + "value": 145 + } + ] + }, + { + "name": "VehicleHvacFanDirection", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "FACE", + "value": 1 + }, + { + "name": "FLOOR", + "value": 2 + }, + { + "name": "FACE_AND_FLOOR", + "value": 3 + }, + { + "name": "DEFROST", + "value": 4 + }, + { + "name": "DEFROST_AND_FLOOR", + "value": 6 + } + ] + }, + { + "name": "LowSpeedCollisionWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "CruiseControlCommand", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ACTIVATE", + "value": 1 + }, + { + "name": "SUSPEND", + "value": 2 + }, + { + "name": "INCREASE_TARGET_SPEED", + "value": 3 + }, + { + "name": "DECREASE_TARGET_SPEED", + "value": 4 + }, + { + "name": "INCREASE_TARGET_TIME_GAP", + "value": 5 + }, + { + "name": "DECREASE_TARGET_TIME_GAP", + "value": 6 + } + ] + }, + { + "name": "ElectronicStabilityControlState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + } + ] + }, + { + "name": "EvRegenerativeBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "DISABLED", + "value": 1 + }, + { + "name": "PARTIALLY_ENABLED", + "value": 2 + }, + { + "name": "FULLY_ENABLED", + "value": 3 + } + ] + }, + { + "name": "LowSpeedAutomaticEmergencyBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + } + ] + }, + { + "name": "LaneCenteringAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATION_REQUESTED", + "value": 2 + }, + { + "name": "ACTIVATED", + "value": 3 + }, + { + "name": "USER_OVERRIDE", + "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + }, + { + "name": "VehicleGear", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "GEAR_UNKNOWN", + "value": 0 + }, + { + "name": "GEAR_NEUTRAL", + "value": 1 + }, + { + "name": "GEAR_REVERSE", + "value": 2 + }, + { + "name": "GEAR_PARK", + "value": 4 + }, + { + "name": "GEAR_DRIVE", + "value": 8 + }, + { + "name": "GEAR_1", + "value": 16 + }, + { + "name": "GEAR_2", + "value": 32 + }, + { + "name": "GEAR_3", + "value": 64 + }, + { + "name": "GEAR_4", + "value": 128 + }, + { + "name": "GEAR_5", + "value": 256 + }, + { + "name": "GEAR_6", + "value": 512 + }, + { + "name": "GEAR_7", + "value": 1024 + }, + { + "name": "GEAR_8", + "value": 2048 + }, + { + "name": "GEAR_9", + "value": 4096 + } + ] + }, + { + "name": "ElectronicTollCollectionCardType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", + "value": 1 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", + "value": 2 + } + ] + }, + { + "name": "VehicleApPowerStateShutdownParam", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "SHUTDOWN_IMMEDIATELY", + "value": 1 + }, + { + "name": "CAN_SLEEP", + "value": 2 + }, + { + "name": "SHUTDOWN_ONLY", + "value": 3 + }, + { + "name": "SLEEP_IMMEDIATELY", + "value": 4 + }, + { + "name": "HIBERNATE_IMMEDIATELY", + "value": 5 + }, + { + "name": "CAN_HIBERNATE", + "value": 6 + }, + { + "name": "EMERGENCY_SHUTDOWN", + "value": 7 + } + ] + }, + { + "name": "AutomaticEmergencyBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + } + ] + }, + { + "name": "ImpactSensorLocation", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 1 + }, + { + "name": "FRONT", + "value": 2 + }, + { + "name": "FRONT_LEFT_DOOR_SIDE", + "value": 4 + }, + { + "name": "FRONT_RIGHT_DOOR_SIDE", + "value": 8 + }, + { + "name": "REAR_LEFT_DOOR_SIDE", + "value": 16 + }, + { + "name": "REAR_RIGHT_DOOR_SIDE", + "value": 32 + }, + { + "name": "REAR", + "value": 64 + } + ] + }, + { + "name": "CruiseControlType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "STANDARD", + "value": 1 + }, + { + "name": "ADAPTIVE", + "value": 2 + }, + { + "name": "PREDICTIVE", + "value": 3 + } + ] + }, + { + "name": "LaneKeepAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 2 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 3 + }, + { + "name": "USER_OVERRIDE", + "value": 4 + } + ] + }, + { + "name": "CustomInputType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "CUSTOM_EVENT_F1", + "value": 1001 + }, + { + "name": "CUSTOM_EVENT_F2", + "value": 1002 + }, + { + "name": "CUSTOM_EVENT_F3", + "value": 1003 + }, + { + "name": "CUSTOM_EVENT_F4", + "value": 1004 + }, + { + "name": "CUSTOM_EVENT_F5", + "value": 1005 + }, + { + "name": "CUSTOM_EVENT_F6", + "value": 1006 + }, + { + "name": "CUSTOM_EVENT_F7", + "value": 1007 + }, + { + "name": "CUSTOM_EVENT_F8", + "value": 1008 + }, + { + "name": "CUSTOM_EVENT_F9", + "value": 1009 + }, + { + "name": "CUSTOM_EVENT_F10", + "value": 1010 + } + ] + }, + { + "name": "ElectronicTollCollectionCardStatus", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", + "value": 1 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", + "value": 2 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", + "value": 3 + } + ] + }, + { + "name": "HandsOnDetectionDriverState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "HANDS_ON", + "value": 1 + }, + { + "name": "HANDS_OFF", + "value": 2 + } + ] + }, + { + "name": "EmergencyLaneKeepAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "WARNING_LEFT", + "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 4 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 5 + }, + { + "name": "USER_OVERRIDE", + "value": 6 + } + ] + }, + { + "name": "VehicleAutonomousState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "LEVEL_0", + "value": 0 + }, + { + "name": "LEVEL_1", + "value": 1 + }, + { + "name": "LEVEL_2", + "value": 2 + }, + { + "name": "LEVEL_3", + "value": 3 + }, + { + "name": "LEVEL_4", + "value": 4 + }, + { + "name": "LEVEL_5", + "value": 5 + } + ] + }, + { + "name": "EvChargeState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "CHARGING", + "value": 1 + }, + { + "name": "FULLY_CHARGED", + "value": 2 + }, + { + "name": "NOT_CHARGING", + "value": 3 + }, + { + "name": "ERROR", + "value": 4 + } + ] + }, + { + "name": "GsrComplianceRequirementType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "GSR_COMPLIANCE_NOT_REQUIRED", + "value": 0 + }, + { + "name": "GSR_COMPLIANCE_REQUIRED_V1", + "value": 1 + } + ] + }, + { + "name": "PortLocationType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "FRONT_LEFT", + "value": 1 + }, + { + "name": "FRONT_RIGHT", + "value": 2 + }, + { + "name": "REAR_RIGHT", + "value": 3 + }, + { + "name": "REAR_LEFT", + "value": 4 + }, + { + "name": "FRONT", + "value": 5 + }, + { + "name": "REAR", + "value": 6 + } + ] + }, + { + "name": "CruiseControlState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + }, + { + "name": "SUSPENDED", + "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + } ] \ No newline at end of file diff --git a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py b/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py deleted file mode 100755 index 5706571fb3..0000000000 --- a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/python3 - -# -# Script for generation of VHAL properties metadata .json from AIDL interface -# -# This metadata is used to display human property names, names of enum -# data types for their values, change and access modes and other information, -# available from AIDL block comments, but not at runtime. -# -# Usage example: -# ./emu_metadata/generate_emulator_metadata.py android/hardware/automotive/vehicle $OUT/android.hardware.automotive.vehicle-types-meta.json -# (Note, that the resulting file has to match a '*types-meta.json' pattern to be parsed by the emulator). -# - -import json -import os -import re -import sys - -from pathlib import Path - -RE_PACKAGE = re.compile(r"\npackage\s([\.a-z0-9]*);") -RE_IMPORT = re.compile(r"\nimport\s([\.a-zA-Z0-9]*);") -RE_ENUM = re.compile(r"\s*enum\s+(\w*) {\n(.*)}", re.MULTILINE | re.DOTALL) -RE_COMMENT = re.compile(r"(?:(?:\/\*\*)((?:.|\n)*?)(?:\*\/))?(?:\n|^)\s*(\w*)(?:\s+=\s*)?((?:[\.\-a-zA-Z0-9]|\s|\+|)*),", - re.DOTALL) -RE_BLOCK_COMMENT_TITLE = re.compile("^(?:\s|\*)*((?:\w|\s|\.)*)\n(?:\s|\*)*(?:\n|$)") -RE_BLOCK_COMMENT_ANNOTATION = re.compile("^(?:\s|\*)*@(\w*)\s+((?:[\w:\.])*)", re.MULTILINE) -RE_HEX_NUMBER = re.compile("([\.\-0-9A-Za-z]+)") - - -class JEnum: - def __init__(self, package, name): - self.package = package - self.name = name - self.values = [] - -class Enum: - def __init__(self, package, name, text, imports): - self.text = text - self.parsed = False - self.imports = imports - self.jenum = JEnum(package, name) - - def parse(self, enums): - if self.parsed: - return - for dep in self.imports: - enums[dep].parse(enums) - print("Parsing " + self.jenum.name) - matches = RE_COMMENT.findall(self.text) - defaultValue = 0 - for match in matches: - value = dict() - value['name'] = match[1] - value['value'] = self.calculateValue(match[2], defaultValue, enums) - defaultValue = value['value'] + 1 - if self.jenum.name == "VehicleProperty": - block_comment = match[0] - self.parseBlockComment(value, block_comment) - self.jenum.values.append(value) - self.parsed = True - self.text = None - - def get_value(self, value_name): - for value in self.jenum.values: - if value['name'] == value_name: - return value['value'] - raise Exception("Cannot decode value: " + self.jenum.package + " : " + value_name) - - def calculateValue(self, expression, default_value, enums): - numbers = RE_HEX_NUMBER.findall(expression) - if len(numbers) == 0: - return default_value - result = 0 - base = 10 - if numbers[0].lower().startswith("0x"): - base = 16 - for number in numbers: - if '.' in number: - package, val_name = number.split('.') - for dep in self.imports: - if package in dep: - result += enums[dep].get_value(val_name) - else: - result += int(number, base) - return result - - def parseBlockComment(self, value, blockComment): - titles = RE_BLOCK_COMMENT_TITLE.findall(blockComment) - for title in titles: - value['name'] = title - break - annots_res = RE_BLOCK_COMMENT_ANNOTATION.findall(blockComment) - for annot in annots_res: - value[annot[0]] = annot[1].replace(".", ":") - -class Converter: - # Only addition is supported for now, but that covers all existing properties except - # OBD diagnostics, which use bitwise shifts - def convert(self, input): - text = Path(input).read_text() - matches = RE_ENUM.findall(text) - package = RE_PACKAGE.findall(text)[0] - imports = RE_IMPORT.findall(text) - enums = [] - for match in matches: - enum = Enum(package, match[0], match[1], imports) - enums.append(enum) - return enums - - -def main(): - if (len(sys.argv) != 3): - print("Usage: ", sys.argv[0], " INPUT_PATH OUTPUT") - sys.exit(1) - aidl_path = sys.argv[1] - out_path = sys.argv[2] - enums_dict = dict() - for file in os.listdir(aidl_path): - enums = Converter().convert(os.path.join(aidl_path, file)) - for enum in enums: - enums_dict[enum.jenum.package + "." + enum.jenum.name] = enum - - result = [] - for enum_name, enum in enums_dict.items(): - enum.parse(enums_dict) - result.append(enum.jenum.__dict__) - - json_result = json.dumps(result, default=None, indent=2) - with open(out_path, 'w') as f: - f.write(json_result) - - -if __name__ == "__main__": - main() diff --git a/automotive/vehicle/aidl/impl/vhal/Android.bp b/automotive/vehicle/aidl/impl/vhal/Android.bp index 20bba7fe10..aa30f807d9 100644 --- a/automotive/vehicle/aidl/impl/vhal/Android.bp +++ b/automotive/vehicle/aidl/impl/vhal/Android.bp @@ -55,6 +55,10 @@ cc_library { "src/ConnectedClient.cpp", "src/DefaultVehicleHal.cpp", "src/SubscriptionManager.cpp", + // A target to check whether the file + // android.hardware.automotive.vehicle-types-meta.json needs update. + // The output is just an empty cpp file and not actually used. + ":check_generated_enum_metadata_json", ], static_libs: [ "VehicleHalUtils", diff --git a/automotive/vehicle/aidl_property/Android.bp b/automotive/vehicle/aidl_property/Android.bp index 345a2e601e..5db39d84f7 100644 --- a/automotive/vehicle/aidl_property/Android.bp +++ b/automotive/vehicle/aidl_property/Android.bp @@ -56,5 +56,11 @@ aidl_interface { imports: [], }, ], +} +filegroup { + name: "android.hardware.automotive.vehicle.property-files", + srcs: [ + "android/hardware/automotive/vehicle/*.aidl", + ], } diff --git a/automotive/vehicle/tools/generate_emu_metadata/Android.bp b/automotive/vehicle/tools/generate_emu_metadata/Android.bp new file mode 100644 index 0000000000..4cb6d3baf5 --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/Android.bp @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +java_binary_host { + name: "EnumMetadataGenerator", + srcs: ["src/**/*.java"], + manifest: "manifest.txt", + static_libs: [ + "javaparser", + "javaparser-symbol-solver", + "json-prebuilt", + "androidx.annotation_annotation", + ], +} + +// A rule to convert VHAL property AIDL files to java files. +gensrcs { + name: "gen_vehicle_property_java_file", + srcs: [ + ":android.hardware.automotive.vehicle.property-files", + ], + tools: ["aidl"], + cmd: "$(location aidl) --lang=java --structured --stability=vintf $(in) -I hardware/interfaces/automotive/vehicle/aidl_property --out $(genDir)/hardware/interfaces/automotive/vehicle/aidl_property", + output_extension: "java", +} + +// A target to check whether android.hardware.automotive.vehicle-types-meta.json +// needs to be updated. The output is just an empty cpp file to be included +// in the higher-level build target. +// It will generate generated.json at output directory based on VHAL property +// java files and check it against +// android.hardware.automotive.vehicle-types-meta.json. If not the same, the +// build will fail. +genrule { + name: "check_generated_enum_metadata_json", + tools: ["EnumMetadataGenerator"], + srcs: [ + ":android.hardware.automotive.vehicle-types-meta", + ":gen_vehicle_property_java_file", + ], + cmd: "$(location EnumMetadataGenerator) --check_against $(location :android.hardware.automotive.vehicle-types-meta) --output_empty_file $(out) --output_json $(genDir)/generate_enum_metadata.json --input_files $(locations :gen_vehicle_property_java_file)", + out: ["generate_enum_metadata_checked.cpp"], +} diff --git a/automotive/vehicle/tools/generate_emu_metadata/manifest.txt b/automotive/vehicle/tools/generate_emu_metadata/manifest.txt new file mode 100644 index 0000000000..07696da0a0 --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/manifest.txt @@ -0,0 +1 @@ +Main-Class: com.android.car.tool.EmuMetadataGenerator diff --git a/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java b/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java new file mode 100644 index 0000000000..8e12f6774b --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java @@ -0,0 +1,403 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.car.tool; + +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.AnnotationDeclaration; +import com.github.javaparser.ast.body.FieldDeclaration; +import com.github.javaparser.ast.body.VariableDeclarator; +import com.github.javaparser.ast.comments.Comment; +import com.github.javaparser.ast.expr.AnnotationExpr; +import com.github.javaparser.ast.expr.ArrayInitializerExpr; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.NormalAnnotationExpr; +import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr; +import com.github.javaparser.ast.expr.UnaryExpr; +import com.github.javaparser.ast.type.ClassOrInterfaceType; +import com.github.javaparser.javadoc.Javadoc; +import com.github.javaparser.javadoc.JavadocBlockTag; +import com.github.javaparser.javadoc.description.JavadocDescription; +import com.github.javaparser.javadoc.description.JavadocDescriptionElement; +import com.github.javaparser.javadoc.description.JavadocInlineTag; +import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration; +import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration; +import com.github.javaparser.symbolsolver.JavaSymbolSolver; +import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration; +import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import org.json.JSONArray; +import org.json.JSONObject; + +public final class EmuMetadataGenerator { + private static final String DEFAULT_PACKAGE_NAME = "android.hardware.automotive.vehicle"; + private static final String INPUT_DIR_OPTION = "--input_dir"; + private static final String INPUT_FILES_OPTION = "--input_files"; + private static final String PACKAGE_NAME_OPTION = "--package_name"; + private static final String OUTPUT_JSON_OPTION = "--output_json"; + private static final String OUTPUT_EMPTY_FILE_OPTION = "--output_empty_file"; + private static final String CHECK_AGAINST_OPTION = "--check_against"; + private static final String USAGE = "EnumMetadataGenerator " + INPUT_DIR_OPTION + + " [path_to_aidl_gen_dir] " + INPUT_FILES_OPTION + " [input_files] " + + PACKAGE_NAME_OPTION + " [package_name] " + OUTPUT_JSON_OPTION + " [output_json] " + + OUTPUT_EMPTY_FILE_OPTION + " [output_header_file] " + CHECK_AGAINST_OPTION + + " [json_file_to_check_against]\n" + + "Parses the VHAL property AIDL interface generated Java files to a json file to be" + + " used by emulator\n" + + "Options: \n" + INPUT_DIR_OPTION + + ": the path to a directory containing AIDL interface Java files, " + + "either this or input_files must be specified\n" + INPUT_FILES_OPTION + + ": one or more Java files, this is used to decide the input " + + "directory\n" + PACKAGE_NAME_OPTION + + ": the optional package name for the interface, by default is " + DEFAULT_PACKAGE_NAME + + "\n" + OUTPUT_JSON_OPTION + ": The output JSON file\n" + OUTPUT_EMPTY_FILE_OPTION + + ": Only used for check_mode, this file will be created if " + + "check passed\n" + CHECK_AGAINST_OPTION + + ": An optional JSON file to check against. If specified, the " + + "generated output file will be checked against this file, if they are not the same, " + + "the script will fail, otherwise, the output_empty_file will be created\n" + + "For example: \n" + + "EnumMetadataGenerator --input_dir out/soong/.intermediates/hardware/" + + "interfaces/automotive/vehicle/aidl_property/android.hardware.automotive.vehicle." + + "property-V3-java-source/gen/ --package_name android.hardware.automotive.vehicle " + + "--output_json /tmp/android.hardware.automotive.vehicle-types-meta.json"; + private static final String VEHICLE_PROPERTY_FILE = "VehicleProperty.java"; + private static final String CHECK_FILE_PATH = + "${ANDROID_BUILD_TOP}/hardware/interfaces/automotive/vehicle/aidl/emu_metadata/" + + "android.hardware.automotive.vehicle-types-meta.json"; + + // Emulator can display at least this many characters before cutting characters. + private static final int MAX_PROPERTY_NAME_LENGTH = 30; + + /** + * Parses the enum field declaration as an int value. + */ + private static int parseIntEnumField(FieldDeclaration fieldDecl) { + VariableDeclarator valueDecl = fieldDecl.getVariables().get(0); + Expression expr = valueDecl.getInitializer().get(); + if (expr.isIntegerLiteralExpr()) { + return expr.asIntegerLiteralExpr().asInt(); + } + // For case like -123 + if (expr.isUnaryExpr() && expr.asUnaryExpr().getOperator() == UnaryExpr.Operator.MINUS) { + return -expr.asUnaryExpr().getExpression().asIntegerLiteralExpr().asInt(); + } + System.out.println("Unsupported expression: " + expr); + System.exit(1); + return 0; + } + + private static boolean isPublicAndStatic(FieldDeclaration fieldDecl) { + return fieldDecl.isPublic() && fieldDecl.isStatic(); + } + + private static String getFieldName(FieldDeclaration fieldDecl) { + VariableDeclarator valueDecl = fieldDecl.getVariables().get(0); + return valueDecl.getName().asString(); + } + + private static class Enum { + Enum(String name, String packageName) { + this.name = name; + this.packageName = packageName; + } + + public String name; + public String packageName; + public final List valueFields = new ArrayList<>(); + } + + private static class ValueField { + public String name; + public Integer value; + public final List dataEnums = new ArrayList<>(); + + ValueField(String name, Integer value) { + this.name = name; + this.value = value; + } + } + + private static Enum parseEnumInterface( + String inputDir, String dirName, String packageName, String enumName) throws Exception { + Enum enumIntf = new Enum(enumName, packageName); + CompilationUnit cu = StaticJavaParser.parse(new File( + inputDir + File.separator + dirName + File.separator + enumName + ".java")); + AnnotationDeclaration vehiclePropertyIdsClass = + cu.getAnnotationDeclarationByName(enumName).get(); + + List variables = vehiclePropertyIdsClass.findAll(FieldDeclaration.class); + for (int i = 0; i < variables.size(); i++) { + FieldDeclaration propertyDef = variables.get(i).asFieldDeclaration(); + if (!isPublicAndStatic(propertyDef)) { + continue; + } + ValueField field = + new ValueField(getFieldName(propertyDef), parseIntEnumField(propertyDef)); + enumIntf.valueFields.add(field); + } + return enumIntf; + } + + // A hacky way to make the key in-order in the JSON object. + private static final class OrderedJSONObject extends JSONObject { + OrderedJSONObject() { + try { + Field map = JSONObject.class.getDeclaredField("nameValuePairs"); + map.setAccessible(true); + map.set(this, new LinkedHashMap<>()); + map.setAccessible(false); + } catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + } + + private static String readFileContent(String fileName) throws Exception { + StringBuffer contentBuffer = new StringBuffer(); + int bufferSize = 1024; + try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) { + char buffer[] = new char[bufferSize]; + while (true) { + int read = reader.read(buffer, 0, bufferSize); + if (read == -1) { + break; + } + contentBuffer.append(buffer, 0, read); + } + } + return contentBuffer.toString(); + } + + private static final class Args { + public final String inputDir; + public final String pkgName; + public final String pkgDir; + public final String output; + public final String checkFile; + public final String outputEmptyFile; + + public Args(String[] args) throws IllegalArgumentException { + Map> valuesByKey = new LinkedHashMap<>(); + String key = null; + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.startsWith("--")) { + key = arg; + continue; + } + if (key == null) { + throw new IllegalArgumentException("Missing key for value: " + arg); + } + if (valuesByKey.get(key) == null) { + valuesByKey.put(key, new ArrayList<>()); + } + valuesByKey.get(key).add(arg); + } + String pkgName; + List values = valuesByKey.get(PACKAGE_NAME_OPTION); + if (values == null) { + pkgName = DEFAULT_PACKAGE_NAME; + } else { + pkgName = values.get(0); + } + String pkgDir = pkgName.replace(".", File.separator); + this.pkgName = pkgName; + this.pkgDir = pkgDir; + String inputDir; + values = valuesByKey.get(INPUT_DIR_OPTION); + if (values == null) { + List inputFiles = valuesByKey.get(INPUT_FILES_OPTION); + if (inputFiles == null) { + throw new IllegalArgumentException("Either " + INPUT_DIR_OPTION + " or " + + INPUT_FILES_OPTION + " must be specified"); + } + inputDir = new File(inputFiles.get(0)).getParent().replace(pkgDir, ""); + } else { + inputDir = values.get(0); + } + this.inputDir = inputDir; + values = valuesByKey.get(OUTPUT_JSON_OPTION); + if (values == null) { + throw new IllegalArgumentException(OUTPUT_JSON_OPTION + " must be specified"); + } + this.output = values.get(0); + values = valuesByKey.get(CHECK_AGAINST_OPTION); + if (values != null) { + this.checkFile = values.get(0); + } else { + this.checkFile = null; + } + values = valuesByKey.get(OUTPUT_EMPTY_FILE_OPTION); + if (values != null) { + this.outputEmptyFile = values.get(0); + } else { + this.outputEmptyFile = null; + } + } + } + + /** + * Main function. + */ + public static void main(final String[] args) throws Exception { + Args parsedArgs; + try { + parsedArgs = new Args(args); + } catch (IllegalArgumentException e) { + System.out.println("Invalid arguments: " + e.getMessage()); + System.out.println(USAGE); + System.exit(1); + // Never reach here. + return; + } + + TypeSolver typeSolver = new CombinedTypeSolver( + new ReflectionTypeSolver(), new JavaParserTypeSolver(parsedArgs.inputDir)); + StaticJavaParser.getConfiguration().setSymbolResolver(new JavaSymbolSolver(typeSolver)); + + Enum vehicleProperty = new Enum("VehicleProperty", parsedArgs.pkgName); + CompilationUnit cu = StaticJavaParser.parse(new File(parsedArgs.inputDir + File.separator + + parsedArgs.pkgDir + File.separator + VEHICLE_PROPERTY_FILE)); + AnnotationDeclaration vehiclePropertyIdsClass = + cu.getAnnotationDeclarationByName("VehicleProperty").get(); + + Set dataEnumTypes = new HashSet<>(); + List variables = vehiclePropertyIdsClass.findAll(FieldDeclaration.class); + for (int i = 0; i < variables.size(); i++) { + FieldDeclaration propertyDef = variables.get(i).asFieldDeclaration(); + if (!isPublicAndStatic(propertyDef)) { + continue; + } + String propertyName = getFieldName(propertyDef); + if (propertyName.equals("INVALID")) { + continue; + } + + Optional maybeComment = propertyDef.getComment(); + if (!maybeComment.isPresent()) { + System.out.println("missing comment for property: " + propertyName); + System.exit(1); + } + Javadoc doc = maybeComment.get().asJavadocComment().parse(); + + int propertyId = parseIntEnumField(propertyDef); + // We use the first paragraph as the property's name + String propertyDescription = doc.getDescription().toText().split("\n\n")[0]; + String name = propertyDescription; + if (propertyDescription.indexOf("\n") != -1 + || propertyDescription.length() > MAX_PROPERTY_NAME_LENGTH) { + // The description is too long, we just use the property name. + name = propertyName; + } + ValueField field = new ValueField(name, propertyId); + + List blockTags = doc.getBlockTags(); + List dataEnums = new ArrayList<>(); + for (int j = 0; j < blockTags.size(); j++) { + String commentTagName = blockTags.get(j).getTagName(); + String commentTagContent = blockTags.get(j).getContent().toText(); + if (!commentTagName.equals("data_enum")) { + continue; + } + field.dataEnums.add(commentTagContent); + dataEnumTypes.add(commentTagContent); + } + + vehicleProperty.valueFields.add(field); + } + + List enumTypes = new ArrayList<>(); + enumTypes.add(vehicleProperty); + + for (String dataEnumType : dataEnumTypes) { + Enum dataEnum = parseEnumInterface( + parsedArgs.inputDir, parsedArgs.pkgDir, parsedArgs.pkgName, dataEnumType); + enumTypes.add(dataEnum); + } + + // Output enumTypes as JSON to output. + JSONArray jsonEnums = new JSONArray(); + for (int i = 0; i < enumTypes.size(); i++) { + Enum enumType = enumTypes.get(i); + + JSONObject jsonEnum = new OrderedJSONObject(); + jsonEnum.put("name", enumType.name); + jsonEnum.put("package", enumType.packageName); + JSONArray values = new JSONArray(); + jsonEnum.put("values", values); + + for (int j = 0; j < enumType.valueFields.size(); j++) { + ValueField valueField = enumType.valueFields.get(j); + JSONObject jsonValueField = new OrderedJSONObject(); + jsonValueField.put("name", valueField.name); + jsonValueField.put("value", valueField.value); + if (!valueField.dataEnums.isEmpty()) { + JSONArray jsonDataEnums = new JSONArray(); + for (String dataEnum : valueField.dataEnums) { + jsonDataEnums.put(dataEnum); + } + jsonValueField.put("data_enums", jsonDataEnums); + // To be backward compatible with older format where data_enum is a single + // entry. + jsonValueField.put("data_enum", valueField.dataEnums.get(0)); + } + values.put(jsonValueField); + } + + jsonEnums.put(jsonEnum); + } + + try (FileOutputStream outputStream = new FileOutputStream(parsedArgs.output)) { + outputStream.write(jsonEnums.toString(4).getBytes()); + } + System.out.println("Input at folder: " + parsedArgs.inputDir + + " successfully parsed. Output at: " + parsedArgs.output); + + if (parsedArgs.checkFile != null) { + String checkFileContent = readFileContent(parsedArgs.checkFile); + String generatedFileContent = readFileContent(parsedArgs.output); + String generatedFilePath = new File(parsedArgs.output).getAbsolutePath(); + if (!checkFileContent.equals(generatedFileContent)) { + System.out.println("The file: " + CHECK_FILE_PATH + " needs to be updated, run: " + + "\n\ncp " + generatedFilePath + " " + CHECK_FILE_PATH + "\n"); + System.exit(1); + } + + if (parsedArgs.outputEmptyFile != null) { + try (FileOutputStream outputStream = + new FileOutputStream(parsedArgs.outputEmptyFile)) { + // Do nothing, just create the file. + } + } + } + } +} -- GitLab From 7ad5797272c40c2b83b0df5a57a0f248a210091b Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Mon, 29 Jan 2024 21:36:05 +0000 Subject: [PATCH 302/418] Revert^2 "Remove Q matrices" Re-landing now that the downstream devices are targeting later FCMs. Test: m Bug: 279809679 5f679f3debc5de7070515f35ee17152c046fdcc3 Change-Id: I29de76f787cadb801b60724526fa2851ba599dcc --- compatibility_matrices/Android.bp | 12 - compatibility_matrices/Android.mk | 1 - .../compatibility_matrix.4.xml | 525 ------------------ .../exclude/fcm_exclude.cpp | 20 + 4 files changed, 20 insertions(+), 538 deletions(-) delete mode 100644 compatibility_matrices/compatibility_matrix.4.xml diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp index a3e1cd4ec2..b21fe5429b 100644 --- a/compatibility_matrices/Android.bp +++ b/compatibility_matrices/Android.bp @@ -21,18 +21,6 @@ package { default_applicable_licenses: ["hardware_interfaces_license"], } -vintf_compatibility_matrix { - name: "framework_compatibility_matrix.4.xml", - stem: "compatibility_matrix.4.xml", - srcs: [ - "compatibility_matrix.4.xml", - ], - kernel_configs: [ - "kernel_config_q_4.14", - "kernel_config_q_4.19", - ], -} - vintf_compatibility_matrix { name: "framework_compatibility_matrix.5.xml", stem: "compatibility_matrix.5.xml", diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index 7abf35e33a..76dbdd6f98 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -101,7 +101,6 @@ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) endif # DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE my_system_matrix_deps := \ - framework_compatibility_matrix.4.xml \ framework_compatibility_matrix.5.xml \ framework_compatibility_matrix.6.xml \ framework_compatibility_matrix.7.xml \ diff --git a/compatibility_matrices/compatibility_matrix.4.xml b/compatibility_matrices/compatibility_matrix.4.xml deleted file mode 100644 index 952f53d19a..0000000000 --- a/compatibility_matrices/compatibility_matrix.4.xml +++ /dev/null @@ -1,525 +0,0 @@ - - - android.hardware.atrace - 1.0 - - IAtraceDevice - default - - - - android.hardware.audio - 5.0 - - IDevicesFactory - default - - - - android.hardware.audio.effect - 5.0 - - IEffectsFactory - default - - - - android.hardware.authsecret - 1.0 - - IAuthSecret - default - - - - android.hardware.automotive.audiocontrol - 1.0 - - IAudioControl - default - - - - android.hardware.automotive.evs - 1.0 - - IEvsEnumerator - default - - - - android.hardware.automotive.vehicle - 2.0 - - IVehicle - default - - - - android.hardware.biometrics.face - 1.0 - - IBiometricsFace - default - - - - android.hardware.biometrics.fingerprint - 2.1 - - IBiometricsFingerprint - default - - - - android.hardware.bluetooth - 1.0 - - IBluetoothHci - default - - - - android.hardware.bluetooth.audio - 2.0 - - IBluetoothAudioProvidersFactory - default - - - - android.hardware.boot - 1.0 - - IBootControl - default - - - - android.hardware.broadcastradio - 1.0-1 - - IBroadcastRadioFactory - default - - - - android.hardware.broadcastradio - 2.0 - - IBroadcastRadio - .* - - - - android.hardware.camera.provider - 2.4-5 - - ICameraProvider - [^/]+/[0-9]+ - - - - android.hardware.cas - 1.1 - - IMediaCasService - default - - - - android.hardware.configstore - 1.1 - - ISurfaceFlingerConfigs - default - - - - android.hardware.confirmationui - 1.0 - - IConfirmationUI - default - - - - android.hardware.contexthub - 1.0 - - IContexthub - default - - - - android.hardware.drm - 1.0-2 - - ICryptoFactory - .* - - - IDrmFactory - .* - - - - android.hardware.dumpstate - 1.0 - - IDumpstateDevice - default - - - - android.hardware.gatekeeper - 1.0 - - IGatekeeper - default - - - - android.hardware.gnss - 2.0 - - IGnss - default - - - - - android.hardware.graphics.allocator - 2.0 - 3.0 - - IAllocator - default - - - - android.hardware.graphics.composer - 2.1-3 - - IComposer - default - - - - android.hardware.graphics.mapper - 2.1 - 3.0 - - IMapper - default - - - - - android.hardware.health - 2.0 - - IHealth - default - - - - android.hardware.health.storage - 1.0 - - IStorage - default - - - - android.hardware.ir - 1.0 - - IConsumerIr - default - - - - android.hardware.input.classifier - 1.0 - - IInputClassifier - default - - - - android.hardware.keymaster - 3.0 - 4.0 - - IKeymasterDevice - default - - - - android.hardware.keymaster - 4.0 - - IKeymasterDevice - strongbox - - - - android.hardware.light - 2.0 - - ILight - default - - - - android.hardware.media.c2 - 1.0 - - IComponentStore - software - default[0-9]* - vendor[0-9]*_software - - - IConfigurable - default - software - - - - android.hardware.media.omx - 1.0 - - IOmx - default - - - IOmxStore - default - - - - android.hardware.memtrack - 1.0 - - IMemtrack - default - - - - android.hardware.neuralnetworks - 1.0-2 - - IDevice - .* - - - - android.hardware.nfc - 1.2 - - INfc - default - - - - android.hardware.oemlock - 1.0 - - IOemLock - default - - - - android.hardware.power - 1.0-3 - - IPower - default - - - - android.hardware.power.stats - 1.0 - - IPowerStats - default - - - - android.hardware.radio - 1.4 - - IRadio - slot1 - slot2 - slot3 - - - - android.hardware.radio - 1.2 - - ISap - slot1 - slot2 - - - - android.hardware.radio.config - - 1.1 - - IRadioConfig - default - - - - android.hardware.renderscript - 1.0 - - IDevice - default - - - - android.hardware.secure_element - 1.0 - - ISecureElement - eSE[1-9][0-9]* - SIM[1-9][0-9]* - - - - android.hardware.sensors - 1.0 - 2.0 - - ISensors - default - - - - android.hardware.soundtrigger - 2.0-2 - - ISoundTriggerHw - default - - - - android.hardware.tetheroffload.config - 1.0 - - IOffloadConfig - default - - - - android.hardware.tetheroffload.control - 1.0 - - IOffloadControl - default - - - - android.hardware.thermal - 2.0 - - IThermal - default - - - - android.hardware.tv.cec - 1.0 - - IHdmiCec - default - - - - android.hardware.tv.input - 1.0 - - ITvInput - default - - - - android.hardware.usb - 1.0-2 - - IUsb - default - - - - android.hardware.usb.gadget - 1.0 - - IUsbGadget - default - - - - android.hardware.vibrator - 1.0-3 - - IVibrator - default - - - - android.hardware.vr - 1.0 - - IVr - default - - - - android.hardware.weaver - 1.0 - - IWeaver - default - - - - android.hardware.wifi - 1.0-3 - - IWifi - default - - - - android.hardware.wifi.hostapd - 1.0-1 - - IHostapd - default - - - - android.hardware.wifi.supplicant - 1.0-2 - - ISupplicant - default - - - diff --git a/compatibility_matrices/exclude/fcm_exclude.cpp b/compatibility_matrices/exclude/fcm_exclude.cpp index 2cb4ffac22..72ead0ca96 100644 --- a/compatibility_matrices/exclude/fcm_exclude.cpp +++ b/compatibility_matrices/exclude/fcm_exclude.cpp @@ -84,6 +84,26 @@ bool ShouldCheckMissingHidlHalsInFcm(const std::string& packageAndVersion) { "android.hardware.thermal@1.0", "android.hardware.thermal@1.1", "android.hardware.wifi.offload@1.0", + + // b/279809679 for HALS deprecated in Q + "android.hardware.audio.effect@5.0", + "android.hardware.audio@5.0", + "android.hardware.boot@1.0", + "android.hardware.configstore@1.1", + "android.hardware.drm@1.0", + "android.hardware.drm@1.1", + "android.hardware.drm@1.2", + "android.hardware.dumpstate@1.0", + "android.hardware.health@2.0", + "android.hardware.light@2.0", + "android.hardware.power@1.0", + "android.hardware.power@1.1", + "android.hardware.power@1.2", + "android.hardware.power@1.3", + "android.hardware.vibrator@1.0", + "android.hardware.vibrator@1.1", + "android.hardware.vibrator@1.2", + "android.hardware.vibrator@1.3", }; auto package_has_prefix = [&](const std::string& prefix) { -- GitLab From 129b1451338d5a1770baac4cc0547056991d3e04 Mon Sep 17 00:00:00 2001 From: jiabin Date: Wed, 31 Jan 2024 23:56:26 +0000 Subject: [PATCH 303/418] AHAL: add default values for dynamic port config of hardcoded config. If the values(format, sample rate, channel mask) are left as unset, they will be null. In that case, when using them will require checking nullablitiy to avoid crash. Bug: 323255506 Test: make and boot Change-Id: Ic66bf0b6f53750ff8700e531cca13f03fbb72936 --- audio/aidl/default/Configuration.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/audio/aidl/default/Configuration.cpp b/audio/aidl/default/Configuration.cpp index 2a8e58f843..54e2d18122 100644 --- a/audio/aidl/default/Configuration.cpp +++ b/audio/aidl/default/Configuration.cpp @@ -110,6 +110,9 @@ static AudioPortConfig createDynamicPortConfig(int32_t id, int32_t portId, int32 AudioPortConfig config; config.id = id; config.portId = portId; + config.format = AudioFormatDescription{}; + config.channelMask = AudioChannelLayout{}; + config.sampleRate = Int{.value = 0}; config.gain = AudioGainConfig(); config.flags = isInput ? AudioIoFlags::make(flags) : AudioIoFlags::make(flags); -- GitLab From 9540e47340b47794b52d74c2985b598f989f5c3a Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 4 Jan 2024 14:46:58 -0800 Subject: [PATCH 304/418] Create EmuMetadataGenerator to check meta.json. Create EmuMetadataGenerator to convert AIDL generated java files to meta.json that can be used by emulator to populate the available vhal props list. Added build rules to generate the Java files from AIDL files and check whether the meta.json file needs to be updated. Test: make sdk_car_x86_64-trunk_staging-userdebug target Bug: 318747444 Change-Id: Ib3bc7b68a1312152617fdab4598ed389447c20cd Merged-In: Ib3bc7b68a1312152617fdab4598ed389447c20cd --- .../vehicle/aidl/emu_metadata/Android.bp | 26 + ...ardware.automotive.vehicle-types-meta.json | 7455 +++++++---------- .../generate_emulator_metadata.py | 136 - automotive/vehicle/aidl/impl/vhal/Android.bp | 4 + automotive/vehicle/aidl_property/Android.bp | 6 + .../tools/generate_emu_metadata/Android.bp | 60 + .../tools/generate_emu_metadata/manifest.txt | 1 + .../car/tool/EmuMetadataGenerator.java | 403 + 8 files changed, 3354 insertions(+), 4737 deletions(-) create mode 100644 automotive/vehicle/aidl/emu_metadata/Android.bp delete mode 100755 automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py create mode 100644 automotive/vehicle/tools/generate_emu_metadata/Android.bp create mode 100644 automotive/vehicle/tools/generate_emu_metadata/manifest.txt create mode 100644 automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java diff --git a/automotive/vehicle/aidl/emu_metadata/Android.bp b/automotive/vehicle/aidl/emu_metadata/Android.bp new file mode 100644 index 0000000000..64f895fefd --- /dev/null +++ b/automotive/vehicle/aidl/emu_metadata/Android.bp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +filegroup { + name: "android.hardware.automotive.vehicle-types-meta", + srcs: [ + "android.hardware.automotive.vehicle-types-meta.json", + ], +} diff --git a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json index 6d856a8d60..235bf43d2f 100644 --- a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json +++ b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json @@ -1,4603 +1,2856 @@ [ - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleOilLevel", - "values": [ - { - "name": "CRITICALLY_LOW", - "value": 0 - }, - { - "name": "LOW", - "value": 1 - }, - { - "name": "NORMAL", - "value": 2 - }, - { - "name": "HIGH", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LocationCharacterization", - "values": [ - { - "name": "PRIOR_LOCATIONS", - "value": 1 - }, - { - "name": "GYROSCOPE_FUSION", - "value": 2 - }, - { - "name": "ACCELEROMETER_FUSION", - "value": 4 - }, - { - "name": "COMPASS_FUSION", - "value": 8 - }, - { - "name": "WHEEL_SPEED_FUSION", - "value": 16 - }, - { - "name": "STEERING_ANGLE_FUSION", - "value": 32 - }, - { - "name": "CAR_SPEED_FUSION", - "value": 64 - }, - { - "name": "DEAD_RECKONED", - "value": 128 - }, - { - "name": "RAW_GNSS_ONLY", - "value": 256 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleDisplay", - "values": [ - { - "name": "MAIN", - "value": 0 - }, - { - "name": "INSTRUMENT_CLUSTER", - "value": 1 - }, - { - "name": "HUD", - "value": 2 - }, - { - "name": "INPUT", - "value": 3 - }, - { - "name": "AUXILIARY", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED", - "value": 2 - }, - { - "name": "USER_OVERRIDE", - "value": 3 - }, - { - "name": "SUSPENDED", - "value": 4 - }, - { - "name": "FORCED_DEACTIVATION_WARNING", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "HandsOnDetectionWarning", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaWindow", - "values": [ - { - "name": "FRONT_WINDSHIELD", - "value": 1 - }, - { - "name": "REAR_WINDSHIELD", - "value": 2 - }, - { - "name": "ROW_1_LEFT", - "value": 16 - }, - { - "name": "ROW_1_RIGHT", - "value": 64 - }, - { - "name": "ROW_2_LEFT", - "value": 256 - }, - { - "name": "ROW_2_RIGHT", - "value": 1024 - }, - { - "name": "ROW_3_LEFT", - "value": 4096 - }, - { - "name": "ROW_3_RIGHT", - "value": 16384 - }, - { - "name": "ROOF_TOP_1", - "value": 65536 - }, - { - "name": "ROOF_TOP_2", - "value": 131072 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsAvailabilityStateIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SEQUENCE_NUMBER", - "value": 1 - }, - { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", - "value": 2 - }, - { - "name": "LAYERS_START", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleLightSwitch", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - }, - { - "name": "DAYTIME_RUNNING", - "value": 2 - }, - { - "name": "AUTOMATIC", - "value": 256 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2IgnitionMonitorKind", - "values": [ - { - "name": "SPARK", - "value": 0 - }, - { - "name": "COMPRESSION", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionButtonStateFlag", - "values": [ - { - "name": "BUTTON_PRIMARY", - "value": 1 - }, - { - "name": "BUTTON_SECONDARY", - "value": 2 - }, - { - "name": "BUTTON_TERTIARY", - "value": 4 - }, - { - "name": "BUTTON_BACK", - "value": 8 - }, - { - "name": "BUTTON_FORWARD", - "value": 16 - }, - { - "name": "BUTTON_STYLUS_PRIMARY", - "value": 32 - }, - { - "name": "BUTTON_STYLUS_SECONDARY", - "value": 64 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehiclePropertyType", - "values": [ - { - "name": "STRING", - "value": 1048576 - }, - { - "name": "BOOLEAN", - "value": 2097152 - }, - { - "name": "INT32", - "value": 4194304 - }, - { - "name": "INT32_VEC", - "value": 4259840 - }, - { - "name": "INT64", - "value": 5242880 - }, - { - "name": "INT64_VEC", - "value": 5308416 - }, - { - "name": "FLOAT", - "value": 6291456 - }, - { - "name": "FLOAT_VEC", - "value": 6356992 - }, - { - "name": "BYTES", - "value": 7340032 - }, - { - "name": "MIXED", - "value": 14680064 - }, - { - "name": "MASK", - "value": 16711680 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaDoor", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 - }, - { - "name": "ROW_1_RIGHT", - "value": 4 - }, - { - "name": "ROW_2_LEFT", - "value": 16 - }, - { - "name": "ROW_2_RIGHT", - "value": 64 - }, - { - "name": "ROW_3_LEFT", - "value": 256 - }, - { - "name": "ROW_3_RIGHT", - "value": 1024 - }, - { - "name": "HOOD", - "value": 268435456 - }, - { - "name": "REAR", - "value": 536870912 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerBootupReason", - "values": [ - { - "name": "USER_POWER_ON", - "value": 0 - }, - { - "name": "SYSTEM_USER_DETECTION", - "value": 1 - }, - { - "name": "SYSTEM_REMOTE_ACCESS", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EmergencyLaneKeepAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "WARNING_LEFT", - "value": 2 - }, - { - "name": "WARNING_RIGHT", - "value": 3 - }, - { - "name": "ACTIVATED_STEER_LEFT", - "value": 4 - }, - { - "name": "ACTIVATED_STEER_RIGHT", - "value": 5 - }, - { - "name": "USER_OVERRIDE", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvConnectorType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "IEC_TYPE_1_AC", - "value": 1 - }, - { - "name": "IEC_TYPE_2_AC", - "value": 2 - }, - { - "name": "IEC_TYPE_3_AC", - "value": 3 - }, - { - "name": "IEC_TYPE_4_DC", - "value": 4 - }, - { - "name": "IEC_TYPE_1_CCS_DC", - "value": 5 - }, - { - "name": "IEC_TYPE_2_CCS_DC", - "value": 6 - }, - { - "name": "TESLA_ROADSTER", - "value": 7 - }, - { - "name": "TESLA_HPWC", - "value": 8 - }, - { - "name": "TESLA_SUPERCHARGER", - "value": 9 - }, - { - "name": "GBT_AC", - "value": 10 - }, - { - "name": "GBT_DC", - "value": 11 - }, - { - "name": "OTHER", - "value": 101 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationType", - "values": [ - { - "name": "INVALID", - "value": 0 - }, - { - "name": "KEY_FOB", - "value": 1 - }, - { - "name": "CUSTOM_1", - "value": 101 - }, - { - "name": "CUSTOM_2", - "value": 102 - }, - { - "name": "CUSTOM_3", - "value": 103 - }, - { - "name": "CUSTOM_4", - "value": 104 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHvacFanDirection", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FACE", - "value": 1 - }, - { - "name": "FLOOR", - "value": 2 - }, - { - "name": "FACE_AND_FLOOR", - "value": 3 - }, - { - "name": "DEFROST", - "value": 4 - }, - { - "name": "DEFROST_AND_FLOOR", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaWheel", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEFT_FRONT", - "value": 1 - }, - { - "name": "RIGHT_FRONT", - "value": 2 - }, - { - "name": "LEFT_REAR", - "value": 4 - }, - { - "name": "RIGHT_REAR", - "value": 8 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "InitialUserInfoRequestType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FIRST_BOOT", - "value": 1 - }, - { - "name": "FIRST_BOOT_AFTER_OTA", - "value": 2 - }, - { - "name": "COLD_BOOT", - "value": 3 - }, - { - "name": "RESUME", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "HandsOnDetectionDriverState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "HANDS_ON", - "value": 1 - }, - { - "name": "HANDS_OFF", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlCommand", - "values": [ - { - "name": "ACTIVATE", - "value": 1 - }, - { - "name": "SUSPEND", - "value": 2 - }, - { - "name": "INCREASE_TARGET_SPEED", - "value": 3 - }, - { - "name": "DECREASE_TARGET_SPEED", - "value": 4 - }, - { - "name": "INCREASE_TARGET_TIME_GAP", - "value": 5 - }, - { - "name": "DECREASE_TARGET_TIME_GAP", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "WindshieldWipersSwitch", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "OFF", - "value": 1 - }, - { - "name": "MIST", - "value": 2 - }, - { - "name": "INTERMITTENT_LEVEL_1", - "value": 3 - }, - { - "name": "INTERMITTENT_LEVEL_2", - "value": 4 - }, - { - "name": "INTERMITTENT_LEVEL_3", - "value": 5 - }, - { - "name": "INTERMITTENT_LEVEL_4", - "value": 6 - }, - { - "name": "INTERMITTENT_LEVEL_5", - "value": 7 - }, - { - "name": "CONTINUOUS_LEVEL_1", - "value": 8 - }, - { - "name": "CONTINUOUS_LEVEL_2", - "value": 9 - }, - { - "name": "CONTINUOUS_LEVEL_3", - "value": 10 - }, - { - "name": "CONTINUOUS_LEVEL_4", - "value": 11 - }, - { - "name": "CONTINUOUS_LEVEL_5", - "value": 12 - }, - { - "name": "AUTO", - "value": 13 - }, - { - "name": "SERVICE", - "value": 14 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionToolType", - "values": [ - { - "name": "TOOL_TYPE_UNKNOWN", - "value": 0 - }, - { - "name": "TOOL_TYPE_FINGER", - "value": 1 - }, - { - "name": "TOOL_TYPE_STYLUS", - "value": 2 - }, - { - "name": "TOOL_TYPE_MOUSE", - "value": 3 - }, - { - "name": "TOOL_TYPE_ERASER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "SwitchUserStatus", - "values": [ - { - "name": "SUCCESS", - "value": 1 - }, - { - "name": "FAILURE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceType", - "values": [ - { - "name": "REARVIEW", - "value": 0 - }, - { - "name": "SURROUNDVIEW", - "value": 1 - }, - { - "name": "FRONTVIEW", - "value": 2 - }, - { - "name": "LEFTVIEW", - "value": 3 - }, - { - "name": "RIGHTVIEW", - "value": 4 - }, - { - "name": "DRIVERVIEW", - "value": 5 - }, - { - "name": "FRONTPASSENGERSVIEW", - "value": 6 - }, - { - "name": "REARPASSENGERSVIEW", - "value": 7 - }, - { - "name": "USER_DEFINED", - "value": 1000 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationValue", - "values": [ - { - "name": "UNKNOWN", - "value": 1 - }, - { - "name": "ASSOCIATED_CURRENT_USER", - "value": 2 - }, - { - "name": "ASSOCIATED_ANOTHER_USER", - "value": 3 - }, - { - "name": "NOT_ASSOCIATED_ANY_USER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ErrorState", - "values": [ - { - "name": "OTHER_ERROR_STATE", - "value": -1 - }, - { - "name": "NOT_AVAILABLE_DISABLED", - "value": -2 - }, - { - "name": "NOT_AVAILABLE_SPEED_LOW", - "value": -3 - }, - { - "name": "NOT_AVAILABLE_SPEED_HIGH", - "value": -4 - }, - { - "name": "NOT_AVAILABLE_POOR_VISIBILITY", - "value": -5 - }, - { - "name": "NOT_AVAILABLE_SAFETY", - "value": -6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleIgnitionState", - "values": [ - { - "name": "UNDEFINED", - "value": 0 - }, - { - "name": "LOCK", - "value": 1 - }, - { - "name": "OFF", - "value": 2 - }, - { - "name": "ACC", - "value": 3 - }, - { - "name": "ON", - "value": 4 - }, - { - "name": "START", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaSeat", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 - }, - { - "name": "ROW_1_CENTER", - "value": 2 - }, - { - "name": "ROW_1_RIGHT", - "value": 4 - }, - { - "name": "ROW_2_LEFT", - "value": 16 - }, - { - "name": "ROW_2_CENTER", - "value": 32 - }, - { - "name": "ROW_2_RIGHT", - "value": 64 - }, - { - "name": "ROW_3_LEFT", - "value": 256 - }, - { - "name": "ROW_3_CENTER", - "value": 512 - }, - { - "name": "ROW_3_RIGHT", - "value": 1024 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceRequestIndex", - "values": [ - { - "name": "TYPE", - "value": 0 - }, - { - "name": "STATE", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneDepartureWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING_LEFT", - "value": 2 - }, - { - "name": "WARNING_RIGHT", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2SparkIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CreateUserStatus", - "values": [ - { - "name": "SUCCESS", - "value": 1 - }, - { - "name": "FAILURE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehiclePropertyGroup", - "values": [ - { - "name": "SYSTEM", - "value": 268435456 - }, - { - "name": "VENDOR", - "value": 536870912 - }, - { - "name": "MASK", - "value": 4026531840 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleVendorPermission", - "values": [ - { - "name": "PERMISSION_DEFAULT", - "value": 0 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_WINDOW", - "value": 1 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_WINDOW", - "value": 2 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_DOOR", - "value": 3 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_DOOR", - "value": 4 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_SEAT", - "value": 5 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_SEAT", - "value": 6 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_MIRROR", - "value": 7 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_MIRROR", - "value": 8 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_INFO", - "value": 9 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_INFO", - "value": 10 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_ENGINE", - "value": 11 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_ENGINE", - "value": 12 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_HVAC", - "value": 13 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_HVAC", - "value": 14 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_LIGHT", - "value": 15 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_LIGHT", - "value": 16 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_1", - "value": 65536 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_1", - "value": 69632 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_2", - "value": 131072 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_2", - "value": 135168 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_3", - "value": 196608 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_3", - "value": 200704 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_4", - "value": 262144 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_4", - "value": 266240 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_5", - "value": 327680 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_5", - "value": 331776 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_6", - "value": 393216 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_6", - "value": 397312 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_7", - "value": 458752 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_7", - "value": 462848 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_8", - "value": 524288 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_8", - "value": 528384 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_9", - "value": 589824 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_9", - "value": 593920 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_10", - "value": 655360 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_10", - "value": 659456 - }, - { - "name": "PERMISSION_NOT_ACCESSIBLE", - "value": 4026531840 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsOfferingMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "PUBLISHER_ID", - "value": 1 - }, - { - "name": "NUMBER_OF_OFFERS", - "value": 2 - }, - { - "name": "OFFERING_START", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsBaseMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2CompressionIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneKeepAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED_STEER_LEFT", - "value": 2 - }, - { - "name": "ACTIVATED_STEER_RIGHT", - "value": 3 - }, - { - "name": "USER_OVERRIDE", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionInputAction", - "values": [ - { - "name": "ACTION_DOWN", - "value": 0 - }, - { - "name": "ACTION_UP", - "value": 1 - }, - { - "name": "ACTION_MOVE", - "value": 2 - }, - { - "name": "ACTION_CANCEL", - "value": 3 - }, - { - "name": "ACTION_OUTSIDE", - "value": 4 - }, - { - "name": "ACTION_POINTER_DOWN", - "value": 5 - }, - { - "name": "ACTION_POINTER_UP", - "value": 6 - }, - { - "name": "ACTION_HOVER_MOVE", - "value": 7 - }, - { - "name": "ACTION_SCROLL", - "value": 8 - }, - { - "name": "ACTION_HOVER_ENTER", - "value": 9 - }, - { - "name": "ACTION_HOVER_EXIT", - "value": 10 - }, - { - "name": "ACTION_BUTTON_PRESS", - "value": 11 - }, - { - "name": "ACTION_BUTTON_RELEASE", - "value": 12 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateConfigFlag", - "values": [ - { - "name": "ENABLE_DEEP_SLEEP_FLAG", - "value": 1 - }, - { - "name": "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG", - "value": 2 - }, - { - "name": "ENABLE_HIBERNATION_FLAG", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2SecondaryAirStatus", - "values": [ - { - "name": "UPSTREAM", - "value": 1 - }, - { - "name": "DOWNSTREAM_OF_CATALYCIC_CONVERTER", - "value": 2 - }, - { - "name": "FROM_OUTSIDE_OR_OFF", - "value": 4 - }, - { - "name": "PUMP_ON_FOR_DIAGNOSTICS", - "value": 8 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsPublisherInformationIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "PUBLISHER_ID", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReq", - "values": [ - { - "name": "ON", - "value": 0 - }, - { - "name": "SHUTDOWN_PREPARE", - "value": 1 - }, - { - "name": "CANCEL_SHUTDOWN", - "value": 2 - }, - { - "name": "FINISHED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "WindshieldWipersState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "OFF", - "value": 1 - }, - { - "name": "ON", - "value": 2 - }, - { - "name": "SERVICE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneCenteringAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATION_REQUESTED", - "value": 2 - }, - { - "name": "ACTIVATED", - "value": 3 - }, - { - "name": "USER_OVERRIDE", - "value": 4 - }, - { - "name": "FORCED_DEACTIVATION_WARNING", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationSetValue", - "values": [ - { - "name": "INVALID", - "value": 0 - }, - { - "name": "ASSOCIATE_CURRENT_USER", - "value": 1 - }, - { - "name": "DISASSOCIATE_CURRENT_USER", - "value": 2 - }, - { - "name": "DISASSOCIATE_ALL_USERS", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2CommonIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionInputSource", - "values": [ - { - "name": "SOURCE_UNKNOWN", - "value": 0 - }, - { - "name": "SOURCE_KEYBOARD", - "value": 1 - }, - { - "name": "SOURCE_DPAD", - "value": 2 - }, - { - "name": "SOURCE_GAMEPAD", - "value": 3 - }, - { - "name": "SOURCE_TOUCHSCREEN", - "value": 4 - }, - { - "name": "SOURCE_MOUSE", - "value": 5 - }, - { - "name": "SOURCE_STYLUS", - "value": 6 - }, - { - "name": "SOURCE_BLUETOOTH_STYLUS", - "value": 7 - }, - { - "name": "SOURCE_TRACKBALL", - "value": 8 - }, - { - "name": "SOURCE_MOUSE_RELATIVE", - "value": 9 - }, - { - "name": "SOURCE_TOUCHPAD", - "value": 10 - }, - { - "name": "SOURCE_TOUCH_NAVIGATION", - "value": 11 - }, - { - "name": "SOURCE_ROTARY_ENCODER", - "value": 12 - }, - { - "name": "SOURCE_JOYSTICK", - "value": 13 - }, - { - "name": "SOURCE_HDMI", - "value": 14 - }, - { - "name": "SOURCE_SENSOR", - "value": 15 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ForwardCollisionWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleArea", - "values": [ - { - "name": "GLOBAL", - "value": 16777216 - }, - { - "name": "WINDOW", - "value": 50331648 - }, - { - "name": "MIRROR", - "value": 67108864 - }, - { - "name": "SEAT", - "value": 83886080 - }, - { - "name": "DOOR", - "value": 100663296 - }, - { - "name": "WHEEL", - "value": 117440512 - }, - { - "name": "MASK", - "value": 251658240 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "PortLocationType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FRONT_LEFT", - "value": 1 - }, - { - "name": "FRONT_RIGHT", - "value": 2 - }, - { - "name": "REAR_RIGHT", - "value": 3 - }, - { - "name": "REAR_LEFT", - "value": 4 - }, - { - "name": "FRONT", - "value": 5 - }, - { - "name": "REAR", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "InitialUserInfoResponseAction", - "values": [ - { - "name": "DEFAULT", - "value": 0 - }, - { - "name": "SWITCH", - "value": 1 - }, - { - "name": "CREATE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsSubscriptionsStateIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SEQUENCE_NUMBER", - "value": 1 - }, - { - "name": "NUMBER_OF_LAYERS", - "value": 2 - }, - { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", - "value": 3 - }, - { - "name": "SUBSCRIPTIONS_START", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlType", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "STANDARD", - "value": 1 - }, - { - "name": "ADAPTIVE", - "value": 2 - }, - { - "name": "PREDICTIVE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "DiagnosticFloatSensorIndex", - "values": [ - { - "name": "CALCULATED_ENGINE_LOAD", - "value": 0 - }, - { - "name": "ENGINE_COOLANT_TEMPERATURE", - "value": 1 - }, - { - "name": "SHORT_TERM_FUEL_TRIM_BANK1", - "value": 2 - }, - { - "name": "LONG_TERM_FUEL_TRIM_BANK1", - "value": 3 - }, - { - "name": "SHORT_TERM_FUEL_TRIM_BANK2", - "value": 4 - }, - { - "name": "LONG_TERM_FUEL_TRIM_BANK2", - "value": 5 - }, - { - "name": "FUEL_PRESSURE", - "value": 6 - }, - { - "name": "INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 7 - }, - { - "name": "ENGINE_RPM", - "value": 8 - }, - { - "name": "VEHICLE_SPEED", - "value": 9 - }, - { - "name": "TIMING_ADVANCE", - "value": 10 - }, - { - "name": "MAF_AIR_FLOW_RATE", - "value": 11 - }, - { - "name": "THROTTLE_POSITION", - "value": 12 - }, - { - "name": "OXYGEN_SENSOR1_VOLTAGE", - "value": 13 - }, - { - "name": "OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM", - "value": 14 - }, - { - "name": "OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 15 - }, - { - "name": "OXYGEN_SENSOR2_VOLTAGE", - "value": 16 - }, - { - "name": "OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM", - "value": 17 - }, - { - "name": "OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 18 - }, - { - "name": "OXYGEN_SENSOR3_VOLTAGE", - "value": 19 - }, - { - "name": "OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM", - "value": 20 - }, - { - "name": "OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 21 - }, - { - "name": "OXYGEN_SENSOR4_VOLTAGE", - "value": 22 - }, - { - "name": "OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM", - "value": 23 - }, - { - "name": "OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 24 - }, - { - "name": "OXYGEN_SENSOR5_VOLTAGE", - "value": 25 - }, - { - "name": "OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM", - "value": 26 - }, - { - "name": "OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 27 - }, - { - "name": "OXYGEN_SENSOR6_VOLTAGE", - "value": 28 - }, - { - "name": "OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM", - "value": 29 - }, - { - "name": "OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 30 - }, - { - "name": "OXYGEN_SENSOR7_VOLTAGE", - "value": 31 - }, - { - "name": "OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM", - "value": 32 - }, - { - "name": "OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 33 - }, - { - "name": "OXYGEN_SENSOR8_VOLTAGE", - "value": 34 - }, - { - "name": "OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM", - "value": 35 - }, - { - "name": "OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 36 - }, - { - "name": "FUEL_RAIL_PRESSURE", - "value": 37 - }, - { - "name": "FUEL_RAIL_GAUGE_PRESSURE", - "value": 38 - }, - { - "name": "COMMANDED_EXHAUST_GAS_RECIRCULATION", - "value": 39 - }, - { - "name": "EXHAUST_GAS_RECIRCULATION_ERROR", - "value": 40 - }, - { - "name": "COMMANDED_EVAPORATIVE_PURGE", - "value": 41 - }, - { - "name": "FUEL_TANK_LEVEL_INPUT", - "value": 42 - }, - { - "name": "EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 43 - }, - { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR1", - "value": 44 - }, - { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR1", - "value": 45 - }, - { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR2", - "value": 46 - }, - { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR2", - "value": 47 - }, - { - "name": "ABSOLUTE_LOAD_VALUE", - "value": 48 - }, - { - "name": "FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO", - "value": 49 - }, - { - "name": "RELATIVE_THROTTLE_POSITION", - "value": 50 - }, - { - "name": "ABSOLUTE_THROTTLE_POSITION_B", - "value": 51 - }, - { - "name": "ABSOLUTE_THROTTLE_POSITION_C", - "value": 52 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_D", - "value": 53 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_E", - "value": 54 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_F", - "value": 55 - }, - { - "name": "COMMANDED_THROTTLE_ACTUATOR", - "value": 56 - }, - { - "name": "ETHANOL_FUEL_PERCENTAGE", - "value": 57 - }, - { - "name": "ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 58 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 59 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 60 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 61 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 62 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 63 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 64 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 65 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 66 - }, - { - "name": "RELATIVE_ACCELERATOR_PEDAL_POSITION", - "value": 67 - }, - { - "name": "HYBRID_BATTERY_PACK_REMAINING_LIFE", - "value": 68 - }, - { - "name": "FUEL_INJECTION_TIMING", - "value": 69 - }, - { - "name": "ENGINE_FUEL_RATE", - "value": 70 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "GsrComplianceRequirementType", - "values": [ - { - "name": "GSR_COMPLIANCE_NOT_REQUIRED", - "value": 0 - }, - { - "name": "GSR_COMPLIANCE_REQUIRED_V1", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleLightState", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - }, - { - "name": "DAYTIME_RUNNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageWithLayerIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "LAYER_TYPE", - "value": 1 - }, - { - "name": "LAYER_SUBTYPE", - "value": 2 - }, - { - "name": "LAYER_VERSION", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvRegenerativeBrakingState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "DISABLED", - "value": 1 - }, - { - "name": "PARTIALLY_ENABLED", - "value": 2 - }, - { - "name": "FULLY_ENABLED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReqIndex", - "values": [ - { - "name": "STATE", - "value": 0 - }, - { - "name": "ADDITIONAL", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "RotaryInputType", - "values": [ - { - "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", - "value": 0 - }, - { - "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageType", - "values": [ - { - "name": "SUBSCRIBE", - "value": 1 - }, - { - "name": "SUBSCRIBE_TO_PUBLISHER", - "value": 2 - }, - { - "name": "UNSUBSCRIBE", - "value": 3 - }, - { - "name": "UNSUBSCRIBE_TO_PUBLISHER", - "value": 4 - }, - { - "name": "OFFERING", - "value": 5 - }, - { - "name": "AVAILABILITY_REQUEST", - "value": 6 - }, - { - "name": "SUBSCRIPTIONS_REQUEST", - "value": 7 - }, - { - "name": "AVAILABILITY_RESPONSE", - "value": 8 - }, - { - "name": "AVAILABILITY_CHANGE", - "value": 9 - }, - { - "name": "SUBSCRIPTIONS_RESPONSE", - "value": 10 - }, - { - "name": "SUBSCRIPTIONS_CHANGE", - "value": 11 - }, - { - "name": "DATA", - "value": 12 - }, - { - "name": "PUBLISHER_ID_REQUEST", - "value": 13 - }, - { - "name": "PUBLISHER_ID_RESPONSE", - "value": 14 - }, - { - "name": "PUBLISHER_INFORMATION_REQUEST", - "value": 15 - }, - { - "name": "PUBLISHER_INFORMATION_RESPONSE", - "value": 16 - }, - { - "name": "START_SESSION", - "value": 17 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "FuelType", - "values": [ - { - "name": "FUEL_TYPE_UNKNOWN", - "value": 0 - }, - { - "name": "FUEL_TYPE_UNLEADED", - "value": 1 - }, - { - "name": "FUEL_TYPE_LEADED", - "value": 2 - }, - { - "name": "FUEL_TYPE_DIESEL_1", - "value": 3 - }, - { - "name": "FUEL_TYPE_DIESEL_2", - "value": 4 - }, - { - "name": "FUEL_TYPE_BIODIESEL", - "value": 5 - }, - { - "name": "FUEL_TYPE_E85", - "value": 6 - }, - { - "name": "FUEL_TYPE_LPG", - "value": 7 - }, - { - "name": "FUEL_TYPE_CNG", - "value": 8 - }, - { - "name": "FUEL_TYPE_LNG", - "value": 9 - }, - { - "name": "FUEL_TYPE_ELECTRIC", - "value": 10 - }, - { - "name": "FUEL_TYPE_HYDROGEN", - "value": 11 - }, - { - "name": "FUEL_TYPE_OTHER", - "value": 12 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleSeatOccupancyState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "VACANT", - "value": 1 - }, - { - "name": "OCCUPIED", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvStoppingMode", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "CREEP", - "value": 1 - }, - { - "name": "ROLL", - "value": 2 - }, - { - "name": "HOLD", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "AutomaticEmergencyBrakingState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED", - "value": 2 - }, - { - "name": "USER_OVERRIDE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReport", - "values": [ - { - "name": "WAIT_FOR_VHAL", - "value": 1 - }, - { - "name": "DEEP_SLEEP_ENTRY", - "value": 2 - }, - { - "name": "DEEP_SLEEP_EXIT", - "value": 3 - }, - { - "name": "SHUTDOWN_POSTPONE", - "value": 4 - }, - { - "name": "SHUTDOWN_START", - "value": 5 - }, - { - "name": "ON", - "value": 6 - }, - { - "name": "SHUTDOWN_PREPARE", - "value": 7 - }, - { - "name": "SHUTDOWN_CANCELLED", - "value": 8 - }, - { - "name": "HIBERNATION_ENTRY", - "value": 9 - }, - { - "name": "HIBERNATION_EXIT", - "value": 10 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "SwitchUserMessageType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEGACY_ANDROID_SWITCH", - "value": 1 - }, - { - "name": "ANDROID_SWITCH", - "value": 2 - }, - { - "name": "VEHICLE_RESPONSE", - "value": 3 - }, - { - "name": "VEHICLE_REQUEST", - "value": 4 - }, - { - "name": "ANDROID_POST_SWITCH", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaMirror", - "values": [ - { - "name": "DRIVER_LEFT", - "value": 1 - }, - { - "name": "DRIVER_RIGHT", - "value": 2 - }, - { - "name": "DRIVER_CENTER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "TrailerState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "NOT_PRESENT", - "value": 1 - }, - { - "name": "PRESENT", - "value": 2 - }, - { - "name": "ERROR", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceState", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwKeyInputAction", - "values": [ - { - "name": "ACTION_DOWN", - "value": 0 - }, - { - "name": "ACTION_UP", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "BlindSpotWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleGear", - "values": [ - { - "name": "GEAR_UNKNOWN", - "value": 0 - }, - { - "name": "GEAR_NEUTRAL", - "value": 1 - }, - { - "name": "GEAR_REVERSE", - "value": 2 - }, - { - "name": "GEAR_PARK", - "value": 4 - }, - { - "name": "GEAR_DRIVE", - "value": 8 - }, - { - "name": "GEAR_1", - "value": 16 - }, - { - "name": "GEAR_2", - "value": 32 - }, - { - "name": "GEAR_3", - "value": 64 - }, - { - "name": "GEAR_4", - "value": 128 - }, - { - "name": "GEAR_5", - "value": 256 - }, - { - "name": "GEAR_6", - "value": 512 - }, - { - "name": "GEAR_7", - "value": 1024 - }, - { - "name": "GEAR_8", - "value": 2048 - }, - { - "name": "GEAR_9", - "value": 4096 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsStartSessionMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SERVICE_ID", - "value": 1 - }, - { - "name": "CLIENT_ID", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2FuelSystemStatus", - "values": [ - { - "name": "OPEN_INSUFFICIENT_ENGINE_TEMPERATURE", - "value": 1 - }, - { - "name": "CLOSED_LOOP", - "value": 2 - }, - { - "name": "OPEN_ENGINE_LOAD_OR_DECELERATION", - "value": 4 - }, - { - "name": "OPEN_SYSTEM_FAILURE", - "value": 8 - }, - { - "name": "CLOSED_LOOP_BUT_FEEDBACK_FAULT", - "value": 16 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ElectronicTollCollectionCardStatus", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", - "value": 1 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", - "value": 2 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateShutdownParam", - "values": [ - { - "name": "SHUTDOWN_IMMEDIATELY", - "value": 1 - }, - { - "name": "CAN_SLEEP", - "value": 2 - }, - { - "name": "SHUTDOWN_ONLY", - "value": 3 - }, - { - "name": "SLEEP_IMMEDIATELY", - "value": 4 - }, - { - "name": "HIBERNATE_IMMEDIATELY", - "value": 5 - }, - { - "name": "CAN_HIBERNATE", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CustomInputType", - "values": [ - { - "name": "CUSTOM_EVENT_F1", - "value": 1001 - }, - { - "name": "CUSTOM_EVENT_F2", - "value": 1002 - }, - { - "name": "CUSTOM_EVENT_F3", - "value": 1003 - }, - { - "name": "CUSTOM_EVENT_F4", - "value": 1004 - }, - { - "name": "CUSTOM_EVENT_F5", - "value": 1005 - }, - { - "name": "CUSTOM_EVENT_F6", - "value": 1006 - }, - { - "name": "CUSTOM_EVENT_F7", - "value": 1007 - }, - { - "name": "CUSTOM_EVENT_F8", - "value": 1008 - }, - { - "name": "CUSTOM_EVENT_F9", - "value": 1009 - }, - { - "name": "CUSTOM_EVENT_F10", - "value": 1010 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleTurnSignal", - "values": [ - { - "name": "NONE", - "value": 0 - }, - { - "name": "RIGHT", - "value": 1 - }, - { - "name": "LEFT", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ElectronicTollCollectionCardType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", - "value": 1 - }, - { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleProperty", - "values": [ - { - "name": "Undefined property.", - "value": 0 - }, - { - "name": "VIN of vehicle", - "value": 286261504, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Manufacturer of vehicle", - "value": 286261505, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Model of vehicle", - "value": 286261506, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Model year of vehicle.", - "value": 289407235, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:YEAR" - }, - { - "name": "Fuel capacity of the vehicle in milliliters", - "value": 291504388, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" - }, - { - "name": "List of fuels the vehicle may use.", - "value": 289472773, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "FuelType" - }, - { - "name": "Nominal battery capacity for EV or hybrid vehicle", - "value": 291504390, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "List of connectors this EV may use", - "value": 289472775, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "EvConnectorType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Fuel door location", - "value": 289407240, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "PortLocationType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "EV port location", - "value": 289407241, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" - }, - { - "name": "INFO_DRIVER_SEAT", - "value": 356516106, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "VehicleAreaSeat", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Exterior dimensions of vehicle.", - "value": 289472779, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLIMETER" - }, - { - "name": "Multiple EV port locations", - "value": 289472780, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" - }, - { - "name": "Current odometer value of the vehicle", - "value": 291504644, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOMETER" - }, - { - "name": "Speed of the vehicle", - "value": 291504647, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "Speed of the vehicle for displays", - "value": 291504648, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "Front bicycle model steering angle for vehicle", - "value": 291504649, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" - }, - { - "name": "Rear bicycle model steering angle for vehicle", - "value": 291504656, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" - }, - { - "name": "Temperature of engine coolant", - "value": 291504897, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Engine oil level", - "value": 289407747, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleOilLevel" - }, - { - "name": "Temperature of engine oil", - "value": 291504900, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Engine rpm", - "value": 291504901, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:RPM" - }, - { - "name": "Reports wheel ticks", - "value": 290521862, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "FUEL_LEVEL", - "value": 291504903, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" - }, - { - "name": "Fuel door open", - "value": 287310600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Battery level for EV or hybrid vehicle", - "value": 291504905, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "Current battery capacity for EV or hybrid vehicle", - "value": 291504909, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "EV charge port open", - "value": 287310602, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EV charge port connected", - "value": 287310603, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "EV instantaneous charge rate in milliwatts", - "value": 291504908, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MW" - }, - { - "name": "Range remaining", - "value": 291504904, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:METER" - }, - { - "name": "Tire pressure", - "value": 392168201, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" - }, - { - "name": "Critically low tire pressure", - "value": 392168202, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" - }, - { - "name": "Represents feature for engine idle automatic stop.", - "value": 287310624, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Currently selected gear", - "value": 289408000, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" - }, - { - "name": "CURRENT_GEAR", - "value": 289408001, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" - }, - { - "name": "Parking brake state.", - "value": 287310850, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "PARKING_BRAKE_AUTO_APPLY", - "value": 287310851, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Regenerative braking level of a electronic vehicle", - "value": 289408012, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Warning for fuel low level.", - "value": 287310853, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Night mode", - "value": 287310855, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "State of the vehicles turn signals", - "value": 289408008, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleTurnSignal" - }, - { - "name": "Represents ignition state", - "value": 289408009, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleIgnitionState" - }, - { - "name": "ABS is active", - "value": 287310858, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Traction Control is active", - "value": 287310859, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Represents property for the current stopping mode of the vehicle.", - "value": 289408013, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "EvStoppingMode" - }, - { - "name": "HVAC Properties", - "value": 356517120, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Fan direction setting", - "value": 356517121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleHvacFanDirection" - }, - { - "name": "HVAC current temperature.", - "value": 358614274, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "HVAC_TEMPERATURE_SET", - "value": 358614275, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "HVAC_DEFROSTER", - "value": 320865540, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_AC_ON", - "value": 354419973, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "config_flags": "Supported" - }, - { - "name": "HVAC_MAX_AC_ON", - "value": 354419974, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_MAX_DEFROST_ON", - "value": 354419975, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_RECIRC_ON", - "value": 354419976, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Enable temperature coupling between areas.", - "value": 354419977, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_AUTO_ON", - "value": 354419978, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_SEAT_TEMPERATURE", - "value": 356517131, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Side Mirror Heat", - "value": 339739916, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_STEERING_WHEEL_HEAT", - "value": 289408269, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Temperature units for display", - "value": 289408270, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Actual fan speed", - "value": 356517135, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "HVAC_POWER_ON", - "value": 354419984, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Fan Positions Available", - "value": 356582673, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleHvacFanDirection" - }, - { - "name": "HVAC_AUTO_RECIRC_ON", - "value": 354419986, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat ventilation", - "value": 356517139, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_ELECTRIC_DEFROSTER_ON", - "value": 320865556, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Suggested values for setting HVAC temperature.", - "value": 291570965, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Distance units for display", - "value": 289408512, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Fuel volume units for display", - "value": 289408513, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Tire pressure units for display", - "value": 289408514, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "EV battery units for display", - "value": 289408515, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Fuel consumption units for display", - "value": 287311364, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Speed units for display", - "value": 289408517, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "ANDROID_EPOCH_TIME", - "value": 290457094, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "External encryption binding seed.", - "value": 292554247, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Outside temperature", - "value": 291505923, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Property to control power state of application processor", - "value": 289475072, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Property to report power state of application processor", - "value": 289475073, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "AP_POWER_BOOTUP_REASON", - "value": 289409538, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Property to represent brightness of the display.", - "value": 289409539, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Property to represent brightness of the displays which are controlled separately.", - "value": 289475076, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HW_KEY_INPUT", - "value": 289475088, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_KEY_INPUT_V2", - "value": 367004177, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_MOTION_INPUT", - "value": 367004178, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_ROTARY_INPUT", - "value": 289475104, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "RotaryInputType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines a custom OEM partner input event.", - "value": 289475120, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "CustomInputType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "DOOR_POS", - "value": 373295872, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door move", - "value": 373295873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door lock", - "value": 371198722, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door child lock feature enabled", - "value": 371198723, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Z Position", - "value": 339741504, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Z Move", - "value": 339741505, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Y Position", - "value": 339741506, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Y Move", - "value": 339741507, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Lock", - "value": 287312708, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Fold", - "value": 287312709, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for Mirror Auto Fold feature.", - "value": 337644358, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for Mirror Auto Tilt feature.", - "value": 337644359, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat memory select", - "value": 356518784, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Seat memory set", - "value": 356518785, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Seatbelt buckled", - "value": 354421634, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seatbelt height position", - "value": 356518787, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seatbelt height move", - "value": 356518788, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_FORE_AFT_POS", - "value": 356518789, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_FORE_AFT_MOVE", - "value": 356518790, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 1 position", - "value": 356518791, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 1 move", - "value": 356518792, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 2 position", - "value": 356518793, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 2 move", - "value": 356518794, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat height position", - "value": 356518795, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat height move", - "value": 356518796, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat depth position", - "value": 356518797, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat depth move", - "value": 356518798, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat tilt position", - "value": 356518799, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat tilt move", - "value": 356518800, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_FORE_AFT_POS", - "value": 356518801, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_FORE_AFT_MOVE", - "value": 356518802, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lumbar side support position", - "value": 356518803, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lumbar side support move", - "value": 356518804, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_HEIGHT_POS", - "value": 289409941, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest height position", - "value": 356518820, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest height move", - "value": 356518806, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest angle position", - "value": 356518807, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest angle move", - "value": 356518808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_FORE_AFT_POS", - "value": 356518809, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_FORE_AFT_MOVE", - "value": 356518810, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for the seat footwell lights state.", - "value": 356518811, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Represents property for the seat footwell lights switch.", - "value": 356518812, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Represents property for Seat easy access feature.", - "value": 354421661, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_AIRBAG_ENABLED", - "value": 354421662, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_CUSHION_SIDE_SUPPORT_POS", - "value": 356518815, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for movement direction and speed of seat cushion side support.", - "value": 356518816, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_VERTICAL_POS", - "value": 356518817, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for vertical movement direction and speed of seat lumbar support.", - "value": 356518818, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_WALK_IN_POS", - "value": 356518819, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat Occupancy", - "value": 356518832, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleSeatOccupancyState" - }, - { - "name": "Window Position", - "value": 322964416, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Window Move", - "value": 322964417, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Window Lock", - "value": 320867268, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "WINDSHIELD_WIPERS_PERIOD", - "value": 322964421, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "Windshield wipers state.", - "value": 322964422, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "WindshieldWipersState" - }, - { - "name": "Windshield wipers switch.", - "value": 322964423, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "WindshieldWipersSwitch" - }, - { - "name": "Steering wheel depth position", - "value": 289410016, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel depth movement", - "value": 289410017, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel height position", - "value": 289410018, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel height movement", - "value": 289410019, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel theft lock feature enabled", - "value": 287312868, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel locked", - "value": 287312869, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel easy access feature enabled", - "value": 287312870, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Property that represents the current position of the glove box door.", - "value": 356518896, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lock or unlock the glove box.", - "value": 354421745, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "VEHICLE_MAP_SERVICE", - "value": 299895808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Characterization of inputs used for computing location.", - "value": 289410064, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Live Sensor Data", - "value": 299896064, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Sensor Data", - "value": 299896065, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Information", - "value": 299896066, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Clear", - "value": 299896067, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Headlights State", - "value": 289410560, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "High beam lights state", - "value": 289410561, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Fog light state", - "value": 289410562, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Hazard light status", - "value": 289410563, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Headlight switch", - "value": 289410576, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "High beam light switch", - "value": 289410577, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Fog light switch", - "value": 289410578, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Hazard light switch", - "value": 289410579, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Cabin lights", - "value": 289410817, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Cabin lights switch", - "value": 289410818, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Reading lights", - "value": 356519683, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Reading lights switch", - "value": 356519684, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Steering wheel lights state", - "value": 289410828, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Steering wheel lights switch", - "value": 289410829, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Support customize permissions for vendor properties", - "value": 287313669, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Allow disabling optional featurs from vhal.", - "value": 286265094, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines the initial Android user to be used during initialization.", - "value": 299896583, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Defines a request to switch the foreground Android user.", - "value": 299896584, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Called by the Android System after an Android user was created.", - "value": 299896585, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Called by the Android System after an Android user was removed.", - "value": 299896586, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "USER_IDENTIFICATION_ASSOCIATION", - "value": 299896587, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EVS_SERVICE_REQUEST", - "value": 289476368, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines a request to apply power policy.", - "value": 286265121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "POWER_POLICY_GROUP_REQ", - "value": 286265122, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Notifies the current power policy to VHAL layer.", - "value": 286265123, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "WATCHDOG_ALIVE", - "value": 290459441, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Defines a process terminated by car watchdog and the reason of termination.", - "value": 299896626, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Defines an event that VHAL signals to car watchdog as a heartbeat.", - "value": 290459443, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Starts the ClusterUI in cluster display.", - "value": 289410868, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Changes the state of the cluster display.", - "value": 289476405, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Reports the current display state and ClusterUI state.", - "value": 299896630, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Requests to change the cluster display state to show some ClusterUI.", - "value": 289410871, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Informs the current navigation state.", - "value": 292556600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Electronic Toll Collection card type.", - "value": 289410873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardType" - }, - { - "name": "Electronic Toll Collection card status.", - "value": 289410874, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardStatus" - }, - { - "name": "Front fog lights state", - "value": 289410875, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Front fog lights switch", - "value": 289410876, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Rear fog lights state", - "value": 289410877, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Rear fog lights switch", - "value": 289410878, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Indicates the maximum current draw threshold for charging set by the user", - "value": 291508031, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:AMPERE" - }, - { - "name": "Indicates the maximum charge percent threshold set by the user", - "value": 291508032, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Charging state of the car", - "value": 289410881, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvChargeState" - }, - { - "name": "Start or stop charging the EV battery", - "value": 287313730, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Estimated charge time remaining in seconds", - "value": 289410883, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:SECS" - }, - { - "name": "EV_REGENERATIVE_BRAKING_STATE", - "value": 289410884, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvRegenerativeBrakingState" - }, - { - "name": "Indicates if there is a trailer present or not.", - "value": 289410885, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "TrailerState" - }, - { - "name": "VEHICLE_CURB_WEIGHT", - "value": 289410886, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOGRAM" - }, - { - "name": "GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", - "value": 289410887, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "GsrComplianceRequirementType" - }, - { - "name": "SUPPORTED_PROPERTY_IDS", - "value": 289476424, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Request the head unit to be shutdown.", - "value": 289410889, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "VehicleApPowerStateShutdownParam" - }, - { - "name": "Whether the vehicle is currently in use.", - "value": 287313738, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Start of ADAS Properties", - "value": 287313920, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "AUTOMATIC_EMERGENCY_BRAKING_STATE", - "value": 289411073, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "FORWARD_COLLISION_WARNING_ENABLED", - "value": 287313922, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "FORWARD_COLLISION_WARNING_STATE", - "value": 289411075, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "BLIND_SPOT_WARNING_ENABLED", - "value": 287313924, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "BLIND_SPOT_WARNING_STATE", - "value": 339742725, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_DEPARTURE_WARNING_ENABLED", - "value": 287313926, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_DEPARTURE_WARNING_STATE", - "value": 289411079, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_KEEP_ASSIST_ENABLED", - "value": 287313928, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_KEEP_ASSIST_STATE", - "value": 289411081, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_CENTERING_ASSIST_ENABLED", - "value": 287313930, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_CENTERING_ASSIST_COMMAND", - "value": 289411083, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "LaneCenteringAssistCommand" - }, - { - "name": "LANE_CENTERING_ASSIST_STATE", - "value": 289411084, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "EMERGENCY_LANE_KEEP_ASSIST_ENABLED", - "value": 287313933 - }, - { - "name": "EMERGENCY_LANE_KEEP_ASSIST_STATE", - "value": 289411086, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_ENABLED", - "value": 287313935, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "CRUISE_CONTROL_TYPE", - "value": 289411088, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_STATE", - "value": 289411089, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_COMMAND", - "value": 289411090, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "CruiseControlCommand" - }, - { - "name": "CRUISE_CONTROL_TARGET_SPEED", - "value": 291508243, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP", - "value": 289411092, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE", - "value": 289411093, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLIMETER" - }, - { - "name": "HANDS_ON_DETECTION_ENABLED", - "value": 287313942, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HANDS_ON_DETECTION_DRIVER_STATE", - "value": 289411095, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "HANDS_ON_DETECTION_WARNING", - "value": 289411096, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "DiagnosticIntegerSensorIndex", - "values": [ - { - "name": "FUEL_SYSTEM_STATUS", - "value": 0 - }, - { - "name": "MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 1 - }, - { - "name": "IGNITION_MONITORS_SUPPORTED", - "value": 2 - }, - { - "name": "IGNITION_SPECIFIC_MONITORS", - "value": 3 - }, - { - "name": "INTAKE_AIR_TEMPERATURE", - "value": 4 - }, - { - "name": "COMMANDED_SECONDARY_AIR_STATUS", - "value": 5 - }, - { - "name": "NUM_OXYGEN_SENSORS_PRESENT", - "value": 6 - }, - { - "name": "RUNTIME_SINCE_ENGINE_START", - "value": 7 - }, - { - "name": "DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 8 - }, - { - "name": "WARMUPS_SINCE_CODES_CLEARED", - "value": 9 - }, - { - "name": "DISTANCE_TRAVELED_SINCE_CODES_CLEARED", - "value": 10 - }, - { - "name": "ABSOLUTE_BAROMETRIC_PRESSURE", - "value": 11 - }, - { - "name": "CONTROL_MODULE_VOLTAGE", - "value": 12 - }, - { - "name": "AMBIENT_AIR_TEMPERATURE", - "value": 13 - }, - { - "name": "TIME_WITH_MALFUNCTION_LIGHT_ON", - "value": 14 - }, - { - "name": "TIME_SINCE_TROUBLE_CODES_CLEARED", - "value": 15 - }, - { - "name": "MAX_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 16 - }, - { - "name": "MAX_OXYGEN_SENSOR_VOLTAGE", - "value": 17 - }, - { - "name": "MAX_OXYGEN_SENSOR_CURRENT", - "value": 18 - }, - { - "name": "MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 19 - }, - { - "name": "MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR", - "value": 20 - }, - { - "name": "FUEL_TYPE", - "value": 21 - }, - { - "name": "FUEL_RAIL_ABSOLUTE_PRESSURE", - "value": 22 - }, - { - "name": "ENGINE_OIL_TEMPERATURE", - "value": 23 - }, - { - "name": "DRIVER_DEMAND_PERCENT_TORQUE", - "value": 24 - }, - { - "name": "ENGINE_ACTUAL_PERCENT_TORQUE", - "value": 25 - }, - { - "name": "ENGINE_REFERENCE_PERCENT_TORQUE", - "value": 26 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_IDLE", - "value": 27 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT1", - "value": 28 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT2", - "value": 29 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT3", - "value": 30 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT4", - "value": 31 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleUnit", - "values": [ - { - "name": "SHOULD_NOT_USE", - "value": 0 - }, - { - "name": "METER_PER_SEC", - "value": 1 - }, - { - "name": "RPM", - "value": 2 - }, - { - "name": "HERTZ", - "value": 3 - }, - { - "name": "PERCENTILE", - "value": 16 - }, - { - "name": "MILLIMETER", - "value": 32 - }, - { - "name": "METER", - "value": 33 - }, - { - "name": "KILOMETER", - "value": 35 - }, - { - "name": "MILE", - "value": 36 - }, - { - "name": "CELSIUS", - "value": 48 - }, - { - "name": "FAHRENHEIT", - "value": 49 - }, - { - "name": "KELVIN", - "value": 50 - }, - { - "name": "MILLILITER", - "value": 64 - }, - { - "name": "LITER", - "value": 65 - }, - { - "name": "GALLON", - "value": 66 - }, - { - "name": "US_GALLON", - "value": 66 - }, - { - "name": "IMPERIAL_GALLON", - "value": 67 - }, - { - "name": "NANO_SECS", - "value": 80 - }, - { - "name": "MILLI_SECS", - "value": 81 - }, - { - "name": "SECS", - "value": 83 - }, - { - "name": "YEAR", - "value": 89 - }, - { - "name": "WATT_HOUR", - "value": 96 - }, - { - "name": "MILLIAMPERE", - "value": 97 - }, - { - "name": "MILLIVOLT", - "value": 98 - }, - { - "name": "MILLIWATTS", - "value": 99 - }, - { - "name": "AMPERE_HOURS", - "value": 100 - }, - { - "name": "KILOWATT_HOUR", - "value": 101 - }, - { - "name": "AMPERE", - "value": 102 - }, - { - "name": "KILOPASCAL", - "value": 112 - }, - { - "name": "PSI", - "value": 113 - }, - { - "name": "BAR", - "value": 114 - }, - { - "name": "DEGREES", - "value": 128 - }, - { - "name": "MILES_PER_HOUR", - "value": 144 - }, - { - "name": "KILOMETERS_PER_HOUR", - "value": 145 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneCenteringAssistCommand", - "values": [ - { - "name": "ACTIVATE", - "value": 1 - }, - { - "name": "DEACTIVATE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2FuelType", - "values": [ - { - "name": "NOT_AVAILABLE", - "value": 0 - }, - { - "name": "GASOLINE", - "value": 1 - }, - { - "name": "METHANOL", - "value": 2 - }, - { - "name": "ETHANOL", - "value": 3 - }, - { - "name": "DIESEL", - "value": 4 - }, - { - "name": "LPG", - "value": 5 - }, - { - "name": "CNG", - "value": 6 - }, - { - "name": "PROPANE", - "value": 7 - }, - { - "name": "ELECTRIC", - "value": 8 - }, - { - "name": "BIFUEL_RUNNING_GASOLINE", - "value": 9 - }, - { - "name": "BIFUEL_RUNNING_METHANOL", - "value": 10 - }, - { - "name": "BIFUEL_RUNNING_ETHANOL", - "value": 11 - }, - { - "name": "BIFUEL_RUNNING_LPG", - "value": 12 - }, - { - "name": "BIFUEL_RUNNING_CNG", - "value": 13 - }, - { - "name": "BIFUEL_RUNNING_PROPANE", - "value": 14 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC", - "value": 15 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 16 - }, - { - "name": "HYBRID_GASOLINE", - "value": 17 - }, - { - "name": "HYBRID_ETHANOL", - "value": 18 - }, - { - "name": "HYBRID_DIESEL", - "value": 19 - }, - { - "name": "HYBRID_ELECTRIC", - "value": 20 - }, - { - "name": "HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 21 - }, - { - "name": "HYBRID_REGENERATIVE", - "value": 22 - }, - { - "name": "BIFUEL_RUNNING_DIESEL", - "value": 23 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ProcessTerminationReason", - "values": [ - { - "name": "NOT_RESPONDING", - "value": 1 - }, - { - "name": "IO_OVERUSE", - "value": 2 - }, - { - "name": "MEMORY_OVERUSE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageWithLayerAndPublisherIdIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "LAYER_TYPE", - "value": 1 - }, - { - "name": "LAYER_SUBTYPE", - "value": 2 - }, - { - "name": "LAYER_VERSION", - "value": 3 - }, - { - "name": "PUBLISHER_ID", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvChargeState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "CHARGING", - "value": 1 - }, - { - "name": "FULLY_CHARGED", - "value": 2 - }, - { - "name": "NOT_CHARGING", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 - } - ] - } + { + "name": "VehicleProperty", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "VIN of vehicle", + "value": 286261504 + }, + { + "name": "Manufacturer of vehicle", + "value": 286261505 + }, + { + "name": "Model of vehicle", + "value": 286261506 + }, + { + "name": "Model year of vehicle.", + "value": 289407235 + }, + { + "name": "INFO_FUEL_CAPACITY", + "value": 291504388 + }, + { + "name": "INFO_FUEL_TYPE", + "value": 289472773, + "data_enums": [ + "FuelType" + ], + "data_enum": "FuelType" + }, + { + "name": "INFO_EV_BATTERY_CAPACITY", + "value": 291504390 + }, + { + "name": "INFO_EV_CONNECTOR_TYPE", + "value": 289472775, + "data_enums": [ + "EvConnectorType" + ], + "data_enum": "EvConnectorType" + }, + { + "name": "Fuel door location", + "value": 289407240, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "EV port location", + "value": 289407241, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "INFO_DRIVER_SEAT", + "value": 356516106, + "data_enums": [ + "VehicleAreaSeat" + ], + "data_enum": "VehicleAreaSeat" + }, + { + "name": "INFO_EXTERIOR_DIMENSIONS", + "value": 289472779 + }, + { + "name": "Multiple EV port locations", + "value": 289472780, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "PERF_ODOMETER", + "value": 291504644 + }, + { + "name": "Speed of the vehicle", + "value": 291504647 + }, + { + "name": "PERF_VEHICLE_SPEED_DISPLAY", + "value": 291504648 + }, + { + "name": "PERF_STEERING_ANGLE", + "value": 291504649 + }, + { + "name": "PERF_REAR_STEERING_ANGLE", + "value": 291504656 + }, + { + "name": "Temperature of engine coolant", + "value": 291504897 + }, + { + "name": "Engine oil level", + "value": 289407747, + "data_enums": [ + "VehicleOilLevel" + ], + "data_enum": "VehicleOilLevel" + }, + { + "name": "Temperature of engine oil", + "value": 291504900 + }, + { + "name": "Engine rpm", + "value": 291504901 + }, + { + "name": "Reports wheel ticks", + "value": 290521862 + }, + { + "name": "FUEL_LEVEL", + "value": 291504903 + }, + { + "name": "Fuel door open", + "value": 287310600 + }, + { + "name": "EV_BATTERY_LEVEL", + "value": 291504905 + }, + { + "name": "EV_CURRENT_BATTERY_CAPACITY", + "value": 291504909 + }, + { + "name": "EV charge port open", + "value": 287310602 + }, + { + "name": "EV charge port connected", + "value": 287310603 + }, + { + "name": "EV_BATTERY_INSTANTANEOUS_CHARGE_RATE", + "value": 291504908 + }, + { + "name": "Range remaining", + "value": 291504904 + }, + { + "name": "EV battery average temperature", + "value": 291504910 + }, + { + "name": "Tire pressure", + "value": 392168201 + }, + { + "name": "Critically low tire pressure", + "value": 392168202 + }, + { + "name": "ENGINE_IDLE_AUTO_STOP_ENABLED", + "value": 287310624 + }, + { + "name": "Impact detected.", + "value": 289407792, + "data_enums": [ + "ImpactSensorLocation" + ], + "data_enum": "ImpactSensorLocation" + }, + { + "name": "Currently selected gear", + "value": 289408000, + "data_enums": [ + "VehicleGear" + ], + "data_enum": "VehicleGear" + }, + { + "name": "CURRENT_GEAR", + "value": 289408001, + "data_enums": [ + "VehicleGear" + ], + "data_enum": "VehicleGear" + }, + { + "name": "Parking brake state.", + "value": 287310850 + }, + { + "name": "Auto-apply parking brake.", + "value": 287310851 + }, + { + "name": "EV_BRAKE_REGENERATION_LEVEL", + "value": 289408012 + }, + { + "name": "Warning for fuel low level.", + "value": 287310853 + }, + { + "name": "Night mode", + "value": 287310855 + }, + { + "name": "TURN_SIGNAL_STATE", + "value": 289408008, + "data_enums": [ + "VehicleTurnSignal" + ], + "data_enum": "VehicleTurnSignal" + }, + { + "name": "Represents ignition state", + "value": 289408009, + "data_enums": [ + "VehicleIgnitionState" + ], + "data_enum": "VehicleIgnitionState" + }, + { + "name": "ABS is active", + "value": 287310858 + }, + { + "name": "Traction Control is active", + "value": 287310859 + }, + { + "name": "EV_STOPPING_MODE", + "value": 289408013, + "data_enums": [ + "EvStoppingMode" + ], + "data_enum": "EvStoppingMode" + }, + { + "name": "ELECTRONIC_STABILITY_CONTROL_ENABLED", + "value": 287310862 + }, + { + "name": "ELECTRONIC_STABILITY_CONTROL_STATE", + "value": 289408015, + "data_enums": [ + "ElectronicStabilityControlState", + "ErrorState" + ], + "data_enum": "ElectronicStabilityControlState" + }, + { + "name": "Fan speed setting", + "value": 356517120 + }, + { + "name": "Fan direction setting", + "value": 356517121, + "data_enums": [ + "VehicleHvacFanDirection" + ], + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "HVAC current temperature.", + "value": 358614274 + }, + { + "name": "HVAC, target temperature set.", + "value": 358614275 + }, + { + "name": "HVAC_DEFROSTER", + "value": 320865540 + }, + { + "name": "HVAC_AC_ON", + "value": 354419973 + }, + { + "name": "On\/off max AC", + "value": 354419974 + }, + { + "name": "On\/off max defrost", + "value": 354419975 + }, + { + "name": "Recirculation on\/off", + "value": 354419976 + }, + { + "name": "HVAC_DUAL_ON", + "value": 354419977 + }, + { + "name": "HVAC_AUTO_ON", + "value": 354419978 + }, + { + "name": "Seat heating\/cooling", + "value": 356517131 + }, + { + "name": "Side Mirror Heat", + "value": 339739916 + }, + { + "name": "Steering Wheel Heating\/Cooling", + "value": 289408269 + }, + { + "name": "Temperature units for display", + "value": 289408270, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "Actual fan speed", + "value": 356517135 + }, + { + "name": "HVAC_POWER_ON", + "value": 354419984 + }, + { + "name": "Fan Positions Available", + "value": 356582673, + "data_enums": [ + "VehicleHvacFanDirection" + ], + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "Automatic recirculation on\/off", + "value": 354419986 + }, + { + "name": "Seat ventilation", + "value": 356517139 + }, + { + "name": "Electric defrosters' status", + "value": 320865556 + }, + { + "name": "HVAC_TEMPERATURE_VALUE_SUGGESTION", + "value": 291570965 + }, + { + "name": "Distance units for display", + "value": 289408512, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "Fuel volume units for display", + "value": 289408513, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "TIRE_PRESSURE_DISPLAY_UNITS", + "value": 289408514, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "EV battery units for display", + "value": 289408515, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME", + "value": 287311364 + }, + { + "name": "Speed units for display", + "value": 289408517 + }, + { + "name": "EXTERNAL_CAR_TIME", + "value": 290457096 + }, + { + "name": "ANDROID_EPOCH_TIME", + "value": 290457094 + }, + { + "name": "STORAGE_ENCRYPTION_BINDING_SEED", + "value": 292554247 + }, + { + "name": "Outside temperature", + "value": 291505923 + }, + { + "name": "AP_POWER_STATE_REQ", + "value": 289475072 + }, + { + "name": "AP_POWER_STATE_REPORT", + "value": 289475073 + }, + { + "name": "AP_POWER_BOOTUP_REASON", + "value": 289409538 + }, + { + "name": "DISPLAY_BRIGHTNESS", + "value": 289409539 + }, + { + "name": "PER_DISPLAY_BRIGHTNESS", + "value": 289475076 + }, + { + "name": "Valet mode enabled", + "value": 287312389 + }, + { + "name": "HW_KEY_INPUT", + "value": 289475088 + }, + { + "name": "HW_KEY_INPUT_V2", + "value": 367004177 + }, + { + "name": "HW_MOTION_INPUT", + "value": 367004178 + }, + { + "name": "HW_ROTARY_INPUT", + "value": 289475104, + "data_enums": [ + "RotaryInputType" + ], + "data_enum": "RotaryInputType" + }, + { + "name": "HW_CUSTOM_INPUT", + "value": 289475120, + "data_enums": [ + "CustomInputType" + ], + "data_enum": "CustomInputType" + }, + { + "name": "Door position", + "value": 373295872 + }, + { + "name": "Door move", + "value": 373295873 + }, + { + "name": "Door lock", + "value": 371198722 + }, + { + "name": "DOOR_CHILD_LOCK_ENABLED", + "value": 371198723 + }, + { + "name": "Mirror Z Position", + "value": 339741504 + }, + { + "name": "Mirror Z Move", + "value": 339741505 + }, + { + "name": "Mirror Y Position", + "value": 339741506 + }, + { + "name": "Mirror Y Move", + "value": 339741507 + }, + { + "name": "Mirror Lock", + "value": 287312708 + }, + { + "name": "Mirror Fold", + "value": 287312709 + }, + { + "name": "MIRROR_AUTO_FOLD_ENABLED", + "value": 337644358 + }, + { + "name": "MIRROR_AUTO_TILT_ENABLED", + "value": 337644359 + }, + { + "name": "Seat memory select", + "value": 356518784 + }, + { + "name": "Seat memory set", + "value": 356518785 + }, + { + "name": "Seatbelt buckled", + "value": 354421634 + }, + { + "name": "Seatbelt height position", + "value": 356518787 + }, + { + "name": "Seatbelt height move", + "value": 356518788 + }, + { + "name": "Seat fore\/aft position", + "value": 356518789 + }, + { + "name": "Seat fore\/aft move", + "value": 356518790 + }, + { + "name": "Seat backrest angle 1 position", + "value": 356518791 + }, + { + "name": "Seat backrest angle 1 move", + "value": 356518792 + }, + { + "name": "Seat backrest angle 2 position", + "value": 356518793 + }, + { + "name": "Seat backrest angle 2 move", + "value": 356518794 + }, + { + "name": "Seat height position", + "value": 356518795 + }, + { + "name": "Seat height move", + "value": 356518796 + }, + { + "name": "Seat depth position", + "value": 356518797 + }, + { + "name": "Seat depth move", + "value": 356518798 + }, + { + "name": "Seat tilt position", + "value": 356518799 + }, + { + "name": "Seat tilt move", + "value": 356518800 + }, + { + "name": "Lumber fore\/aft position", + "value": 356518801 + }, + { + "name": "Lumbar fore\/aft move", + "value": 356518802 + }, + { + "name": "Lumbar side support position", + "value": 356518803 + }, + { + "name": "Lumbar side support move", + "value": 356518804 + }, + { + "name": "SEAT_HEADREST_HEIGHT_POS", + "value": 289409941 + }, + { + "name": "Headrest height position", + "value": 356518820 + }, + { + "name": "Headrest height move", + "value": 356518806 + }, + { + "name": "Headrest angle position", + "value": 356518807 + }, + { + "name": "Headrest angle move", + "value": 356518808 + }, + { + "name": "Headrest fore\/aft position", + "value": 356518809 + }, + { + "name": "Headrest fore\/aft move", + "value": 356518810 + }, + { + "name": "SEAT_FOOTWELL_LIGHTS_STATE", + "value": 356518811, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "SEAT_FOOTWELL_LIGHTS_SWITCH", + "value": 356518812, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "SEAT_EASY_ACCESS_ENABLED", + "value": 354421661 + }, + { + "name": "SEAT_AIRBAG_ENABLED", + "value": 354421662 + }, + { + "name": "Seat airbags deployed", + "value": 356518821, + "data_enums": [ + "VehicleAirbagLocation" + ], + "data_enum": "VehicleAirbagLocation" + }, + { + "name": "SEAT_CUSHION_SIDE_SUPPORT_POS", + "value": 356518815 + }, + { + "name": "SEAT_CUSHION_SIDE_SUPPORT_MOVE", + "value": 356518816 + }, + { + "name": "SEAT_LUMBAR_VERTICAL_POS", + "value": 356518817 + }, + { + "name": "SEAT_LUMBAR_VERTICAL_MOVE", + "value": 356518818 + }, + { + "name": "SEAT_WALK_IN_POS", + "value": 356518819 + }, + { + "name": "SEAT_BELT_PRETENSIONER_DEPLOYED", + "value": 354421670 + }, + { + "name": "Seat Occupancy", + "value": 356518832, + "data_enums": [ + "VehicleSeatOccupancyState" + ], + "data_enum": "VehicleSeatOccupancyState" + }, + { + "name": "Window Position", + "value": 322964416 + }, + { + "name": "Window Move", + "value": 322964417 + }, + { + "name": "Window Lock", + "value": 320867268 + }, + { + "name": "WINDSHIELD_WIPERS_PERIOD", + "value": 322964421 + }, + { + "name": "Windshield wipers state.", + "value": 322964422, + "data_enums": [ + "WindshieldWipersState" + ], + "data_enum": "WindshieldWipersState" + }, + { + "name": "Windshield wipers switch.", + "value": 322964423, + "data_enums": [ + "WindshieldWipersSwitch" + ], + "data_enum": "WindshieldWipersSwitch" + }, + { + "name": "Steering wheel depth position", + "value": 289410016 + }, + { + "name": "Steering wheel depth movement", + "value": 289410017 + }, + { + "name": "Steering wheel height position", + "value": 289410018 + }, + { + "name": "Steering wheel height movement", + "value": 289410019 + }, + { + "name": "STEERING_WHEEL_THEFT_LOCK_ENABLED", + "value": 287312868 + }, + { + "name": "Steering wheel locked", + "value": 287312869 + }, + { + "name": "STEERING_WHEEL_EASY_ACCESS_ENABLED", + "value": 287312870 + }, + { + "name": "GLOVE_BOX_DOOR_POS", + "value": 356518896 + }, + { + "name": "Lock or unlock the glove box.", + "value": 354421745 + }, + { + "name": "VEHICLE_MAP_SERVICE", + "value": 299895808 + }, + { + "name": "LOCATION_CHARACTERIZATION", + "value": 289410064 + }, + { + "name": "ULTRASONICS_SENSOR_POSITION", + "value": 406916128 + }, + { + "name": "ULTRASONICS_SENSOR_ORIENTATION", + "value": 406916129 + }, + { + "name": "ULTRASONICS_SENSOR_FIELD_OF_VIEW", + "value": 406916130 + }, + { + "name": "ULTRASONICS_SENSOR_DETECTION_RANGE", + "value": 406916131 + }, + { + "name": "ULTRASONICS_SENSOR_SUPPORTED_RANGES", + "value": 406916132 + }, + { + "name": "OBD2 Live Sensor Data", + "value": 299896064 + }, + { + "name": "OBD2 Freeze Frame Sensor Data", + "value": 299896065 + }, + { + "name": "OBD2 Freeze Frame Information", + "value": 299896066 + }, + { + "name": "OBD2 Freeze Frame Clear", + "value": 299896067 + }, + { + "name": "Headlights State", + "value": 289410560, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "High beam lights state", + "value": 289410561, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Fog light state", + "value": 289410562, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Hazard light status", + "value": 289410563, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Headlight switch", + "value": 289410576, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "High beam light switch", + "value": 289410577, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Fog light switch", + "value": 289410578, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Hazard light switch", + "value": 289410579, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Cabin lights", + "value": 289410817, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Cabin lights switch", + "value": 289410818, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Reading lights", + "value": 356519683, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Reading lights switch", + "value": 356519684, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Steering wheel lights state", + "value": 289410828, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Steering wheel lights switch", + "value": 289410829, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "SUPPORT_CUSTOMIZE_VENDOR_PERMISSION", + "value": 287313669 + }, + { + "name": "DISABLED_OPTIONAL_FEATURES", + "value": 286265094 + }, + { + "name": "INITIAL_USER_INFO", + "value": 299896583 + }, + { + "name": "SWITCH_USER", + "value": 299896584 + }, + { + "name": "CREATE_USER", + "value": 299896585 + }, + { + "name": "REMOVE_USER", + "value": 299896586 + }, + { + "name": "USER_IDENTIFICATION_ASSOCIATION", + "value": 299896587 + }, + { + "name": "Enable\/request an EVS service.", + "value": 289476368 + }, + { + "name": "POWER_POLICY_REQ", + "value": 286265121 + }, + { + "name": "POWER_POLICY_GROUP_REQ", + "value": 286265122 + }, + { + "name": "CURRENT_POWER_POLICY", + "value": 286265123 + }, + { + "name": "WATCHDOG_ALIVE", + "value": 290459441 + }, + { + "name": "WATCHDOG_TERMINATED_PROCESS", + "value": 299896626 + }, + { + "name": "VHAL_HEARTBEAT", + "value": 290459443 + }, + { + "name": "CLUSTER_SWITCH_UI", + "value": 289410868 + }, + { + "name": "CLUSTER_DISPLAY_STATE", + "value": 289476405 + }, + { + "name": "CLUSTER_REPORT_STATE", + "value": 299896630 + }, + { + "name": "CLUSTER_REQUEST_DISPLAY", + "value": 289410871 + }, + { + "name": "CLUSTER_NAVIGATION_STATE", + "value": 292556600 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", + "value": 289410873, + "data_enums": [ + "ElectronicTollCollectionCardType" + ], + "data_enum": "ElectronicTollCollectionCardType" + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_STATUS", + "value": 289410874, + "data_enums": [ + "ElectronicTollCollectionCardStatus" + ], + "data_enum": "ElectronicTollCollectionCardStatus" + }, + { + "name": "Front fog lights state", + "value": 289410875, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Front fog lights switch", + "value": 289410876, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Rear fog lights state", + "value": 289410877, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Rear fog lights switch", + "value": 289410878, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "EV_CHARGE_CURRENT_DRAW_LIMIT", + "value": 291508031 + }, + { + "name": "EV_CHARGE_PERCENT_LIMIT", + "value": 291508032 + }, + { + "name": "Charging state of the car", + "value": 289410881, + "data_enums": [ + "EvChargeState" + ], + "data_enum": "EvChargeState" + }, + { + "name": "EV_CHARGE_SWITCH", + "value": 287313730 + }, + { + "name": "EV_CHARGE_TIME_REMAINING", + "value": 289410883 + }, + { + "name": "EV_REGENERATIVE_BRAKING_STATE", + "value": 289410884, + "data_enums": [ + "EvRegenerativeBrakingState" + ], + "data_enum": "EvRegenerativeBrakingState" + }, + { + "name": "TRAILER_PRESENT", + "value": 289410885, + "data_enums": [ + "TrailerState" + ], + "data_enum": "TrailerState" + }, + { + "name": "Vehicle’s curb weight", + "value": 289410886 + }, + { + "name": "GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", + "value": 289410887, + "data_enums": [ + "GsrComplianceRequirementType" + ], + "data_enum": "GsrComplianceRequirementType" + }, + { + "name": "SUPPORTED_PROPERTY_IDS", + "value": 289476424 + }, + { + "name": "SHUTDOWN_REQUEST", + "value": 289410889, + "data_enums": [ + "VehicleApPowerStateShutdownParam" + ], + "data_enum": "VehicleApPowerStateShutdownParam" + }, + { + "name": "VEHICLE_IN_USE", + "value": 287313738 + }, + { + "name": "CLUSTER_HEARTBEAT", + "value": 299896651 + }, + { + "name": "VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL", + "value": 289410892, + "data_enums": [ + "VehicleAutonomousState" + ], + "data_enum": "VehicleAutonomousState" + }, + { + "name": "AUTOMATIC_EMERGENCY_BRAKING_ENABLED", + "value": 287313920 + }, + { + "name": "AUTOMATIC_EMERGENCY_BRAKING_STATE", + "value": 289411073, + "data_enums": [ + "AutomaticEmergencyBrakingState", + "ErrorState" + ], + "data_enum": "AutomaticEmergencyBrakingState" + }, + { + "name": "FORWARD_COLLISION_WARNING_ENABLED", + "value": 287313922 + }, + { + "name": "FORWARD_COLLISION_WARNING_STATE", + "value": 289411075, + "data_enums": [ + "ForwardCollisionWarningState", + "ErrorState" + ], + "data_enum": "ForwardCollisionWarningState" + }, + { + "name": "BLIND_SPOT_WARNING_ENABLED", + "value": 287313924 + }, + { + "name": "BLIND_SPOT_WARNING_STATE", + "value": 339742725, + "data_enums": [ + "BlindSpotWarningState", + "ErrorState" + ], + "data_enum": "BlindSpotWarningState" + }, + { + "name": "LANE_DEPARTURE_WARNING_ENABLED", + "value": 287313926 + }, + { + "name": "LANE_DEPARTURE_WARNING_STATE", + "value": 289411079, + "data_enums": [ + "LaneDepartureWarningState", + "ErrorState" + ], + "data_enum": "LaneDepartureWarningState" + }, + { + "name": "LANE_KEEP_ASSIST_ENABLED", + "value": 287313928 + }, + { + "name": "Lane Keep Assist (LKA) state.", + "value": 289411081, + "data_enums": [ + "LaneKeepAssistState", + "ErrorState" + ], + "data_enum": "LaneKeepAssistState" + }, + { + "name": "LANE_CENTERING_ASSIST_ENABLED", + "value": 287313930 + }, + { + "name": "LANE_CENTERING_ASSIST_COMMAND", + "value": 289411083, + "data_enums": [ + "LaneCenteringAssistCommand" + ], + "data_enum": "LaneCenteringAssistCommand" + }, + { + "name": "LANE_CENTERING_ASSIST_STATE", + "value": 289411084, + "data_enums": [ + "LaneCenteringAssistState", + "ErrorState" + ], + "data_enum": "LaneCenteringAssistState" + }, + { + "name": "EMERGENCY_LANE_KEEP_ASSIST_ENABLED", + "value": 287313933 + }, + { + "name": "EMERGENCY_LANE_KEEP_ASSIST_STATE", + "value": 289411086, + "data_enums": [ + "EmergencyLaneKeepAssistState", + "ErrorState" + ], + "data_enum": "EmergencyLaneKeepAssistState" + }, + { + "name": "CRUISE_CONTROL_ENABLED", + "value": 287313935 + }, + { + "name": "CRUISE_CONTROL_TYPE", + "value": 289411088, + "data_enums": [ + "CruiseControlType", + "ErrorState" + ], + "data_enum": "CruiseControlType" + }, + { + "name": "CRUISE_CONTROL_STATE", + "value": 289411089, + "data_enums": [ + "CruiseControlState", + "ErrorState" + ], + "data_enum": "CruiseControlState" + }, + { + "name": "CRUISE_CONTROL_COMMAND", + "value": 289411090, + "data_enums": [ + "CruiseControlCommand" + ], + "data_enum": "CruiseControlCommand" + }, + { + "name": "CRUISE_CONTROL_TARGET_SPEED", + "value": 291508243 + }, + { + "name": "ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP", + "value": 289411092 + }, + { + "name": "ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE", + "value": 289411093 + }, + { + "name": "HANDS_ON_DETECTION_ENABLED", + "value": 287313942 + }, + { + "name": "HANDS_ON_DETECTION_DRIVER_STATE", + "value": 289411095, + "data_enums": [ + "HandsOnDetectionDriverState", + "ErrorState" + ], + "data_enum": "HandsOnDetectionDriverState" + }, + { + "name": "HANDS_ON_DETECTION_WARNING", + "value": 289411096, + "data_enums": [ + "HandsOnDetectionWarning", + "ErrorState" + ], + "data_enum": "HandsOnDetectionWarning" + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED", + "value": 287313945 + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_STATE", + "value": 289411098, + "data_enums": [ + "DriverDrowsinessAttentionState", + "ErrorState" + ], + "data_enum": "DriverDrowsinessAttentionState" + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED", + "value": 287313947 + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_WARNING", + "value": 289411100, + "data_enums": [ + "DriverDrowsinessAttentionWarning", + "ErrorState" + ], + "data_enum": "DriverDrowsinessAttentionWarning" + }, + { + "name": "DRIVER_DISTRACTION_SYSTEM_ENABLED", + "value": 287313949 + }, + { + "name": "Driver distraction state.", + "value": 289411102, + "data_enums": [ + "DriverDistractionState", + "ErrorState" + ], + "data_enum": "DriverDistractionState" + }, + { + "name": "DRIVER_DISTRACTION_WARNING_ENABLED", + "value": 287313951 + }, + { + "name": "Driver distraction warning.", + "value": 289411104, + "data_enums": [ + "DriverDistractionWarning", + "ErrorState" + ], + "data_enum": "DriverDistractionWarning" + }, + { + "name": "LOW_SPEED_COLLISION_WARNING_ENABLED", + "value": 287313953 + }, + { + "name": "LOW_SPEED_COLLISION_WARNING_STATE", + "value": 289411106, + "data_enums": [ + "LowSpeedCollisionWarningState", + "ErrorState" + ], + "data_enum": "LowSpeedCollisionWarningState" + }, + { + "name": "CROSS_TRAFFIC_MONITORING_ENABLED", + "value": 287313955 + }, + { + "name": "CROSS_TRAFFIC_MONITORING_WARNING_STATE", + "value": 289411108, + "data_enums": [ + "CrossTrafficMonitoringWarningState", + "ErrorState" + ], + "data_enum": "CrossTrafficMonitoringWarningState" + } + ] + }, + { + "name": "LaneDepartureWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING_LEFT", + "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + } + ] + }, + { + "name": "HandsOnDetectionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "DriverDistractionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NOT_DISTRACTED", + "value": 1 + }, + { + "name": "DISTRACTED", + "value": 2 + } + ] + }, + { + "name": "VehicleTurnSignal", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "NONE", + "value": 0 + }, + { + "name": "RIGHT", + "value": 1 + }, + { + "name": "LEFT", + "value": 2 + } + ] + }, + { + "name": "RotaryInputType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", + "value": 0 + }, + { + "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", + "value": 1 + } + ] + }, + { + "name": "EvStoppingMode", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "CREEP", + "value": 1 + }, + { + "name": "ROLL", + "value": 2 + }, + { + "name": "HOLD", + "value": 3 + } + ] + }, + { + "name": "VehicleLightState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + } + ] + }, + { + "name": "FuelType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "FUEL_TYPE_UNKNOWN", + "value": 0 + }, + { + "name": "FUEL_TYPE_UNLEADED", + "value": 1 + }, + { + "name": "FUEL_TYPE_LEADED", + "value": 2 + }, + { + "name": "FUEL_TYPE_DIESEL_1", + "value": 3 + }, + { + "name": "FUEL_TYPE_DIESEL_2", + "value": 4 + }, + { + "name": "FUEL_TYPE_BIODIESEL", + "value": 5 + }, + { + "name": "FUEL_TYPE_E85", + "value": 6 + }, + { + "name": "FUEL_TYPE_LPG", + "value": 7 + }, + { + "name": "FUEL_TYPE_CNG", + "value": 8 + }, + { + "name": "FUEL_TYPE_LNG", + "value": 9 + }, + { + "name": "FUEL_TYPE_ELECTRIC", + "value": 10 + }, + { + "name": "FUEL_TYPE_HYDROGEN", + "value": 11 + }, + { + "name": "FUEL_TYPE_OTHER", + "value": 12 + } + ] + }, + { + "name": "VehicleIgnitionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNDEFINED", + "value": 0 + }, + { + "name": "LOCK", + "value": 1 + }, + { + "name": "OFF", + "value": 2 + }, + { + "name": "ACC", + "value": 3 + }, + { + "name": "ON", + "value": 4 + }, + { + "name": "START", + "value": 5 + } + ] + }, + { + "name": "EvConnectorType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "IEC_TYPE_1_AC", + "value": 1 + }, + { + "name": "IEC_TYPE_2_AC", + "value": 2 + }, + { + "name": "IEC_TYPE_3_AC", + "value": 3 + }, + { + "name": "IEC_TYPE_4_DC", + "value": 4 + }, + { + "name": "IEC_TYPE_1_CCS_DC", + "value": 5 + }, + { + "name": "IEC_TYPE_2_CCS_DC", + "value": 6 + }, + { + "name": "TESLA_ROADSTER", + "value": 7 + }, + { + "name": "TESLA_HPWC", + "value": 8 + }, + { + "name": "TESLA_SUPERCHARGER", + "value": 9 + }, + { + "name": "GBT_AC", + "value": 10 + }, + { + "name": "GBT_DC", + "value": 11 + }, + { + "name": "OTHER", + "value": 101 + } + ] + }, + { + "name": "TrailerState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "NOT_PRESENT", + "value": 1 + }, + { + "name": "PRESENT", + "value": 2 + }, + { + "name": "ERROR", + "value": 3 + } + ] + }, + { + "name": "DriverDrowsinessAttentionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "KSS_RATING_1_EXTREMELY_ALERT", + "value": 1 + }, + { + "name": "KSS_RATING_2_VERY_ALERT", + "value": 2 + }, + { + "name": "KSS_RATING_3_ALERT", + "value": 3 + }, + { + "name": "KSS_RATING_4_RATHER_ALERT", + "value": 4 + }, + { + "name": "KSS_RATING_5_NEITHER_ALERT_NOR_SLEEPY", + "value": 5 + }, + { + "name": "KSS_RATING_6_SOME_SLEEPINESS", + "value": 6 + }, + { + "name": "KSS_RATING_7_SLEEPY_NO_EFFORT", + "value": 7 + }, + { + "name": "KSS_RATING_8_SLEEPY_SOME_EFFORT", + "value": 8 + }, + { + "name": "KSS_RATING_9_VERY_SLEEPY", + "value": 9 + } + ] + }, + { + "name": "DriverDistractionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleAreaSeat", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "ROW_1_LEFT", + "value": 1 + }, + { + "name": "ROW_1_CENTER", + "value": 2 + }, + { + "name": "ROW_1_RIGHT", + "value": 4 + }, + { + "name": "ROW_2_LEFT", + "value": 16 + }, + { + "name": "ROW_2_CENTER", + "value": 32 + }, + { + "name": "ROW_2_RIGHT", + "value": 64 + }, + { + "name": "ROW_3_LEFT", + "value": 256 + }, + { + "name": "ROW_3_CENTER", + "value": 512 + }, + { + "name": "ROW_3_RIGHT", + "value": 1024 + } + ] + }, + { + "name": "VehicleLightSwitch", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + }, + { + "name": "AUTOMATIC", + "value": 256 + } + ] + }, + { + "name": "WindshieldWipersSwitch", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "OFF", + "value": 1 + }, + { + "name": "MIST", + "value": 2 + }, + { + "name": "INTERMITTENT_LEVEL_1", + "value": 3 + }, + { + "name": "INTERMITTENT_LEVEL_2", + "value": 4 + }, + { + "name": "INTERMITTENT_LEVEL_3", + "value": 5 + }, + { + "name": "INTERMITTENT_LEVEL_4", + "value": 6 + }, + { + "name": "INTERMITTENT_LEVEL_5", + "value": 7 + }, + { + "name": "CONTINUOUS_LEVEL_1", + "value": 8 + }, + { + "name": "CONTINUOUS_LEVEL_2", + "value": 9 + }, + { + "name": "CONTINUOUS_LEVEL_3", + "value": 10 + }, + { + "name": "CONTINUOUS_LEVEL_4", + "value": 11 + }, + { + "name": "CONTINUOUS_LEVEL_5", + "value": 12 + }, + { + "name": "AUTO", + "value": 13 + }, + { + "name": "SERVICE", + "value": 14 + } + ] + }, + { + "name": "CrossTrafficMonitoringWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING_FRONT_LEFT", + "value": 2 + }, + { + "name": "WARNING_FRONT_RIGHT", + "value": 3 + }, + { + "name": "WARNING_FRONT_BOTH", + "value": 4 + }, + { + "name": "WARNING_REAR_LEFT", + "value": 5 + }, + { + "name": "WARNING_REAR_RIGHT", + "value": 6 + }, + { + "name": "WARNING_REAR_BOTH", + "value": 7 + } + ] + }, + { + "name": "LaneCenteringAssistCommand", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ACTIVATE", + "value": 1 + }, + { + "name": "DEACTIVATE", + "value": 2 + } + ] + }, + { + "name": "VehicleSeatOccupancyState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "VACANT", + "value": 1 + }, + { + "name": "OCCUPIED", + "value": 2 + } + ] + }, + { + "name": "ErrorState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER_ERROR_STATE", + "value": -1 + }, + { + "name": "NOT_AVAILABLE_DISABLED", + "value": -2 + }, + { + "name": "NOT_AVAILABLE_SPEED_LOW", + "value": -3 + }, + { + "name": "NOT_AVAILABLE_SPEED_HIGH", + "value": -4 + }, + { + "name": "NOT_AVAILABLE_POOR_VISIBILITY", + "value": -5 + }, + { + "name": "NOT_AVAILABLE_SAFETY", + "value": -6 + } + ] + }, + { + "name": "BlindSpotWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "WindshieldWipersState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "OFF", + "value": 1 + }, + { + "name": "ON", + "value": 2 + }, + { + "name": "SERVICE", + "value": 3 + } + ] + }, + { + "name": "VehicleAirbagLocation", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 1 + }, + { + "name": "FRONT", + "value": 2 + }, + { + "name": "KNEE", + "value": 4 + }, + { + "name": "LEFT_SIDE", + "value": 8 + }, + { + "name": "RIGHT_SIDE", + "value": 16 + }, + { + "name": "CURTAIN", + "value": 32 + } + ] + }, + { + "name": "DriverDrowsinessAttentionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleOilLevel", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "CRITICALLY_LOW", + "value": 0 + }, + { + "name": "LOW", + "value": 1 + }, + { + "name": "NORMAL", + "value": 2 + }, + { + "name": "HIGH", + "value": 3 + }, + { + "name": "ERROR", + "value": 4 + } + ] + }, + { + "name": "ForwardCollisionWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleUnit", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "SHOULD_NOT_USE", + "value": 0 + }, + { + "name": "METER_PER_SEC", + "value": 1 + }, + { + "name": "RPM", + "value": 2 + }, + { + "name": "HERTZ", + "value": 3 + }, + { + "name": "PERCENTILE", + "value": 16 + }, + { + "name": "MILLIMETER", + "value": 32 + }, + { + "name": "METER", + "value": 33 + }, + { + "name": "KILOMETER", + "value": 35 + }, + { + "name": "MILE", + "value": 36 + }, + { + "name": "CELSIUS", + "value": 48 + }, + { + "name": "FAHRENHEIT", + "value": 49 + }, + { + "name": "KELVIN", + "value": 50 + }, + { + "name": "MILLILITER", + "value": 64 + }, + { + "name": "LITER", + "value": 65 + }, + { + "name": "GALLON", + "value": 66 + }, + { + "name": "US_GALLON", + "value": 66 + }, + { + "name": "IMPERIAL_GALLON", + "value": 67 + }, + { + "name": "NANO_SECS", + "value": 80 + }, + { + "name": "MILLI_SECS", + "value": 81 + }, + { + "name": "SECS", + "value": 83 + }, + { + "name": "YEAR", + "value": 89 + }, + { + "name": "WATT_HOUR", + "value": 96 + }, + { + "name": "MILLIAMPERE", + "value": 97 + }, + { + "name": "MILLIVOLT", + "value": 98 + }, + { + "name": "MILLIWATTS", + "value": 99 + }, + { + "name": "AMPERE_HOURS", + "value": 100 + }, + { + "name": "KILOWATT_HOUR", + "value": 101 + }, + { + "name": "AMPERE", + "value": 102 + }, + { + "name": "KILOPASCAL", + "value": 112 + }, + { + "name": "PSI", + "value": 113 + }, + { + "name": "BAR", + "value": 114 + }, + { + "name": "DEGREES", + "value": 128 + }, + { + "name": "MILES_PER_HOUR", + "value": 144 + }, + { + "name": "KILOMETERS_PER_HOUR", + "value": 145 + } + ] + }, + { + "name": "VehicleHvacFanDirection", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "FACE", + "value": 1 + }, + { + "name": "FLOOR", + "value": 2 + }, + { + "name": "FACE_AND_FLOOR", + "value": 3 + }, + { + "name": "DEFROST", + "value": 4 + }, + { + "name": "DEFROST_AND_FLOOR", + "value": 6 + } + ] + }, + { + "name": "LowSpeedCollisionWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "CruiseControlCommand", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ACTIVATE", + "value": 1 + }, + { + "name": "SUSPEND", + "value": 2 + }, + { + "name": "INCREASE_TARGET_SPEED", + "value": 3 + }, + { + "name": "DECREASE_TARGET_SPEED", + "value": 4 + }, + { + "name": "INCREASE_TARGET_TIME_GAP", + "value": 5 + }, + { + "name": "DECREASE_TARGET_TIME_GAP", + "value": 6 + } + ] + }, + { + "name": "ElectronicStabilityControlState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + } + ] + }, + { + "name": "EvRegenerativeBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "DISABLED", + "value": 1 + }, + { + "name": "PARTIALLY_ENABLED", + "value": 2 + }, + { + "name": "FULLY_ENABLED", + "value": 3 + } + ] + }, + { + "name": "LaneCenteringAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATION_REQUESTED", + "value": 2 + }, + { + "name": "ACTIVATED", + "value": 3 + }, + { + "name": "USER_OVERRIDE", + "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + }, + { + "name": "VehicleGear", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "GEAR_UNKNOWN", + "value": 0 + }, + { + "name": "GEAR_NEUTRAL", + "value": 1 + }, + { + "name": "GEAR_REVERSE", + "value": 2 + }, + { + "name": "GEAR_PARK", + "value": 4 + }, + { + "name": "GEAR_DRIVE", + "value": 8 + }, + { + "name": "GEAR_1", + "value": 16 + }, + { + "name": "GEAR_2", + "value": 32 + }, + { + "name": "GEAR_3", + "value": 64 + }, + { + "name": "GEAR_4", + "value": 128 + }, + { + "name": "GEAR_5", + "value": 256 + }, + { + "name": "GEAR_6", + "value": 512 + }, + { + "name": "GEAR_7", + "value": 1024 + }, + { + "name": "GEAR_8", + "value": 2048 + }, + { + "name": "GEAR_9", + "value": 4096 + } + ] + }, + { + "name": "ElectronicTollCollectionCardType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", + "value": 1 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", + "value": 2 + } + ] + }, + { + "name": "VehicleApPowerStateShutdownParam", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "SHUTDOWN_IMMEDIATELY", + "value": 1 + }, + { + "name": "CAN_SLEEP", + "value": 2 + }, + { + "name": "SHUTDOWN_ONLY", + "value": 3 + }, + { + "name": "SLEEP_IMMEDIATELY", + "value": 4 + }, + { + "name": "HIBERNATE_IMMEDIATELY", + "value": 5 + }, + { + "name": "CAN_HIBERNATE", + "value": 6 + }, + { + "name": "EMERGENCY_SHUTDOWN", + "value": 7 + } + ] + }, + { + "name": "AutomaticEmergencyBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + } + ] + }, + { + "name": "ImpactSensorLocation", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 1 + }, + { + "name": "FRONT", + "value": 2 + }, + { + "name": "FRONT_LEFT_DOOR_SIDE", + "value": 4 + }, + { + "name": "FRONT_RIGHT_DOOR_SIDE", + "value": 8 + }, + { + "name": "REAR_LEFT_DOOR_SIDE", + "value": 16 + }, + { + "name": "REAR_RIGHT_DOOR_SIDE", + "value": 32 + }, + { + "name": "REAR", + "value": 64 + } + ] + }, + { + "name": "CruiseControlType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "STANDARD", + "value": 1 + }, + { + "name": "ADAPTIVE", + "value": 2 + }, + { + "name": "PREDICTIVE", + "value": 3 + } + ] + }, + { + "name": "LaneKeepAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 2 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 3 + }, + { + "name": "USER_OVERRIDE", + "value": 4 + } + ] + }, + { + "name": "CustomInputType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "CUSTOM_EVENT_F1", + "value": 1001 + }, + { + "name": "CUSTOM_EVENT_F2", + "value": 1002 + }, + { + "name": "CUSTOM_EVENT_F3", + "value": 1003 + }, + { + "name": "CUSTOM_EVENT_F4", + "value": 1004 + }, + { + "name": "CUSTOM_EVENT_F5", + "value": 1005 + }, + { + "name": "CUSTOM_EVENT_F6", + "value": 1006 + }, + { + "name": "CUSTOM_EVENT_F7", + "value": 1007 + }, + { + "name": "CUSTOM_EVENT_F8", + "value": 1008 + }, + { + "name": "CUSTOM_EVENT_F9", + "value": 1009 + }, + { + "name": "CUSTOM_EVENT_F10", + "value": 1010 + } + ] + }, + { + "name": "ElectronicTollCollectionCardStatus", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", + "value": 1 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", + "value": 2 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", + "value": 3 + } + ] + }, + { + "name": "HandsOnDetectionDriverState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "HANDS_ON", + "value": 1 + }, + { + "name": "HANDS_OFF", + "value": 2 + } + ] + }, + { + "name": "EmergencyLaneKeepAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "WARNING_LEFT", + "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 4 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 5 + }, + { + "name": "USER_OVERRIDE", + "value": 6 + } + ] + }, + { + "name": "VehicleAutonomousState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "LEVEL_0", + "value": 0 + }, + { + "name": "LEVEL_1", + "value": 1 + }, + { + "name": "LEVEL_2", + "value": 2 + }, + { + "name": "LEVEL_3", + "value": 3 + }, + { + "name": "LEVEL_4", + "value": 4 + }, + { + "name": "LEVEL_5", + "value": 5 + } + ] + }, + { + "name": "EvChargeState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "CHARGING", + "value": 1 + }, + { + "name": "FULLY_CHARGED", + "value": 2 + }, + { + "name": "NOT_CHARGING", + "value": 3 + }, + { + "name": "ERROR", + "value": 4 + } + ] + }, + { + "name": "GsrComplianceRequirementType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "GSR_COMPLIANCE_NOT_REQUIRED", + "value": 0 + }, + { + "name": "GSR_COMPLIANCE_REQUIRED_V1", + "value": 1 + } + ] + }, + { + "name": "PortLocationType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "FRONT_LEFT", + "value": 1 + }, + { + "name": "FRONT_RIGHT", + "value": 2 + }, + { + "name": "REAR_RIGHT", + "value": 3 + }, + { + "name": "REAR_LEFT", + "value": 4 + }, + { + "name": "FRONT", + "value": 5 + }, + { + "name": "REAR", + "value": 6 + } + ] + }, + { + "name": "CruiseControlState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + }, + { + "name": "SUSPENDED", + "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + } ] \ No newline at end of file diff --git a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py b/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py deleted file mode 100755 index 5706571fb3..0000000000 --- a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/python3 - -# -# Script for generation of VHAL properties metadata .json from AIDL interface -# -# This metadata is used to display human property names, names of enum -# data types for their values, change and access modes and other information, -# available from AIDL block comments, but not at runtime. -# -# Usage example: -# ./emu_metadata/generate_emulator_metadata.py android/hardware/automotive/vehicle $OUT/android.hardware.automotive.vehicle-types-meta.json -# (Note, that the resulting file has to match a '*types-meta.json' pattern to be parsed by the emulator). -# - -import json -import os -import re -import sys - -from pathlib import Path - -RE_PACKAGE = re.compile(r"\npackage\s([\.a-z0-9]*);") -RE_IMPORT = re.compile(r"\nimport\s([\.a-zA-Z0-9]*);") -RE_ENUM = re.compile(r"\s*enum\s+(\w*) {\n(.*)}", re.MULTILINE | re.DOTALL) -RE_COMMENT = re.compile(r"(?:(?:\/\*\*)((?:.|\n)*?)(?:\*\/))?(?:\n|^)\s*(\w*)(?:\s+=\s*)?((?:[\.\-a-zA-Z0-9]|\s|\+|)*),", - re.DOTALL) -RE_BLOCK_COMMENT_TITLE = re.compile("^(?:\s|\*)*((?:\w|\s|\.)*)\n(?:\s|\*)*(?:\n|$)") -RE_BLOCK_COMMENT_ANNOTATION = re.compile("^(?:\s|\*)*@(\w*)\s+((?:[\w:\.])*)", re.MULTILINE) -RE_HEX_NUMBER = re.compile("([\.\-0-9A-Za-z]+)") - - -class JEnum: - def __init__(self, package, name): - self.package = package - self.name = name - self.values = [] - -class Enum: - def __init__(self, package, name, text, imports): - self.text = text - self.parsed = False - self.imports = imports - self.jenum = JEnum(package, name) - - def parse(self, enums): - if self.parsed: - return - for dep in self.imports: - enums[dep].parse(enums) - print("Parsing " + self.jenum.name) - matches = RE_COMMENT.findall(self.text) - defaultValue = 0 - for match in matches: - value = dict() - value['name'] = match[1] - value['value'] = self.calculateValue(match[2], defaultValue, enums) - defaultValue = value['value'] + 1 - if self.jenum.name == "VehicleProperty": - block_comment = match[0] - self.parseBlockComment(value, block_comment) - self.jenum.values.append(value) - self.parsed = True - self.text = None - - def get_value(self, value_name): - for value in self.jenum.values: - if value['name'] == value_name: - return value['value'] - raise Exception("Cannot decode value: " + self.jenum.package + " : " + value_name) - - def calculateValue(self, expression, default_value, enums): - numbers = RE_HEX_NUMBER.findall(expression) - if len(numbers) == 0: - return default_value - result = 0 - base = 10 - if numbers[0].lower().startswith("0x"): - base = 16 - for number in numbers: - if '.' in number: - package, val_name = number.split('.') - for dep in self.imports: - if package in dep: - result += enums[dep].get_value(val_name) - else: - result += int(number, base) - return result - - def parseBlockComment(self, value, blockComment): - titles = RE_BLOCK_COMMENT_TITLE.findall(blockComment) - for title in titles: - value['name'] = title - break - annots_res = RE_BLOCK_COMMENT_ANNOTATION.findall(blockComment) - for annot in annots_res: - value[annot[0]] = annot[1].replace(".", ":") - -class Converter: - # Only addition is supported for now, but that covers all existing properties except - # OBD diagnostics, which use bitwise shifts - def convert(self, input): - text = Path(input).read_text() - matches = RE_ENUM.findall(text) - package = RE_PACKAGE.findall(text)[0] - imports = RE_IMPORT.findall(text) - enums = [] - for match in matches: - enum = Enum(package, match[0], match[1], imports) - enums.append(enum) - return enums - - -def main(): - if (len(sys.argv) != 3): - print("Usage: ", sys.argv[0], " INPUT_PATH OUTPUT") - sys.exit(1) - aidl_path = sys.argv[1] - out_path = sys.argv[2] - enums_dict = dict() - for file in os.listdir(aidl_path): - enums = Converter().convert(os.path.join(aidl_path, file)) - for enum in enums: - enums_dict[enum.jenum.package + "." + enum.jenum.name] = enum - - result = [] - for enum_name, enum in enums_dict.items(): - enum.parse(enums_dict) - result.append(enum.jenum.__dict__) - - json_result = json.dumps(result, default=None, indent=2) - with open(out_path, 'w') as f: - f.write(json_result) - - -if __name__ == "__main__": - main() diff --git a/automotive/vehicle/aidl/impl/vhal/Android.bp b/automotive/vehicle/aidl/impl/vhal/Android.bp index c29345f622..39295aafc8 100644 --- a/automotive/vehicle/aidl/impl/vhal/Android.bp +++ b/automotive/vehicle/aidl/impl/vhal/Android.bp @@ -55,6 +55,10 @@ cc_library { "src/ConnectedClient.cpp", "src/DefaultVehicleHal.cpp", "src/SubscriptionManager.cpp", + // A target to check whether the file + // android.hardware.automotive.vehicle-types-meta.json needs update. + // The output is just an empty cpp file and not actually used. + ":check_generated_enum_metadata_json", ], static_libs: [ "VehicleHalUtils", diff --git a/automotive/vehicle/aidl_property/Android.bp b/automotive/vehicle/aidl_property/Android.bp index 345a2e601e..5db39d84f7 100644 --- a/automotive/vehicle/aidl_property/Android.bp +++ b/automotive/vehicle/aidl_property/Android.bp @@ -56,5 +56,11 @@ aidl_interface { imports: [], }, ], +} +filegroup { + name: "android.hardware.automotive.vehicle.property-files", + srcs: [ + "android/hardware/automotive/vehicle/*.aidl", + ], } diff --git a/automotive/vehicle/tools/generate_emu_metadata/Android.bp b/automotive/vehicle/tools/generate_emu_metadata/Android.bp new file mode 100644 index 0000000000..4cb6d3baf5 --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/Android.bp @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +java_binary_host { + name: "EnumMetadataGenerator", + srcs: ["src/**/*.java"], + manifest: "manifest.txt", + static_libs: [ + "javaparser", + "javaparser-symbol-solver", + "json-prebuilt", + "androidx.annotation_annotation", + ], +} + +// A rule to convert VHAL property AIDL files to java files. +gensrcs { + name: "gen_vehicle_property_java_file", + srcs: [ + ":android.hardware.automotive.vehicle.property-files", + ], + tools: ["aidl"], + cmd: "$(location aidl) --lang=java --structured --stability=vintf $(in) -I hardware/interfaces/automotive/vehicle/aidl_property --out $(genDir)/hardware/interfaces/automotive/vehicle/aidl_property", + output_extension: "java", +} + +// A target to check whether android.hardware.automotive.vehicle-types-meta.json +// needs to be updated. The output is just an empty cpp file to be included +// in the higher-level build target. +// It will generate generated.json at output directory based on VHAL property +// java files and check it against +// android.hardware.automotive.vehicle-types-meta.json. If not the same, the +// build will fail. +genrule { + name: "check_generated_enum_metadata_json", + tools: ["EnumMetadataGenerator"], + srcs: [ + ":android.hardware.automotive.vehicle-types-meta", + ":gen_vehicle_property_java_file", + ], + cmd: "$(location EnumMetadataGenerator) --check_against $(location :android.hardware.automotive.vehicle-types-meta) --output_empty_file $(out) --output_json $(genDir)/generate_enum_metadata.json --input_files $(locations :gen_vehicle_property_java_file)", + out: ["generate_enum_metadata_checked.cpp"], +} diff --git a/automotive/vehicle/tools/generate_emu_metadata/manifest.txt b/automotive/vehicle/tools/generate_emu_metadata/manifest.txt new file mode 100644 index 0000000000..07696da0a0 --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/manifest.txt @@ -0,0 +1 @@ +Main-Class: com.android.car.tool.EmuMetadataGenerator diff --git a/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java b/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java new file mode 100644 index 0000000000..8e12f6774b --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java @@ -0,0 +1,403 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.car.tool; + +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.AnnotationDeclaration; +import com.github.javaparser.ast.body.FieldDeclaration; +import com.github.javaparser.ast.body.VariableDeclarator; +import com.github.javaparser.ast.comments.Comment; +import com.github.javaparser.ast.expr.AnnotationExpr; +import com.github.javaparser.ast.expr.ArrayInitializerExpr; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.NormalAnnotationExpr; +import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr; +import com.github.javaparser.ast.expr.UnaryExpr; +import com.github.javaparser.ast.type.ClassOrInterfaceType; +import com.github.javaparser.javadoc.Javadoc; +import com.github.javaparser.javadoc.JavadocBlockTag; +import com.github.javaparser.javadoc.description.JavadocDescription; +import com.github.javaparser.javadoc.description.JavadocDescriptionElement; +import com.github.javaparser.javadoc.description.JavadocInlineTag; +import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration; +import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration; +import com.github.javaparser.symbolsolver.JavaSymbolSolver; +import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration; +import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import org.json.JSONArray; +import org.json.JSONObject; + +public final class EmuMetadataGenerator { + private static final String DEFAULT_PACKAGE_NAME = "android.hardware.automotive.vehicle"; + private static final String INPUT_DIR_OPTION = "--input_dir"; + private static final String INPUT_FILES_OPTION = "--input_files"; + private static final String PACKAGE_NAME_OPTION = "--package_name"; + private static final String OUTPUT_JSON_OPTION = "--output_json"; + private static final String OUTPUT_EMPTY_FILE_OPTION = "--output_empty_file"; + private static final String CHECK_AGAINST_OPTION = "--check_against"; + private static final String USAGE = "EnumMetadataGenerator " + INPUT_DIR_OPTION + + " [path_to_aidl_gen_dir] " + INPUT_FILES_OPTION + " [input_files] " + + PACKAGE_NAME_OPTION + " [package_name] " + OUTPUT_JSON_OPTION + " [output_json] " + + OUTPUT_EMPTY_FILE_OPTION + " [output_header_file] " + CHECK_AGAINST_OPTION + + " [json_file_to_check_against]\n" + + "Parses the VHAL property AIDL interface generated Java files to a json file to be" + + " used by emulator\n" + + "Options: \n" + INPUT_DIR_OPTION + + ": the path to a directory containing AIDL interface Java files, " + + "either this or input_files must be specified\n" + INPUT_FILES_OPTION + + ": one or more Java files, this is used to decide the input " + + "directory\n" + PACKAGE_NAME_OPTION + + ": the optional package name for the interface, by default is " + DEFAULT_PACKAGE_NAME + + "\n" + OUTPUT_JSON_OPTION + ": The output JSON file\n" + OUTPUT_EMPTY_FILE_OPTION + + ": Only used for check_mode, this file will be created if " + + "check passed\n" + CHECK_AGAINST_OPTION + + ": An optional JSON file to check against. If specified, the " + + "generated output file will be checked against this file, if they are not the same, " + + "the script will fail, otherwise, the output_empty_file will be created\n" + + "For example: \n" + + "EnumMetadataGenerator --input_dir out/soong/.intermediates/hardware/" + + "interfaces/automotive/vehicle/aidl_property/android.hardware.automotive.vehicle." + + "property-V3-java-source/gen/ --package_name android.hardware.automotive.vehicle " + + "--output_json /tmp/android.hardware.automotive.vehicle-types-meta.json"; + private static final String VEHICLE_PROPERTY_FILE = "VehicleProperty.java"; + private static final String CHECK_FILE_PATH = + "${ANDROID_BUILD_TOP}/hardware/interfaces/automotive/vehicle/aidl/emu_metadata/" + + "android.hardware.automotive.vehicle-types-meta.json"; + + // Emulator can display at least this many characters before cutting characters. + private static final int MAX_PROPERTY_NAME_LENGTH = 30; + + /** + * Parses the enum field declaration as an int value. + */ + private static int parseIntEnumField(FieldDeclaration fieldDecl) { + VariableDeclarator valueDecl = fieldDecl.getVariables().get(0); + Expression expr = valueDecl.getInitializer().get(); + if (expr.isIntegerLiteralExpr()) { + return expr.asIntegerLiteralExpr().asInt(); + } + // For case like -123 + if (expr.isUnaryExpr() && expr.asUnaryExpr().getOperator() == UnaryExpr.Operator.MINUS) { + return -expr.asUnaryExpr().getExpression().asIntegerLiteralExpr().asInt(); + } + System.out.println("Unsupported expression: " + expr); + System.exit(1); + return 0; + } + + private static boolean isPublicAndStatic(FieldDeclaration fieldDecl) { + return fieldDecl.isPublic() && fieldDecl.isStatic(); + } + + private static String getFieldName(FieldDeclaration fieldDecl) { + VariableDeclarator valueDecl = fieldDecl.getVariables().get(0); + return valueDecl.getName().asString(); + } + + private static class Enum { + Enum(String name, String packageName) { + this.name = name; + this.packageName = packageName; + } + + public String name; + public String packageName; + public final List valueFields = new ArrayList<>(); + } + + private static class ValueField { + public String name; + public Integer value; + public final List dataEnums = new ArrayList<>(); + + ValueField(String name, Integer value) { + this.name = name; + this.value = value; + } + } + + private static Enum parseEnumInterface( + String inputDir, String dirName, String packageName, String enumName) throws Exception { + Enum enumIntf = new Enum(enumName, packageName); + CompilationUnit cu = StaticJavaParser.parse(new File( + inputDir + File.separator + dirName + File.separator + enumName + ".java")); + AnnotationDeclaration vehiclePropertyIdsClass = + cu.getAnnotationDeclarationByName(enumName).get(); + + List variables = vehiclePropertyIdsClass.findAll(FieldDeclaration.class); + for (int i = 0; i < variables.size(); i++) { + FieldDeclaration propertyDef = variables.get(i).asFieldDeclaration(); + if (!isPublicAndStatic(propertyDef)) { + continue; + } + ValueField field = + new ValueField(getFieldName(propertyDef), parseIntEnumField(propertyDef)); + enumIntf.valueFields.add(field); + } + return enumIntf; + } + + // A hacky way to make the key in-order in the JSON object. + private static final class OrderedJSONObject extends JSONObject { + OrderedJSONObject() { + try { + Field map = JSONObject.class.getDeclaredField("nameValuePairs"); + map.setAccessible(true); + map.set(this, new LinkedHashMap<>()); + map.setAccessible(false); + } catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + } + + private static String readFileContent(String fileName) throws Exception { + StringBuffer contentBuffer = new StringBuffer(); + int bufferSize = 1024; + try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) { + char buffer[] = new char[bufferSize]; + while (true) { + int read = reader.read(buffer, 0, bufferSize); + if (read == -1) { + break; + } + contentBuffer.append(buffer, 0, read); + } + } + return contentBuffer.toString(); + } + + private static final class Args { + public final String inputDir; + public final String pkgName; + public final String pkgDir; + public final String output; + public final String checkFile; + public final String outputEmptyFile; + + public Args(String[] args) throws IllegalArgumentException { + Map> valuesByKey = new LinkedHashMap<>(); + String key = null; + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.startsWith("--")) { + key = arg; + continue; + } + if (key == null) { + throw new IllegalArgumentException("Missing key for value: " + arg); + } + if (valuesByKey.get(key) == null) { + valuesByKey.put(key, new ArrayList<>()); + } + valuesByKey.get(key).add(arg); + } + String pkgName; + List values = valuesByKey.get(PACKAGE_NAME_OPTION); + if (values == null) { + pkgName = DEFAULT_PACKAGE_NAME; + } else { + pkgName = values.get(0); + } + String pkgDir = pkgName.replace(".", File.separator); + this.pkgName = pkgName; + this.pkgDir = pkgDir; + String inputDir; + values = valuesByKey.get(INPUT_DIR_OPTION); + if (values == null) { + List inputFiles = valuesByKey.get(INPUT_FILES_OPTION); + if (inputFiles == null) { + throw new IllegalArgumentException("Either " + INPUT_DIR_OPTION + " or " + + INPUT_FILES_OPTION + " must be specified"); + } + inputDir = new File(inputFiles.get(0)).getParent().replace(pkgDir, ""); + } else { + inputDir = values.get(0); + } + this.inputDir = inputDir; + values = valuesByKey.get(OUTPUT_JSON_OPTION); + if (values == null) { + throw new IllegalArgumentException(OUTPUT_JSON_OPTION + " must be specified"); + } + this.output = values.get(0); + values = valuesByKey.get(CHECK_AGAINST_OPTION); + if (values != null) { + this.checkFile = values.get(0); + } else { + this.checkFile = null; + } + values = valuesByKey.get(OUTPUT_EMPTY_FILE_OPTION); + if (values != null) { + this.outputEmptyFile = values.get(0); + } else { + this.outputEmptyFile = null; + } + } + } + + /** + * Main function. + */ + public static void main(final String[] args) throws Exception { + Args parsedArgs; + try { + parsedArgs = new Args(args); + } catch (IllegalArgumentException e) { + System.out.println("Invalid arguments: " + e.getMessage()); + System.out.println(USAGE); + System.exit(1); + // Never reach here. + return; + } + + TypeSolver typeSolver = new CombinedTypeSolver( + new ReflectionTypeSolver(), new JavaParserTypeSolver(parsedArgs.inputDir)); + StaticJavaParser.getConfiguration().setSymbolResolver(new JavaSymbolSolver(typeSolver)); + + Enum vehicleProperty = new Enum("VehicleProperty", parsedArgs.pkgName); + CompilationUnit cu = StaticJavaParser.parse(new File(parsedArgs.inputDir + File.separator + + parsedArgs.pkgDir + File.separator + VEHICLE_PROPERTY_FILE)); + AnnotationDeclaration vehiclePropertyIdsClass = + cu.getAnnotationDeclarationByName("VehicleProperty").get(); + + Set dataEnumTypes = new HashSet<>(); + List variables = vehiclePropertyIdsClass.findAll(FieldDeclaration.class); + for (int i = 0; i < variables.size(); i++) { + FieldDeclaration propertyDef = variables.get(i).asFieldDeclaration(); + if (!isPublicAndStatic(propertyDef)) { + continue; + } + String propertyName = getFieldName(propertyDef); + if (propertyName.equals("INVALID")) { + continue; + } + + Optional maybeComment = propertyDef.getComment(); + if (!maybeComment.isPresent()) { + System.out.println("missing comment for property: " + propertyName); + System.exit(1); + } + Javadoc doc = maybeComment.get().asJavadocComment().parse(); + + int propertyId = parseIntEnumField(propertyDef); + // We use the first paragraph as the property's name + String propertyDescription = doc.getDescription().toText().split("\n\n")[0]; + String name = propertyDescription; + if (propertyDescription.indexOf("\n") != -1 + || propertyDescription.length() > MAX_PROPERTY_NAME_LENGTH) { + // The description is too long, we just use the property name. + name = propertyName; + } + ValueField field = new ValueField(name, propertyId); + + List blockTags = doc.getBlockTags(); + List dataEnums = new ArrayList<>(); + for (int j = 0; j < blockTags.size(); j++) { + String commentTagName = blockTags.get(j).getTagName(); + String commentTagContent = blockTags.get(j).getContent().toText(); + if (!commentTagName.equals("data_enum")) { + continue; + } + field.dataEnums.add(commentTagContent); + dataEnumTypes.add(commentTagContent); + } + + vehicleProperty.valueFields.add(field); + } + + List enumTypes = new ArrayList<>(); + enumTypes.add(vehicleProperty); + + for (String dataEnumType : dataEnumTypes) { + Enum dataEnum = parseEnumInterface( + parsedArgs.inputDir, parsedArgs.pkgDir, parsedArgs.pkgName, dataEnumType); + enumTypes.add(dataEnum); + } + + // Output enumTypes as JSON to output. + JSONArray jsonEnums = new JSONArray(); + for (int i = 0; i < enumTypes.size(); i++) { + Enum enumType = enumTypes.get(i); + + JSONObject jsonEnum = new OrderedJSONObject(); + jsonEnum.put("name", enumType.name); + jsonEnum.put("package", enumType.packageName); + JSONArray values = new JSONArray(); + jsonEnum.put("values", values); + + for (int j = 0; j < enumType.valueFields.size(); j++) { + ValueField valueField = enumType.valueFields.get(j); + JSONObject jsonValueField = new OrderedJSONObject(); + jsonValueField.put("name", valueField.name); + jsonValueField.put("value", valueField.value); + if (!valueField.dataEnums.isEmpty()) { + JSONArray jsonDataEnums = new JSONArray(); + for (String dataEnum : valueField.dataEnums) { + jsonDataEnums.put(dataEnum); + } + jsonValueField.put("data_enums", jsonDataEnums); + // To be backward compatible with older format where data_enum is a single + // entry. + jsonValueField.put("data_enum", valueField.dataEnums.get(0)); + } + values.put(jsonValueField); + } + + jsonEnums.put(jsonEnum); + } + + try (FileOutputStream outputStream = new FileOutputStream(parsedArgs.output)) { + outputStream.write(jsonEnums.toString(4).getBytes()); + } + System.out.println("Input at folder: " + parsedArgs.inputDir + + " successfully parsed. Output at: " + parsedArgs.output); + + if (parsedArgs.checkFile != null) { + String checkFileContent = readFileContent(parsedArgs.checkFile); + String generatedFileContent = readFileContent(parsedArgs.output); + String generatedFilePath = new File(parsedArgs.output).getAbsolutePath(); + if (!checkFileContent.equals(generatedFileContent)) { + System.out.println("The file: " + CHECK_FILE_PATH + " needs to be updated, run: " + + "\n\ncp " + generatedFilePath + " " + CHECK_FILE_PATH + "\n"); + System.exit(1); + } + + if (parsedArgs.outputEmptyFile != null) { + try (FileOutputStream outputStream = + new FileOutputStream(parsedArgs.outputEmptyFile)) { + // Do nothing, just create the file. + } + } + } + } +} -- GitLab From ba1854fb0edb8e0e1fd29332199159c9b9b69e0e Mon Sep 17 00:00:00 2001 From: Tang Lee Date: Sun, 28 Jan 2024 00:34:33 +0800 Subject: [PATCH 305/418] ExternalCameraHAL: fix CTS failures with callback for errors For every request, either requestStreamBuffers fails or handling of the requested buffer fails, always trigger the processCaptureResult callback by notifying the request is ready. This avoids the errors like the service side receives fewer results than the requests and waits until timeout. Bug: 299182874 Test: cts cts-tradefed run cts \ --include-filter "CtsCameraTestCases android.hardware.camera2.cts.RobustnessTest" \ --include-filter "CtsCameraTestCases android.hardware.camera2.cts.PerformanceTest" \ --include-filter "CtsCameraTestCases android.hardware.camera2.cts.StillCaptureTest" \ --include-filter "CtsCameraTestCases android.hardware.camera2.cts.SurfaceViewPreviewTest" \ --include-filter "CtsCameraTestCases android.hardware.cts.CameraGLTest" \ --include-filter "CtsCameraTestCases android.hardware.cts.LegacyCameraPerformanceTest" \ Change-Id: I86ba422524e79af6b318b50bd6eebe2cb27fa50a --- .../default/ExternalCameraDeviceSession.cpp | 43 ++++++++++++++++--- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/camera/device/default/ExternalCameraDeviceSession.cpp b/camera/device/default/ExternalCameraDeviceSession.cpp index 075a9f6d49..91196d4228 100644 --- a/camera/device/default/ExternalCameraDeviceSession.cpp +++ b/camera/device/default/ExternalCameraDeviceSession.cpp @@ -1965,6 +1965,12 @@ int ExternalCameraDeviceSession::BufferRequestThread::waitForBufferRequestDone( ALOGE("%s: wait for buffer request finish timeout!", __FUNCTION__); return -1; } + + if (mPendingReturnBufferReqs.empty()) { + mRequestingBuffer = false; + ALOGE("%s: cameraservice did not return any buffers!", __FUNCTION__); + return -1; + } } mRequestingBuffer = false; *outBufReqs = std::move(mPendingReturnBufferReqs); @@ -2014,6 +2020,8 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { if (!ret.isOk()) { ALOGE("%s: Transaction error: %d:%d", __FUNCTION__, ret.getExceptionCode(), ret.getServiceSpecificError()); + mBufferReqs.clear(); + mRequestDoneCond.notify_one(); return false; } @@ -2022,17 +2030,24 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { if (bufRets.size() != mHalBufferReqs.size()) { ALOGE("%s: expect %zu buffer requests returned, only got %zu", __FUNCTION__, mHalBufferReqs.size(), bufRets.size()); + mBufferReqs.clear(); + lk.unlock(); + mRequestDoneCond.notify_one(); return false; } auto parent = mParent.lock(); if (parent == nullptr) { ALOGE("%s: session has been disconnected!", __FUNCTION__); + mBufferReqs.clear(); + lk.unlock(); + mRequestDoneCond.notify_one(); return false; } std::vector importedFences; importedFences.resize(bufRets.size()); + bool hasError = false; for (size_t i = 0; i < bufRets.size(); i++) { int streamId = bufRets[i].streamId; switch (bufRets[i].val.getTag()) { @@ -2043,7 +2058,8 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { bufRets[i].val.get(); if (hBufs.size() != 1) { ALOGE("%s: expect 1 buffer returned, got %zu!", __FUNCTION__, hBufs.size()); - return false; + hasError = true; + break; } const StreamBuffer& hBuf = hBufs[0]; @@ -2060,26 +2076,38 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { if (s != Status::OK) { ALOGE("%s: stream %d import buffer failed!", __FUNCTION__, streamId); cleanupInflightFences(importedFences, i - 1); - return false; + hasError = true; + break; } h = makeFromAidl(hBuf.acquireFence); if (!sHandleImporter.importFence(h, mBufferReqs[i].acquireFence)) { ALOGE("%s: stream %d import fence failed!", __FUNCTION__, streamId); cleanupInflightFences(importedFences, i - 1); native_handle_delete(h); - return false; + hasError = true; + break; } native_handle_delete(h); importedFences[i] = mBufferReqs[i].acquireFence; } break; default: ALOGE("%s: Unknown StreamBuffersVal!", __FUNCTION__); - return false; + hasError = true; + break; + } + if (hasError) { + mBufferReqs.clear(); + lk.unlock(); + mRequestDoneCond.notify_one(); + return true; } } } else { ALOGE("%s: requestStreamBuffers call failed!", __FUNCTION__); - return false; + mBufferReqs.clear(); + lk.unlock(); + mRequestDoneCond.notify_one(); + return true; } mPendingReturnBufferReqs = std::move(mBufferReqs); @@ -2784,6 +2812,11 @@ bool ExternalCameraDeviceSession::OutputThread::threadLoop() { if (res != 0) { // For some webcam, the first few V4L2 frames might be malformed... ALOGE("%s: Convert V4L2 frame to YU12 failed! res %d", __FUNCTION__, res); + + ATRACE_BEGIN("Wait for BufferRequest done"); + res = waitForBufferRequestDone(&req->buffers); + ATRACE_END(); + lk.unlock(); Status st = parent->processCaptureRequestError(req); if (st != Status::OK) { -- GitLab From 1623351bc0af51511b762dfad4cf2ab1d7d4bbf3 Mon Sep 17 00:00:00 2001 From: shihchienc Date: Mon, 29 Jan 2024 10:07:47 +0000 Subject: [PATCH 306/418] [Thread] Implement read on socket interface Bug: 313425570 Test: build pass & manual test Change-Id: I4e6dfdfa73f7145e8f36d05abf1531d7796b4b9e --- .../aidl/default/socket_interface.cpp | 92 +++++++++++++++++++ .../aidl/default/socket_interface.hpp | 51 ++++++++++ 2 files changed, 143 insertions(+) diff --git a/threadnetwork/aidl/default/socket_interface.cpp b/threadnetwork/aidl/default/socket_interface.cpp index 6b9b80eb07..f874209aaf 100644 --- a/threadnetwork/aidl/default/socket_interface.cpp +++ b/threadnetwork/aidl/default/socket_interface.cpp @@ -89,6 +89,41 @@ otError SocketInterface::SendFrame(const uint8_t* aFrame, uint16_t aLength) { return OT_ERROR_NONE; } +otError SocketInterface::WaitForFrame(uint64_t aTimeoutUs) { + otError error = OT_ERROR_NONE; + struct timeval timeout; + timeout.tv_sec = static_cast(aTimeoutUs / US_PER_S); + timeout.tv_usec = static_cast(aTimeoutUs % US_PER_S); + + fd_set readFds; + fd_set errorFds; + int rval; + + FD_ZERO(&readFds); + FD_ZERO(&errorFds); + FD_SET(mSockFd, &readFds); + FD_SET(mSockFd, &errorFds); + + rval = TEMP_FAILURE_RETRY(select(mSockFd + 1, &readFds, nullptr, &errorFds, &timeout)); + + if (rval > 0) { + if (FD_ISSET(mSockFd, &readFds)) { + Read(); + } else if (FD_ISSET(mSockFd, &errorFds)) { + DieNowWithMessage("RCP error", OT_EXIT_FAILURE); + } else { + DieNow(OT_EXIT_FAILURE); + } + } else if (rval == 0) { + ExitNow(error = OT_ERROR_RESPONSE_TIMEOUT); + } else { + DieNowWithMessage("wait response", OT_EXIT_FAILURE); + } + +exit: + return error; +} + void SocketInterface::UpdateFdSet(void* aMainloopContext) { otSysMainloopContext* context = reinterpret_cast(aMainloopContext); @@ -101,12 +136,69 @@ void SocketInterface::UpdateFdSet(void* aMainloopContext) { } } +void SocketInterface::Process(const void* aMainloopContext) { + const otSysMainloopContext* context = + reinterpret_cast(aMainloopContext); + + assert(context != nullptr); + + if (FD_ISSET(mSockFd, &context->mReadFdSet)) { + Read(); + } +} + +void SocketInterface::Read(void) { + uint8_t buffer[kMaxFrameSize]; + + ssize_t rval = TEMP_FAILURE_RETRY(read(mSockFd, buffer, sizeof(buffer))); + + if (rval > 0) { + ProcessReceivedData(buffer, static_cast(rval)); + } else if (rval < 0) { + DieNow(OT_EXIT_ERROR_ERRNO); + } else { + otLogCritPlat("Socket connection is closed by remote."); + exit(OT_EXIT_FAILURE); + } +} + void SocketInterface::Write(const uint8_t* aFrame, uint16_t aLength) { ssize_t rval = TEMP_FAILURE_RETRY(write(mSockFd, aFrame, aLength)); VerifyOrDie(rval >= 0, OT_EXIT_ERROR_ERRNO); VerifyOrDie(rval > 0, OT_EXIT_FAILURE); } +void SocketInterface::ProcessReceivedData(const uint8_t* aBuffer, uint16_t aLength) { + while (aLength--) { + uint8_t byte = *aBuffer++; + if (mReceiveFrameBuffer->CanWrite(sizeof(uint8_t))) { + IgnoreError(mReceiveFrameBuffer->WriteByte(byte)); + } else { + HandleSocketFrame(this, OT_ERROR_NO_BUFS); + return; + } + } + HandleSocketFrame(this, OT_ERROR_NONE); +} + +void SocketInterface::HandleSocketFrame(void* aContext, otError aError) { + static_cast(aContext)->HandleSocketFrame(aError); +} + +void SocketInterface::HandleSocketFrame(otError aError) { + VerifyOrExit((mReceiveFrameCallback != nullptr) && (mReceiveFrameBuffer != nullptr)); + + if (aError == OT_ERROR_NONE) { + mReceiveFrameCallback(mReceiveFrameContext); + } else { + mReceiveFrameBuffer->DiscardFrame(); + otLogWarnPlat("Process socket frame failed: %s", otThreadErrorToString(aError)); + } + +exit: + return; +} + int SocketInterface::OpenFile(const ot::Url::Url& aRadioUrl) { int fd = -1; sockaddr_un serverAddress; diff --git a/threadnetwork/aidl/default/socket_interface.hpp b/threadnetwork/aidl/default/socket_interface.hpp index 2dd315d125..f88e92670c 100644 --- a/threadnetwork/aidl/default/socket_interface.hpp +++ b/threadnetwork/aidl/default/socket_interface.hpp @@ -86,6 +86,21 @@ class SocketInterface : public ot::Spinel::SpinelInterface { */ otError SendFrame(const uint8_t* aFrame, uint16_t aLength); + /** + * Waits for receiving part or all of Spinel frame within specified + * interval. + * + * @param[in] aTimeout The timeout value in microseconds. + * + * @retval OT_ERROR_NONE Part or all of Spinel frame is + * received. + * @retval OT_ERROR_RESPONSE_TIMEOUT No Spinel frame is received within @p + * aTimeout. + * @retval OT_EXIT_FAILURE RCP error + * + */ + otError WaitForFrame(uint64_t aTimeoutUs); + /** * Updates the file descriptor sets with file descriptors used by the radio * driver. @@ -96,6 +111,15 @@ class SocketInterface : public ot::Spinel::SpinelInterface { */ void UpdateFdSet(void* aMainloopContext); + /** + * Performs radio driver processing. + * + * @param[in] aMainloopContext A pointer to the mainloop context + * containing fd_sets. + * + */ + void Process(const void* aMainloopContext); + /** * Returns the bus speed between the host and the radio. * @@ -136,6 +160,17 @@ class SocketInterface : public ot::Spinel::SpinelInterface { } private: + /** + * Instructs `SocketInterface` to read data from radio over the + * socket. + * + * If a full Spinel frame is received, this method invokes the + * `HandleSocketFrame()` (on the `aCallback` object from constructor) to + * pass the received frame to be processed. + * + */ + void Read(void); + /** * Writes a given frame to the socket. * @@ -145,6 +180,22 @@ class SocketInterface : public ot::Spinel::SpinelInterface { */ void Write(const uint8_t* aFrame, uint16_t aLength); + /** + * Process received data. + * + * If a full frame is finished processing and we obtain the raw Spinel + * frame, this method invokes the `HandleSocketFrame()` (on the `aCallback` + * object from constructor) to pass the received frame to be processed. + * + * @param[in] aBuffer A pointer to buffer containing data. + * @param[in] aLength The length (number of bytes) in the buffer. + * + */ + void ProcessReceivedData(const uint8_t* aBuffer, uint16_t aLength); + + static void HandleSocketFrame(void* aContext, otError aError); + void HandleSocketFrame(otError aError); + /** * Opens file specified by aRadioUrl. * -- GitLab From 27711c319508b65a4cfb4e4209dc46a34d61f5dd Mon Sep 17 00:00:00 2001 From: shihchienc Date: Wed, 24 Jan 2024 09:05:34 +0000 Subject: [PATCH 307/418] [Thread] Add socket interface support in thread chip Bug: 313425570 Test: build pass & manual test Change-Id: Ie1b0c687cf529659521f1dd1457fcda35af1bf49 --- threadnetwork/aidl/default/thread_chip.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/threadnetwork/aidl/default/thread_chip.cpp b/threadnetwork/aidl/default/thread_chip.cpp index ed34e630b8..d1e1d4ceaf 100644 --- a/threadnetwork/aidl/default/thread_chip.cpp +++ b/threadnetwork/aidl/default/thread_chip.cpp @@ -24,6 +24,7 @@ #include #include "hdlc_interface.hpp" +#include "socket_interface.hpp" #include "spi_interface.hpp" namespace aidl { @@ -43,6 +44,8 @@ ThreadChip::ThreadChip(char* url) : mUrl(), mRxFrameBuffer(), mCallback(nullptr) mSpinelInterface = std::make_shared(mUrl); } else if (ot::Posix::HdlcInterface::IsInterfaceNameMatch(interfaceName)) { mSpinelInterface = std::make_shared(mUrl); + } else if (SocketInterface::IsInterfaceNameMatch(interfaceName)) { + mSpinelInterface = std::make_shared(mUrl); } else { ALOGE("The interface \"%s\" is not supported", interfaceName); exit(EXIT_FAILURE); -- GitLab From 23e5bf28733e562c2adf6551d6c1eac91a3d734b Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Thu, 1 Feb 2024 12:49:35 +0900 Subject: [PATCH 308/418] Use LLNDK guard instead of builtin_available APEXSUPPORT_API was a workaround when we had no support for __ANDROID_VENDOR_API__. Since we have it now, use it instead of builtin_available(android APEXSUPPORT_API). Bug: 302088370 Test: CtsMediaAudioTestCases Change-Id: I28b0e0ebab5f357a2f5cc29f244ae5494e379fbe --- audio/aidl/default/EffectConfig.cpp | 2 +- audio/aidl/default/EffectMain.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/audio/aidl/default/EffectConfig.cpp b/audio/aidl/default/EffectConfig.cpp index 1cc48978d3..a1fbefa8b9 100644 --- a/audio/aidl/default/EffectConfig.cpp +++ b/audio/aidl/default/EffectConfig.cpp @@ -93,7 +93,7 @@ std::vector> EffectConfig::ge } bool EffectConfig::resolveLibrary(const std::string& path, std::string* resolvedPath) { - if (__builtin_available(android AAPEXSUPPORT_API, *)) { + if constexpr (__ANDROID_VENDOR_API__ >= 202404) { AApexInfo *apexInfo; if (AApexInfo_create(&apexInfo) == AAPEXINFO_OK) { std::string apexName(AApexInfo_getName(apexInfo)); diff --git a/audio/aidl/default/EffectMain.cpp b/audio/aidl/default/EffectMain.cpp index ac178b6a06..a300cfdd78 100644 --- a/audio/aidl/default/EffectMain.cpp +++ b/audio/aidl/default/EffectMain.cpp @@ -29,7 +29,7 @@ static const char* kDefaultConfigName = "audio_effects_config.xml"; static inline std::string config_file_path() { - if (__builtin_available(android AAPEXSUPPORT_API, *)) { + if constexpr (__ANDROID_VENDOR_API__ >= 202404) { AApexInfo *apexInfo; if (AApexInfo_create(&apexInfo) == AAPEXINFO_OK) { std::string apexName(AApexInfo_getName(apexInfo)); -- GitLab From 9e15e5e01e3dd8cfff5833fabae4ebde241def09 Mon Sep 17 00:00:00 2001 From: Shikha Panwar Date: Thu, 25 Jan 2024 11:16:28 +0000 Subject: [PATCH 309/418] Expand DICE chain in VTS/test to contain arrays Include a list of subcomponents in AVB DiceChainEntry in the sample DICE chain and include constraints on that in the sealing_policy. Bug: 291238565 Test: VTS#secret_management_policy_gate Change-Id: Id36ddf137bacf99c273b61c3136691426f2d5b34 --- security/secretkeeper/aidl/vts/dice_sample.rs | 45 +++++++++++++----- security/secretkeeper/aidl/vts/lib.rs | 12 +++++ .../secretkeeper/aidl/vts/secretkeeper_cli.rs | 38 ++++++++++++++- .../aidl/vts/secretkeeper_test_client.rs | 47 +++++++++++++++++-- 4 files changed, 124 insertions(+), 18 deletions(-) diff --git a/security/secretkeeper/aidl/vts/dice_sample.rs b/security/secretkeeper/aidl/vts/dice_sample.rs index db532b1d3c..97b4789985 100644 --- a/security/secretkeeper/aidl/vts/dice_sample.rs +++ b/security/secretkeeper/aidl/vts/dice_sample.rs @@ -18,9 +18,16 @@ //! module duplicates a large chunk of code in libdiced_sample_inputs. We avoid modifying the //! latter for testing purposes because it is installed on device. -use ciborium::{de, ser, value::Value}; +use crate::{ + COMPONENT_NAME, COMPONENT_RESETTABLE, COMPONENT_VERSION, SUBCOMPONENT_AUTHORITY_HASH, + SUBCOMPONENT_CODE_HASH, SUBCOMPONENT_DESCRIPTORS, SUBCOMPONENT_NAME, + SUBCOMPONENT_SECURITY_VERSION, +}; +use ciborium::{cbor, de, ser, value::Value}; use core::ffi::CStr; -use coset::{iana, Algorithm, AsCborValue, CoseKey, KeyOperation, KeyType, Label}; +use coset::{ + iana, Algorithm, AsCborValue, CborSerializable, CoseKey, KeyOperation, KeyType, Label, +}; use diced_open_dice::{ derive_cdi_private_key_seed, keypair_from_seed, retry_bcc_format_config_descriptor, retry_bcc_main_flow, retry_dice_main_flow, Config, DiceArtifacts, DiceConfigValues, DiceError, @@ -100,7 +107,8 @@ fn ed25519_public_key_to_cbor_value(public_key: &[u8]) -> Value { /// /// The DICE chain is of the following format: /// public key derived from UDS -> ABL certificate -> AVB certificate -> Android certificate -/// The `security_version` is included in the Android certificate. +/// The `security_version` is included in the Android certificate as well as each subcomponent +/// of AVB certificate. pub fn make_explicit_owned_dice(security_version: u64) -> OwnedDiceArtifactsWithExplicitKey { let dice = make_sample_bcc_and_cdis(security_version); OwnedDiceArtifactsWithExplicitKey::from_owned_artifacts(dice).unwrap() @@ -135,16 +143,31 @@ fn make_sample_bcc_and_cdis(security_version: u64) -> OwnedDiceArtifacts { ser::into_writer(&bcc_value, &mut bcc).unwrap(); // Appends AVB certificate to DICE chain. - let config_values = DiceConfigValues { - component_name: Some(CStr::from_bytes_with_nul(b"AVB\0").unwrap()), - component_version: Some(1), - resettable: true, - ..Default::default() - }; - let config_descriptor = retry_bcc_format_config_descriptor(&config_values).unwrap(); + let config_desc = cbor!({ + COMPONENT_NAME => "AVB", + COMPONENT_VERSION => 1, + COMPONENT_RESETTABLE => null, + SUBCOMPONENT_DESCRIPTORS => [ + { + SUBCOMPONENT_NAME => "sub_1", + SUBCOMPONENT_SECURITY_VERSION => security_version, + SUBCOMPONENT_CODE_HASH=> b"xoxo", + SUBCOMPONENT_AUTHORITY_HASH => b"oxox" + }, + { + SUBCOMPONENT_NAME => "sub_2", + SUBCOMPONENT_SECURITY_VERSION => security_version, + SUBCOMPONENT_CODE_HASH => b"xoxo", + SUBCOMPONENT_AUTHORITY_HASH => b"oxox", + } + ] + }) + .unwrap() + .to_vec() + .unwrap(); let input_values = InputValues::new( CODE_HASH_AVB, - Config::Descriptor(config_descriptor.as_slice()), + Config::Descriptor(&config_desc), AUTHORITY_HASH_AVB, DiceMode::kDiceModeNormal, HIDDEN_AVB, diff --git a/security/secretkeeper/aidl/vts/lib.rs b/security/secretkeeper/aidl/vts/lib.rs index 9f98165bd3..3afe93826c 100644 --- a/security/secretkeeper/aidl/vts/lib.rs +++ b/security/secretkeeper/aidl/vts/lib.rs @@ -28,7 +28,19 @@ pub const CONFIG_DESC: i64 = -4670548; pub const COMPONENT_NAME: i64 = -70002; /// Map key for component version. pub const COMPONENT_VERSION: i64 = -70003; +/// Map key for Resettable. +pub const COMPONENT_RESETTABLE: i64 = -70004; /// Map key for security version. pub const SECURITY_VERSION: i64 = -70005; /// Map key for mode. pub const MODE: i64 = -4670551; +/// Map key for SubcomponentDescriptor. +pub const SUBCOMPONENT_DESCRIPTORS: i64 = -71002; +/// Map key for name of subcomponent. +pub const SUBCOMPONENT_NAME: i64 = 1; +/// Map key for Security Version of subcomponent. +pub const SUBCOMPONENT_SECURITY_VERSION: i64 = 2; +/// Map key for Code hash of subcomponent. +pub const SUBCOMPONENT_CODE_HASH: i64 = 3; +/// Map key for Authority Hash of subcomponent. +pub const SUBCOMPONENT_AUTHORITY_HASH: i64 = 4; diff --git a/security/secretkeeper/aidl/vts/secretkeeper_cli.rs b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs index 0c138112fd..d02bfe62fa 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_cli.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs @@ -24,7 +24,10 @@ use authgraph_boringssl::BoringSha256; use authgraph_core::traits::Sha256; use clap::{Args, Parser, Subcommand}; use coset::CborSerializable; -use dice_policy_builder::{ConstraintSpec, ConstraintType, MissingAction, policy_for_dice_chain}; +use dice_policy_builder::{ + policy_for_dice_chain, CertIndex, ConstraintSpec, ConstraintType, MissingAction, + WILDCARD_FULL_ARRAY, +}; use secretkeeper_client::{dice::OwnedDiceArtifactsWithExplicitKey, SkSession}; use secretkeeper_comm::data_types::{ @@ -37,6 +40,7 @@ use secretkeeper_comm::data_types::{ }; use secretkeeper_test::{ dice_sample::make_explicit_owned_dice, AUTHORITY_HASH, CONFIG_DESC, MODE, SECURITY_VERSION, + SUBCOMPONENT_AUTHORITY_HASH, SUBCOMPONENT_DESCRIPTORS, SUBCOMPONENT_SECURITY_VERSION, }; use std::io::Write; @@ -139,12 +143,42 @@ impl SkClient { ConstraintType::ExactMatch, vec![AUTHORITY_HASH], MissingAction::Fail, + CertIndex::All, + ), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![MODE], + MissingAction::Fail, + CertIndex::All, ), - ConstraintSpec::new(ConstraintType::ExactMatch, vec![MODE], MissingAction::Fail), ConstraintSpec::new( ConstraintType::GreaterOrEqual, vec![CONFIG_DESC, SECURITY_VERSION], MissingAction::Ignore, + CertIndex::All, + ), + // Constraints on sub components in the second last DiceChainEntry + ConstraintSpec::new( + ConstraintType::GreaterOrEqual, + vec![ + CONFIG_DESC, + SUBCOMPONENT_DESCRIPTORS, + WILDCARD_FULL_ARRAY, + SUBCOMPONENT_SECURITY_VERSION, + ], + MissingAction::Fail, + CertIndex::FromEnd(1), + ), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![ + CONFIG_DESC, + SUBCOMPONENT_DESCRIPTORS, + WILDCARD_FULL_ARRAY, + SUBCOMPONENT_AUTHORITY_HASH, + ], + MissingAction::Fail, + CertIndex::FromEnd(1), ), ]; policy_for_dice_chain(dice, &constraint_spec) diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index 483aed6263..dcba90b6b4 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -20,7 +20,7 @@ use authgraph_vts_test as ag_vts; use authgraph_boringssl as boring; use authgraph_core::key; use coset::{CborSerializable, CoseEncrypt0}; -use dice_policy_builder::{ConstraintSpec, ConstraintType, MissingAction, policy_for_dice_chain}; +use dice_policy_builder::{CertIndex, ConstraintSpec, ConstraintType, MissingAction, WILDCARD_FULL_ARRAY, policy_for_dice_chain}; use rdroidtest::{ignore_if, rdroidtest}; use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; use secretkeeper_client::SkSession; @@ -34,13 +34,13 @@ use secretkeeper_comm::data_types::{Id, Secret, SeqNum}; use secretkeeper_comm::data_types::response::Response; use secretkeeper_comm::data_types::packet::{ResponsePacket, ResponseType}; use secretkeeper_test::{ - AUTHORITY_HASH, MODE, CONFIG_DESC, SECURITY_VERSION, + AUTHORITY_HASH, MODE, CONFIG_DESC, SECURITY_VERSION, SUBCOMPONENT_AUTHORITY_HASH, + SUBCOMPONENT_DESCRIPTORS, SUBCOMPONENT_SECURITY_VERSION, dice_sample::make_explicit_owned_dice }; const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; const CURRENT_VERSION: u64 = 1; - // Random bytes (of ID_SIZE/SECRET_SIZE) generated for tests. const ID_EXAMPLE: Id = Id([ 0xF1, 0xB2, 0xED, 0x3B, 0xD1, 0xBD, 0xF0, 0x7D, 0xE1, 0xF0, 0x01, 0xFC, 0x61, 0x71, 0xD3, 0x42, @@ -247,14 +247,51 @@ fn assert_entry_not_found(res: Result) { /// 1. ExactMatch on AUTHORITY_HASH (non-optional). /// 2. ExactMatch on MODE (non-optional). /// 3. GreaterOrEqual on SECURITY_VERSION (optional). +/// 4. The second last DiceChainEntry contain SubcomponentDescriptor, for each of those: +/// a) GreaterOrEqual on SECURITY_VERSION (Required) +// b) ExactMatch on AUTHORITY_HASH (Required). fn sealing_policy(dice: &[u8]) -> Vec { let constraint_spec = [ - ConstraintSpec::new(ConstraintType::ExactMatch, vec![AUTHORITY_HASH], MissingAction::Fail), - ConstraintSpec::new(ConstraintType::ExactMatch, vec![MODE], MissingAction::Fail), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![AUTHORITY_HASH], + MissingAction::Fail, + CertIndex::All, + ), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![MODE], + MissingAction::Fail, + CertIndex::All, + ), ConstraintSpec::new( ConstraintType::GreaterOrEqual, vec![CONFIG_DESC, SECURITY_VERSION], MissingAction::Ignore, + CertIndex::All, + ), + // Constraints on sub components in the second last DiceChainEntry + ConstraintSpec::new( + ConstraintType::GreaterOrEqual, + vec![ + CONFIG_DESC, + SUBCOMPONENT_DESCRIPTORS, + WILDCARD_FULL_ARRAY, + SUBCOMPONENT_SECURITY_VERSION, + ], + MissingAction::Fail, + CertIndex::FromEnd(1), + ), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![ + CONFIG_DESC, + SUBCOMPONENT_DESCRIPTORS, + WILDCARD_FULL_ARRAY, + SUBCOMPONENT_AUTHORITY_HASH, + ], + MissingAction::Fail, + CertIndex::FromEnd(1), ), ]; -- GitLab From 03761c7e8e9052b93f2395fe704653825471d4bc Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Thu, 1 Feb 2024 10:47:21 -0800 Subject: [PATCH 310/418] audio: Move stable libaudioclient tests to presubmit for the AIDL HAL These framework-side tests are helpful in detecting breakages caused by changes in the HAL code. Data from postsubmit runs: Test module audioeffect_tests: Latency (p90): 3s, Flakiness: 0.00% Test module trackplayerbase_tests: Latency (p90): 13s, Flakiness: 0.00% Bug: 311830316 Test: presubmit Test-Mapping-Slo-Bypass-Bug: b/318425155 Change-Id: I5c329239cd3890e98edc74283bc9edb83e7e7ba7 --- audio/aidl/TEST_MAPPING | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/audio/aidl/TEST_MAPPING b/audio/aidl/TEST_MAPPING index b5fcd86325..e325001fff 100644 --- a/audio/aidl/TEST_MAPPING +++ b/audio/aidl/TEST_MAPPING @@ -3,9 +3,15 @@ { "name": "VtsHalAudioCoreTargetTest" }, + { + "name": "audioeffect_tests" + }, { "name": "audio_policy_config_xml_converter_tests" }, + { + "name": "trackplayerbase_tests" + }, { "name": "VtsHalAudioEffectFactoryTargetTest" }, @@ -59,15 +65,9 @@ { "name": "audiorecord_tests" }, - { - "name": "audioeffect_tests" - }, { "name": "audiorouting_tests" }, - { - "name": "trackplayerbase_tests" - }, { "name": "audiosystem_tests" }, -- GitLab From 7a9ee22a5154f1cfe85b472123ee4e027a421ae4 Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Fri, 26 Jan 2024 00:27:29 +0000 Subject: [PATCH 311/418] Camera VTS: Test only CROPPED_RAW use case for RAW_SENSOR streams There are no mandatory stream combinations for RAW_SENSOR streams that do not involve the CROPPED_RAW stream use case. So we don't need to test stream non CROPPED_RAW stream use cases with the RAW_SENSOR format, since we don't have a definite answer to whether they will be supported or not. Bug: 317773720 Test: Camera VTS on cf Test: Vendor testing Merged-In: I0870e90ae68a5e35196f0ba0afaa6b8bf7fbfbd8 Change-Id: I0870e90ae68a5e35196f0ba0afaa6b8bf7fbfbd8 Signed-off-by: Jayant Chowdhary (cherry picked from commit 6847115a005833c62331d77f7791ab9667aac493) --- camera/provider/aidl/vts/camera_aidl_test.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index 5f9d605ef3..e15de9e265 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -2212,18 +2212,20 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres ASSERT_NE(0u, outputPreviewStreams.size()); // Combine valid and invalid stream use cases - std::vector useCases(kMandatoryUseCases); - useCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW + 1); + std::vector testedUseCases; + testedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW + 1); std::vector supportedUseCases; if (threshold.format == static_cast(PixelFormat::RAW16)) { // If the format is RAW16, supported use case is only CROPPED_RAW. // All others are unsupported for this format. - useCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); + testedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT); } else { camera_metadata_ro_entry entry; + testedUseCases.insert(testedUseCases.end(), kMandatoryUseCases.begin(), + kMandatoryUseCases.end()); auto retcode = find_camera_metadata_ro_entry( staticMeta, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry); if ((0 == retcode) && (entry.count > 0)) { @@ -2264,7 +2266,7 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres ASSERT_TRUE(ret.isOk()); config.sessionParams = req; - for (int64_t useCase : useCases) { + for (int64_t useCase : testedUseCases) { bool useCaseSupported = std::find(supportedUseCases.begin(), supportedUseCases.end(), useCase) != supportedUseCases.end(); -- GitLab From 57e748c9793b66ddedcfc41b638191661c8b5d3d Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Thu, 1 Feb 2024 21:41:48 +0000 Subject: [PATCH 312/418] Add VTS tests for all new Supplicant APIs that contain vendor data. Bug: 322815584 Test: atest VtsHalWifiSupplicantStaNetworkTargetTest \ VtsHalWifiSupplicantP2pIfaceTargetTest Change-Id: I63026b9f970c02b20e6b368c742624fad5d51041 --- .../supplicant_p2p_iface_aidl_test.cpp | 40 +++++++++++++++++-- .../supplicant_sta_network_aidl_test.cpp | 11 +++++ .../vts/functional/supplicant_test_utils.h | 22 ++++++++-- 3 files changed, 66 insertions(+), 7 deletions(-) diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp index 2e22807363..69a8919ac1 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp @@ -36,8 +36,10 @@ using aidl::android::hardware::wifi::supplicant::ISupplicant; using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface; using aidl::android::hardware::wifi::supplicant::MiracastMode; using aidl::android::hardware::wifi::supplicant::P2pConnectInfo; +using aidl::android::hardware::wifi::supplicant::P2pCreateGroupOwnerInfo; using aidl::android::hardware::wifi::supplicant::P2pDeviceFoundEventParams; using aidl::android::hardware::wifi::supplicant::P2pDiscoveryInfo; +using aidl::android::hardware::wifi::supplicant::P2pExtListenInfo; using aidl::android::hardware::wifi::supplicant::P2pFrameTypeMask; using aidl::android::hardware::wifi::supplicant::P2pGoNegotiationReqEventParams; using aidl::android::hardware::wifi::supplicant::P2pGroupCapabilityMask; @@ -72,7 +74,7 @@ const uint32_t kTestNetworkId = 7; const uint32_t kTestGroupFreq = 0; const bool kTestGroupPersistent = false; const bool kTestGroupIsJoin = false; -const auto& kTestVendorData = generateOuiKeyedDataList(5); +const auto& kTestVendorDataOptional = generateOuiKeyedDataListOptional(5); } // namespace @@ -534,6 +536,22 @@ TEST_P(SupplicantP2pIfaceAidlTest, AddGroupWithConfig_FailureInvalidFrequency) { .isOk()); } +/* + * CreateGroupOwner + */ +TEST_P(SupplicantP2pIfaceAidlTest, CreateGroupOwner) { + if (interface_version_ < 3) { + GTEST_SKIP() << "createGroupOwner is available as of Supplicant V3"; + } + + P2pCreateGroupOwnerInfo info; + info.persistent = false; + info.persistentNetworkId = kTestNetworkId; + info.vendorData = kTestVendorDataOptional; + + EXPECT_TRUE(p2p_iface_->createGroupOwner(info).isOk()); +} + /* * Find */ @@ -565,7 +583,7 @@ TEST_P(SupplicantP2pIfaceAidlTest, FindWithParams) { P2pDiscoveryInfo discoveryParams; discoveryParams.timeoutInSec = kTestFindTimeout; - discoveryParams.vendorData = kTestVendorData; + discoveryParams.vendorData = kTestVendorDataOptional; discoveryParams.scanType = P2pScanType::FULL; EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk()); @@ -624,7 +642,7 @@ TEST_P(SupplicantP2pIfaceAidlTest, ConnectWithParams) { connectInfo.joinExistingGroup = true; connectInfo.persistent = false; connectInfo.goIntent = kTestConnectGoIntent; - connectInfo.vendorData = kTestVendorData; + connectInfo.vendorData = kTestVendorDataOptional; std::string pin; EXPECT_TRUE(p2p_iface_->connectWithParams(connectInfo, &pin).isOk()); @@ -689,6 +707,22 @@ TEST_P(SupplicantP2pIfaceAidlTest, ConfigureExtListen) { .isOk()); } +/* + * ConfigureExtListenWithParams + */ +TEST_P(SupplicantP2pIfaceAidlTest, ConfigureExtListenWithParams) { + if (interface_version_ < 3) { + GTEST_SKIP() << "configureExtListenWithParams is available as of Supplicant V3"; + } + + P2pExtListenInfo info; + info.periodMs = 400; + info.intervalMs = 400; + info.vendorData = kTestVendorDataOptional; + + EXPECT_TRUE(p2p_iface_->configureExtListenWithParams(info).isOk()); +} + /* * FlushServices */ diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp index e5e9735a18..a541f8f180 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp @@ -72,6 +72,7 @@ const std::string kTestEapMatch = "match"; const KeyMgmtMask kTestKeyMgmt = static_cast(static_cast(KeyMgmtMask::WPA_PSK) | static_cast(KeyMgmtMask::WPA_EAP)); +const auto& kTestVendorData = generateOuiKeyedDataList(5); } // namespace @@ -834,6 +835,16 @@ TEST_P(SupplicantStaNetworkAidlTest, DisableEht) { EXPECT_TRUE(sta_network_->disableEht().isOk()); } +/* + * SetVendorData + */ +TEST_P(SupplicantStaNetworkAidlTest, SetVendorData) { + if (interface_version_ < 3) { + GTEST_SKIP() << "setVendorData is available as of Supplicant V3"; + } + EXPECT_TRUE(sta_network_->setVendorData(kTestVendorData).isOk()); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(SupplicantStaNetworkAidlTest); INSTANTIATE_TEST_SUITE_P(Supplicant, SupplicantStaNetworkAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames( diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h b/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h index b38e669875..51793fd259 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h +++ b/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h @@ -102,7 +102,7 @@ std::array vecToArrayMacAddr(std::vector vectorAddr) { return arrayAddr; } -std::optional generateOuiKeyedData(int oui) { +OuiKeyedData generateOuiKeyedData(int oui) { PersistableBundle bundle; bundle.putString("stringKey", "stringValue"); bundle.putInt("intKey", 12345); @@ -110,13 +110,27 @@ std::optional generateOuiKeyedData(int oui) { OuiKeyedData data; data.oui = oui; data.vendorData = bundle; - return std::optional{data}; + return data; } -std::optional>> generateOuiKeyedDataList(int size) { - std::vector> dataList; +std::vector generateOuiKeyedDataList(int size) { + std::vector dataList; for (int i = 0; i < size; i++) { dataList.push_back(generateOuiKeyedData(i + 1)); } + return dataList; +} + +// Wraps generateOuiKeyedData result in std::optional +std::optional generateOuiKeyedDataOptional(int oui) { + return std::optional{generateOuiKeyedData(oui)}; +} + +// Generate OuiKeyedData list fully wrapped in std::optional +std::optional>> generateOuiKeyedDataListOptional(int size) { + std::vector> dataList; + for (int i = 0; i < size; i++) { + dataList.push_back(generateOuiKeyedDataOptional(i + 1)); + } return std::optional>>{dataList}; } -- GitLab From 910a8153b2b667d7bcdc504992c16b2c08b68c28 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Thu, 1 Feb 2024 23:11:28 +0000 Subject: [PATCH 313/418] Effect: verify all AIDL IEffect versions are same as IFactory Bug: 322780092 Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit Change-Id: If47f70b9d8f72a45f3ecf927294fb93fda28851b --- .../VtsHalAudioEffectFactoryTargetTest.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp b/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp index adf1da77cd..4e86ec3e13 100644 --- a/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp @@ -296,6 +296,25 @@ TEST_P(EffectFactoryTest, QueryProcess) { [&](const auto& proc) { return processingSet.find(proc) != processingSet.end(); })); } +// Make sure all effect instances have same HAL version number as IFactory. +TEST_P(EffectFactoryTest, VersionNumberForAllEffectsEqualsToIFactory) { + std::vector descs; + EXPECT_IS_OK(mEffectFactory->queryEffects(std::nullopt, std::nullopt, std::nullopt, &descs)); + EXPECT_NE(descs.size(), 0UL); + + std::vector> effects = createWithDescs(descs); + int factoryVersion = 0; + EXPECT_IS_OK(mEffectFactory->getInterfaceVersion(&factoryVersion)); + + for (const auto& effect : effects) { + int effectVersion = 0; + EXPECT_NE(nullptr, effect); + EXPECT_IS_OK(effect->getInterfaceVersion(&effectVersion)); + EXPECT_EQ(factoryVersion, effectVersion); + } + ASSERT_NO_FATAL_FAILURE(destroyEffects(effects)); +} + INSTANTIATE_TEST_SUITE_P(EffectFactoryTest, EffectFactoryTest, testing::ValuesIn(android::getAidlHalInstanceNames(IFactory::descriptor)), android::PrintInstanceNameToString); -- GitLab From 4e95fdd9a226e3335d4019c0caa61b4f4ced57e3 Mon Sep 17 00:00:00 2001 From: Tang Lee Date: Fri, 2 Feb 2024 15:53:03 +0800 Subject: [PATCH 314/418] Revert Return ILLEGAL_ARGUMENT for setting null callback for 2.4 HAL This reverts part of the CL(ag/24741349) on 2.4 HAL file to pass 2.4 VTS. Since ag/24741349 was just for passing latest VTS on default HAL, it's ok to keep 2.4 HAL aligned with 2.4's VTS case. Bug: 320925606 Test: none Change-Id: I3c5e34930925c466ef6be4209e49122af1c791f6 --- .../2.4/default/ExternalCameraProviderImpl_2_4.cpp | 7 +++---- .../provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.cpp b/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.cpp index 2d919cccff..bb7679519a 100644 --- a/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.cpp +++ b/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.cpp @@ -95,14 +95,13 @@ ExternalCameraProviderImpl_2_4::~ExternalCameraProviderImpl_2_4() { Return ExternalCameraProviderImpl_2_4::setCallback( const sp& callback) { - if (callback == nullptr) { - return Status::ILLEGAL_ARGUMENT; - } - { Mutex::Autolock _l(mLock); mCallbacks = callback; } + if (callback == nullptr) { + return Status::OK; + } // Send a callback for all devices to initialize { for (const auto& pair : mCameraStatusMap) { diff --git a/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp b/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp index 07ed689c98..f039644575 100644 --- a/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp +++ b/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp @@ -448,11 +448,11 @@ bool LegacyCameraProviderImpl_2_4::setUpVendorTags() { // Methods from ::android::hardware::camera::provider::V2_4::ICameraProvider follow. Return LegacyCameraProviderImpl_2_4::setCallback( const sp& callback) { - if (callback == nullptr) { - return Status::ILLEGAL_ARGUMENT; - } Mutex::Autolock _l(mCbLock); mCallbacks = callback; + if (callback == nullptr) { + return Status::OK; + } // Add and report all presenting external cameras. for (auto const& statusPair : mCameraStatusMap) { int id = std::stoi(statusPair.first); -- GitLab From ed2d124ec1a18ef7b2aed7c71265a2df408222a5 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 15 Dec 2023 16:05:31 -0800 Subject: [PATCH 315/418] Add step and cancel tests for default bcradio HAL Added unit tests for step and cancel methods in the default AIDL broadcast radio HAL implementation. Bug: 316630344 Test: atest DefaultBroadcastRadioHalTestCase Change-Id: I83b7e9321ebd8bad1eb035d4f23bedce47712511 --- .../test/DefaultBroadcastRadioHalTest.cpp | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp index 8e85a1b40b..5fce61aa0d 100644 --- a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp +++ b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp @@ -117,6 +117,21 @@ class DefaultBroadcastRadioHalTest : public testing::Test { } } + bool getAmFmBandRange(utils::FrequencyBand band, AmFmBandRange* res) { + AmFmRegionConfig config; + auto halResult = mBroadcastRadioHal->getAmFmRegionConfig(/* full= */ false, &config); + if (!halResult.isOk()) { + return false; + } + for (const auto& range : config.ranges) { + if (utils::getBand(range.lowerBound) == band) { + *res = range; + return true; + } + } + return false; + } + std::shared_ptr mBroadcastRadioHal; std::shared_ptr mTunerCallback; }; @@ -246,4 +261,91 @@ TEST_F(DefaultBroadcastRadioHalTest, TuneWithoutTunerCallback) { ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); } +TEST_F(DefaultBroadcastRadioHalTest, StepUp) { + AmFmBandRange fmRange; + ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange)); + ProgramSelector nextChannelSel = + utils::makeSelectorAmfm(kFmSel1.primaryId.value + fmRange.spacing); + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + + auto halResult = mBroadcastRadioHal->step(/* in_directionUp= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(nextChannelSel); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepUpFromUpperBound) { + AmFmBandRange fmRange; + ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange)); + ProgramSelector upperBoundSel = utils::makeSelectorAmfm(fmRange.upperBound); + ProgramSelector lowerBoundSel = utils::makeSelectorAmfm(fmRange.lowerBound); + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(upperBoundSel).isOk()); + verifyUpdatedProgramInfo(upperBoundSel); + + auto halResult = mBroadcastRadioHal->step(/* in_directionUp= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(lowerBoundSel); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepDown) { + AmFmBandRange fmRange; + ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange)); + ProgramSelector nextChannelSel = + utils::makeSelectorAmfm(kFmSel1.primaryId.value - fmRange.spacing); + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + + auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(nextChannelSel); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepDownFromLowerBound) { + AmFmBandRange fmRange; + ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange)); + ProgramSelector upperBoundSel = utils::makeSelectorAmfm(fmRange.upperBound); + ProgramSelector lowerBoundSel = utils::makeSelectorAmfm(fmRange.lowerBound); + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(lowerBoundSel).isOk()); + verifyUpdatedProgramInfo(lowerBoundSel); + + auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(upperBoundSel); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepWithoutTunerCallback) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + mBroadcastRadioHal->unsetTunerCallback(); + + auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); +} + +TEST_F(DefaultBroadcastRadioHalTest, Cancel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + + auto halResult = mBroadcastRadioHal->cancel(); + + ASSERT_TRUE(halResult.isOk()); + mTunerCallback->reset(); +} + } // namespace aidl::android::hardware::broadcastradio -- GitLab From 8ec8a37f23dc44896b22d4999ac1d8a71132dc97 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 2 Feb 2024 15:03:43 -0800 Subject: [PATCH 316/418] Add bcradio HAL tests to presubmit Bug: 320556913 Test: m -j Change-Id: I873e48fedecde88e4eaa7adde1a2a33ac0c8465b --- broadcastradio/TEST_MAPPING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/broadcastradio/TEST_MAPPING b/broadcastradio/TEST_MAPPING index 82953312ec..2604fb3b54 100644 --- a/broadcastradio/TEST_MAPPING +++ b/broadcastradio/TEST_MAPPING @@ -1,5 +1,5 @@ { - "postsubmit": [ + "presubmit": [ { "name": "broadcastradio_utils_aidl_test" }, -- GitLab From 92ca5545caa2577f85ad01d4ed10dc1c39e4ed74 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Mon, 5 Feb 2024 11:04:02 +0900 Subject: [PATCH 317/418] Install bluetooth audio VINTF fragment in apex Previously, android.hardware.bluetooth.audio-impl was installed with no use and the attached vintf was fulfilled by the com.android.hardware.audio apex. For cleanup, we no longer install android.hardware.bluetooth.audio-impl separately (for cuttlefish) and install the VINTF inside the apex. Bug: 312265159 Test: atest VtsHalBluetoothAudioTargetTest Change-Id: I31e0ccd6a8c3c00565159f2be7fe3bf4d70e9ddf --- .../default/apex/com.android.hardware.audio/Android.bp | 1 + bluetooth/audio/aidl/default/Android.bp | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp index 9c91e27220..a2feef3aae 100644 --- a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp +++ b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp @@ -45,6 +45,7 @@ apex { prebuilts: [ "android.hardware.audio.service-aidl.example.rc", "android.hardware.audio.service-aidl.xml", + "android.hardware.bluetooth.audio.xml", "audio_effects_config.xml", ], } diff --git a/bluetooth/audio/aidl/default/Android.bp b/bluetooth/audio/aidl/default/Android.bp index 69db1b3e38..af6bf86ddf 100644 --- a/bluetooth/audio/aidl/default/Android.bp +++ b/bluetooth/audio/aidl/default/Android.bp @@ -40,3 +40,10 @@ cc_library_shared { "libbluetooth_audio_session_aidl", ], } + +prebuilt_etc { + name: "android.hardware.bluetooth.audio.xml", + src: "bluetooth_audio.xml", + sub_dir: "vintf", + installable: false, +} -- GitLab From ad2ba1b851b6e8e0a7fd8c1512a5916d105c09aa Mon Sep 17 00:00:00 2001 From: Aditya Choudhary Date: Mon, 5 Feb 2024 15:45:22 +0000 Subject: [PATCH 318/418] [DON'T BLOCK] Test ownership migration rules This CL is created as a best effort to migrate test targets to the new android ownership model. If you find incorrect or unnecessary attribution in this CL, please create a separate CL to fix that. For more details please refer to the link below, go/new-android-ownership-model Bug: 304529413 Test: N/A Change-Id: Ic8c4bd6ac246e7efa98bbdaf822d12ae8e1230a5 --- audio/policy/1.0/vts/functional/Android.bp | 1 + audio/policy/1.0/xml/Android.bp | 1 + audio/policy/1.0/xml/pfw_schemas/Android.bp | 1 + camera/common/1.0/Android.bp | 1 + camera/common/aidl/Android.bp | 3 ++- camera/common/default/Android.bp | 1 + camera/device/1.0/Android.bp | 1 + camera/device/1.0/default/Android.bp | 1 + camera/device/3.2/Android.bp | 1 + camera/device/3.2/default/Android.bp | 1 + camera/device/3.3/Android.bp | 1 + camera/device/3.3/default/Android.bp | 1 + camera/device/3.4/Android.bp | 1 + camera/device/3.4/default/Android.bp | 1 + camera/device/3.5/Android.bp | 1 + camera/device/3.5/default/Android.bp | 1 + camera/device/3.6/Android.bp | 1 + camera/device/3.6/default/Android.bp | 1 + camera/device/3.7/Android.bp | 1 + camera/device/aidl/Android.bp | 1 + camera/device/default/Android.bp | 1 + camera/metadata/3.2/Android.bp | 1 + camera/metadata/3.3/Android.bp | 1 + camera/metadata/3.4/Android.bp | 1 + camera/metadata/3.5/Android.bp | 1 + camera/metadata/3.6/Android.bp | 1 + camera/metadata/3.7/Android.bp | 1 + camera/metadata/aidl/Android.bp | 1 + camera/provider/2.4/Android.bp | 1 + camera/provider/2.4/default/Android.bp | 1 + camera/provider/2.4/vts/functional/Android.bp | 1 + camera/provider/2.5/Android.bp | 1 + camera/provider/2.5/default/Android.bp | 5 +++-- camera/provider/2.6/Android.bp | 1 + camera/provider/2.7/Android.bp | 1 + camera/provider/2.7/default/Android.bp | 1 + camera/provider/aidl/Android.bp | 1 + camera/provider/aidl/vts/Android.bp | 1 + camera/provider/default/Android.bp | 1 + contexthub/aidl/Android.bp | 1 + contexthub/aidl/default/Android.bp | 1 + contexthub/aidl/vts/Android.bp | 1 + graphics/allocator/2.0/Android.bp | 1 + graphics/allocator/2.0/default/Android.bp | 1 + .../allocator/2.0/utils/gralloc1-adapter/Android.bp | 11 +++++++++-- graphics/allocator/2.0/utils/hal/Android.bp | 1 + graphics/allocator/2.0/utils/passthrough/Android.bp | 1 + graphics/allocator/3.0/Android.bp | 1 + graphics/allocator/4.0/Android.bp | 1 + graphics/allocator/aidl/Android.bp | 1 + graphics/allocator/aidl/vts/Android.bp | 1 + graphics/bufferqueue/1.0/Android.bp | 1 + graphics/bufferqueue/2.0/Android.bp | 1 + graphics/common/1.0/Android.bp | 1 + graphics/common/1.1/Android.bp | 1 + graphics/common/1.2/Android.bp | 1 + graphics/common/aidl/Android.bp | 1 + graphics/mapper/2.0/Android.bp | 1 + graphics/mapper/2.0/default/Android.bp | 3 ++- graphics/mapper/2.0/utils/hal/Android.bp | 1 + graphics/mapper/2.0/utils/passthrough/Android.bp | 1 + graphics/mapper/2.0/utils/vts/Android.bp | 1 + graphics/mapper/2.0/vts/functional/Android.bp | 6 +++++- graphics/mapper/2.1/Android.bp | 1 + graphics/mapper/2.1/default/Android.bp | 1 + graphics/mapper/2.1/utils/hal/Android.bp | 1 + graphics/mapper/2.1/utils/passthrough/Android.bp | 1 + graphics/mapper/2.1/utils/vts/Android.bp | 6 +++++- graphics/mapper/2.1/vts/functional/Android.bp | 6 +++++- graphics/mapper/3.0/Android.bp | 1 + graphics/mapper/3.0/utils/vts/Android.bp | 1 + graphics/mapper/3.0/vts/functional/Android.bp | 6 +++++- graphics/mapper/4.0/Android.bp | 1 + graphics/mapper/4.0/utils/vts/Android.bp | 1 + graphics/mapper/4.0/vts/functional/Android.bp | 1 + graphics/mapper/stable-c/Android.bp | 1 + input/classifier/1.0/default/Android.bp | 1 + input/classifier/1.0/vts/functional/Android.bp | 1 + input/common/1.0/Android.bp | 1 + input/common/aidl/Android.bp | 1 + input/processor/aidl/Android.bp | 1 + input/processor/aidl/default/Android.bp | 1 + media/bufferpool/1.0/Android.bp | 1 + media/bufferpool/2.0/Android.bp | 1 + media/bufferpool/aidl/Android.bp | 1 + media/bufferpool/aidl/default/Android.bp | 1 + media/bufferpool/aidl/default/tests/Android.bp | 7 ++++--- media/omx/1.0/vts/functional/audio/Android.bp | 1 + media/omx/1.0/vts/functional/common/Android.bp | 1 + media/omx/1.0/vts/functional/component/Android.bp | 1 + media/omx/1.0/vts/functional/store/Android.bp | 1 + media/omx/1.0/vts/functional/video/Android.bp | 1 + nfc/1.0/vts/functional/Android.bp | 6 +++++- nfc/1.1/vts/functional/Android.bp | 6 +++++- nfc/1.2/vts/functional/Android.bp | 6 +++++- radio/aidl/Android.bp | 1 + radio/aidl/compat/libradiocompat/Android.bp | 1 + radio/aidl/compat/service/Android.bp | 1 + radio/aidl/vts/Android.bp | 1 + radio/config/1.0/Android.bp | 1 + radio/config/1.0/default/Android.bp | 1 + radio/config/1.0/vts/functional/Android.bp | 1 + radio/config/1.1/Android.bp | 1 + radio/config/1.1/vts/functional/Android.bp | 1 + radio/config/1.2/Android.bp | 1 + radio/config/1.2/vts/functional/Android.bp | 1 + radio/config/1.3/Android.bp | 1 + radio/config/1.3/vts/functional/Android.bp | 3 ++- radio/deprecated/1.0/Android.bp | 1 + security/secretkeeper/aidl/Android.bp | 1 + security/secretkeeper/aidl/vts/Android.bp | 1 + security/secretkeeper/default/Android.bp | 1 + sensors/common/convert/Android.bp | 1 + sensors/common/default/2.X/Android.bp | 1 + sensors/common/default/2.X/multihal/Android.bp | 1 + sensors/common/default/2.X/multihal/tests/Android.bp | 1 + sensors/common/utils/Android.bp | 1 + sensors/common/vts/2_X/Android.bp | 1 + sensors/common/vts/utils/Android.bp | 1 + soundtrigger/aidl/Android.bp | 1 + soundtrigger/aidl/cli/Android.bp | 1 + tv/cec/1.0/Android.bp | 1 + tv/cec/1.0/default/Android.bp | 1 + tv/cec/1.0/vts/functional/Android.bp | 1 + tv/cec/1.1/Android.bp | 1 + tv/cec/1.1/default/Android.bp | 1 + tv/cec/1.1/vts/functional/Android.bp | 1 + uwb/aidl/Android.bp | 1 + uwb/aidl/default/Android.bp | 1 + uwb/aidl/vts/Android.bp | 1 + vibrator/bench/Android.bp | 1 + weaver/aidl/Android.bp | 1 + weaver/aidl/default/Android.bp | 1 + weaver/vts/Android.bp | 1 + wifi/aidl/Android.bp | 1 + wifi/aidl/default/Android.bp | 1 + wifi/aidl/vts/functional/Android.bp | 1 + wifi/hostapd/1.0/Android.bp | 1 + wifi/hostapd/1.0/vts/functional/Android.bp | 8 ++++++-- wifi/hostapd/1.1/Android.bp | 1 + wifi/hostapd/1.1/vts/functional/Android.bp | 1 + wifi/hostapd/1.2/Android.bp | 1 + wifi/hostapd/1.2/vts/functional/Android.bp | 1 + wifi/hostapd/1.3/Android.bp | 1 + wifi/hostapd/1.3/vts/functional/Android.bp | 1 + wifi/hostapd/aidl/Android.bp | 1 + wifi/hostapd/aidl/vts/functional/Android.bp | 1 + wifi/netlinkinterceptor/aidl/Android.bp | 1 + wifi/netlinkinterceptor/aidl/default/Android.bp | 1 + wifi/netlinkinterceptor/libnlinterceptor/Android.bp | 1 + wifi/netlinkinterceptor/vts/functional/Android.bp | 1 + wifi/supplicant/1.0/Android.bp | 1 + wifi/supplicant/1.0/vts/functional/Android.bp | 1 + wifi/supplicant/1.1/Android.bp | 1 + wifi/supplicant/1.1/vts/functional/Android.bp | 1 + wifi/supplicant/1.2/Android.bp | 1 + wifi/supplicant/1.2/vts/functional/Android.bp | 1 + wifi/supplicant/1.3/Android.bp | 1 + wifi/supplicant/1.3/vts/functional/Android.bp | 1 + wifi/supplicant/1.4/Android.bp | 1 + wifi/supplicant/1.4/vts/functional/Android.bp | 1 + wifi/supplicant/aidl/Android.bp | 1 + wifi/supplicant/aidl/vts/functional/Android.bp | 1 + 163 files changed, 212 insertions(+), 19 deletions(-) diff --git a/audio/policy/1.0/vts/functional/Android.bp b/audio/policy/1.0/vts/functional/Android.bp index cccb2fc6f0..b32c223183 100644 --- a/audio/policy/1.0/vts/functional/Android.bp +++ b/audio/policy/1.0/vts/functional/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/policy/1.0/xml/Android.bp b/audio/policy/1.0/xml/Android.bp index 403278cbba..d644570070 100644 --- a/audio/policy/1.0/xml/Android.bp +++ b/audio/policy/1.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/policy/1.0/xml/pfw_schemas/Android.bp b/audio/policy/1.0/xml/pfw_schemas/Android.bp index 225c06577f..18284e9776 100644 --- a/audio/policy/1.0/xml/pfw_schemas/Android.bp +++ b/audio/policy/1.0/xml/pfw_schemas/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/common/1.0/Android.bp b/camera/common/1.0/Android.bp index 3eb12b92ff..5952ac8573 100644 --- a/camera/common/1.0/Android.bp +++ b/camera/common/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/common/aidl/Android.bp b/camera/common/aidl/Android.bp index 4ffcfd97f3..8f7d19dc46 100644 --- a/camera/common/aidl/Android.bp +++ b/camera/common/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -22,7 +23,7 @@ aidl_interface { }, rust: { enabled: true, - } + }, }, versions_with_info: [ { diff --git a/camera/common/default/Android.bp b/camera/common/default/Android.bp index e8c8f9dba0..a60e7f0aa0 100644 --- a/camera/common/default/Android.bp +++ b/camera/common/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/1.0/Android.bp b/camera/device/1.0/Android.bp index 6947779e6b..e3a85e0d39 100644 --- a/camera/device/1.0/Android.bp +++ b/camera/device/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/1.0/default/Android.bp b/camera/device/1.0/default/Android.bp index 9ff6480d4b..af7b139d4c 100644 --- a/camera/device/1.0/default/Android.bp +++ b/camera/device/1.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.2/Android.bp b/camera/device/3.2/Android.bp index c80538c531..afeba172fa 100644 --- a/camera/device/3.2/Android.bp +++ b/camera/device/3.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.2/default/Android.bp b/camera/device/3.2/default/Android.bp index a1962915ff..a9176ba622 100644 --- a/camera/device/3.2/default/Android.bp +++ b/camera/device/3.2/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.3/Android.bp b/camera/device/3.3/Android.bp index f5e51d6b21..becc67e520 100644 --- a/camera/device/3.3/Android.bp +++ b/camera/device/3.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.3/default/Android.bp b/camera/device/3.3/default/Android.bp index cc0dd39db5..5bc2b51d18 100644 --- a/camera/device/3.3/default/Android.bp +++ b/camera/device/3.3/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.4/Android.bp b/camera/device/3.4/Android.bp index 2a6faabc3f..bde7c9f56b 100644 --- a/camera/device/3.4/Android.bp +++ b/camera/device/3.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.4/default/Android.bp b/camera/device/3.4/default/Android.bp index 9f0c77739a..49147de0e1 100644 --- a/camera/device/3.4/default/Android.bp +++ b/camera/device/3.4/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.5/Android.bp b/camera/device/3.5/Android.bp index f29f9364fb..6e23ee04ea 100644 --- a/camera/device/3.5/Android.bp +++ b/camera/device/3.5/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.5/default/Android.bp b/camera/device/3.5/default/Android.bp index 9d27b321e0..d7568cdd44 100644 --- a/camera/device/3.5/default/Android.bp +++ b/camera/device/3.5/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.6/Android.bp b/camera/device/3.6/Android.bp index ff37ca3695..4fb56cf9ab 100644 --- a/camera/device/3.6/Android.bp +++ b/camera/device/3.6/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.6/default/Android.bp b/camera/device/3.6/default/Android.bp index 89ee145820..c42e42edb1 100644 --- a/camera/device/3.6/default/Android.bp +++ b/camera/device/3.6/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.7/Android.bp b/camera/device/3.7/Android.bp index be08e91aed..4312c04bf3 100644 --- a/camera/device/3.7/Android.bp +++ b/camera/device/3.7/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/aidl/Android.bp b/camera/device/aidl/Android.bp index 43a3934e74..5c8ed7ea5e 100644 --- a/camera/device/aidl/Android.bp +++ b/camera/device/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/default/Android.bp b/camera/device/default/Android.bp index b577597d8c..afe06c14a2 100644 --- a/camera/device/default/Android.bp +++ b/camera/device/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.2/Android.bp b/camera/metadata/3.2/Android.bp index ec8107e9f7..4602923585 100644 --- a/camera/metadata/3.2/Android.bp +++ b/camera/metadata/3.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.3/Android.bp b/camera/metadata/3.3/Android.bp index 4bed25b2f4..ba0ec80d81 100644 --- a/camera/metadata/3.3/Android.bp +++ b/camera/metadata/3.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.4/Android.bp b/camera/metadata/3.4/Android.bp index fdddfdf07a..893a6aa5e8 100644 --- a/camera/metadata/3.4/Android.bp +++ b/camera/metadata/3.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.5/Android.bp b/camera/metadata/3.5/Android.bp index 9349d546c5..df4dddd131 100644 --- a/camera/metadata/3.5/Android.bp +++ b/camera/metadata/3.5/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.6/Android.bp b/camera/metadata/3.6/Android.bp index 9e2b8a35e6..40f22fdf40 100644 --- a/camera/metadata/3.6/Android.bp +++ b/camera/metadata/3.6/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.7/Android.bp b/camera/metadata/3.7/Android.bp index 14981b850f..70a9d561b6 100644 --- a/camera/metadata/3.7/Android.bp +++ b/camera/metadata/3.7/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/aidl/Android.bp b/camera/metadata/aidl/Android.bp index 5872a86727..b0b98d1540 100644 --- a/camera/metadata/aidl/Android.bp +++ b/camera/metadata/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.4/Android.bp b/camera/provider/2.4/Android.bp index a4c0dd2297..fbdc763985 100644 --- a/camera/provider/2.4/Android.bp +++ b/camera/provider/2.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.4/default/Android.bp b/camera/provider/2.4/default/Android.bp index bccd6cb536..db4453d23e 100644 --- a/camera/provider/2.4/default/Android.bp +++ b/camera/provider/2.4/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.4/vts/functional/Android.bp b/camera/provider/2.4/vts/functional/Android.bp index 85e69eb866..4e59d2824b 100644 --- a/camera/provider/2.4/vts/functional/Android.bp +++ b/camera/provider/2.4/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.5/Android.bp b/camera/provider/2.5/Android.bp index e14c0a846d..e0824424ff 100644 --- a/camera/provider/2.5/Android.bp +++ b/camera/provider/2.5/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.5/default/Android.bp b/camera/provider/2.5/default/Android.bp index 2fcb35ab00..ae0c2f955d 100644 --- a/camera/provider/2.5/default/Android.bp +++ b/camera/provider/2.5/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -84,7 +85,7 @@ cc_library_shared { header_libs: [ "camera.device@3.4-external-impl_headers", "camera.device@3.5-external-impl_headers", - "camera.device@3.6-external-impl_headers" + "camera.device@3.6-external-impl_headers", ], export_include_dirs: ["."], } @@ -121,7 +122,7 @@ cc_defaults { ], header_libs: [ "camera.device@3.4-impl_headers", - "camera.device@3.5-impl_headers" + "camera.device@3.5-impl_headers", ], } diff --git a/camera/provider/2.6/Android.bp b/camera/provider/2.6/Android.bp index f402a560c9..9e4a4d6533 100644 --- a/camera/provider/2.6/Android.bp +++ b/camera/provider/2.6/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.7/Android.bp b/camera/provider/2.7/Android.bp index ba59b380f5..d4369faf2a 100644 --- a/camera/provider/2.7/Android.bp +++ b/camera/provider/2.7/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.7/default/Android.bp b/camera/provider/2.7/default/Android.bp index bd5da2dbfa..8d7cd7233d 100644 --- a/camera/provider/2.7/default/Android.bp +++ b/camera/provider/2.7/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/aidl/Android.bp b/camera/provider/aidl/Android.bp index 35ec9766a0..9ced9691fb 100644 --- a/camera/provider/aidl/Android.bp +++ b/camera/provider/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/aidl/vts/Android.bp b/camera/provider/aidl/vts/Android.bp index 59f6c66051..6f7e73b548 100644 --- a/camera/provider/aidl/vts/Android.bp +++ b/camera/provider/aidl/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/default/Android.bp b/camera/provider/default/Android.bp index ed45cbed9d..9d70c92051 100644 --- a/camera/provider/default/Android.bp +++ b/camera/provider/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/contexthub/aidl/Android.bp b/contexthub/aidl/Android.bp index a0315d0b30..ad4e4f6dfb 100644 --- a/contexthub/aidl/Android.bp +++ b/contexthub/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_context_hub", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/contexthub/aidl/default/Android.bp b/contexthub/aidl/default/Android.bp index d293e306c7..8d85f80f5d 100644 --- a/contexthub/aidl/default/Android.bp +++ b/contexthub/aidl/default/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_context_hub", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/contexthub/aidl/vts/Android.bp b/contexthub/aidl/vts/Android.bp index 1534b40876..509ae5e5eb 100644 --- a/contexthub/aidl/vts/Android.bp +++ b/contexthub/aidl/vts/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_context_hub", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/2.0/Android.bp b/graphics/allocator/2.0/Android.bp index 40db81d3e4..36158e9eb8 100644 --- a/graphics/allocator/2.0/Android.bp +++ b/graphics/allocator/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/2.0/default/Android.bp b/graphics/allocator/2.0/default/Android.bp index 4d17dc3a1b..2ca9c869ff 100644 --- a/graphics/allocator/2.0/default/Android.bp +++ b/graphics/allocator/2.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp b/graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp index bc42099c92..1ef32ef274 100644 --- a/graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp +++ b/graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -11,9 +12,15 @@ cc_library_static { name: "libgralloc1-adapter", defaults: ["hidl_defaults"], vendor: true, - srcs: ["gralloc1-adapter.cpp", "Gralloc1On0Adapter.cpp"], + srcs: [ + "gralloc1-adapter.cpp", + "Gralloc1On0Adapter.cpp", + ], include_dirs: ["system/core/libsync/include"], export_include_dirs: ["."], whole_static_libs: ["libgrallocusage"], - shared_libs: ["libhardware", "liblog"], + shared_libs: [ + "libhardware", + "liblog", + ], } diff --git a/graphics/allocator/2.0/utils/hal/Android.bp b/graphics/allocator/2.0/utils/hal/Android.bp index 6bb9a0f657..a2ddafd032 100644 --- a/graphics/allocator/2.0/utils/hal/Android.bp +++ b/graphics/allocator/2.0/utils/hal/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/2.0/utils/passthrough/Android.bp b/graphics/allocator/2.0/utils/passthrough/Android.bp index f5ac5a61e6..fe005182cb 100644 --- a/graphics/allocator/2.0/utils/passthrough/Android.bp +++ b/graphics/allocator/2.0/utils/passthrough/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/3.0/Android.bp b/graphics/allocator/3.0/Android.bp index 800632c59d..0100f6f336 100644 --- a/graphics/allocator/3.0/Android.bp +++ b/graphics/allocator/3.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/4.0/Android.bp b/graphics/allocator/4.0/Android.bp index 5c5fb37c48..5d7a4a991a 100644 --- a/graphics/allocator/4.0/Android.bp +++ b/graphics/allocator/4.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/aidl/Android.bp b/graphics/allocator/aidl/Android.bp index a3a2c554ca..188b14ee6f 100644 --- a/graphics/allocator/aidl/Android.bp +++ b/graphics/allocator/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/aidl/vts/Android.bp b/graphics/allocator/aidl/vts/Android.bp index 630ab2a2f0..b2ed821559 100644 --- a/graphics/allocator/aidl/vts/Android.bp +++ b/graphics/allocator/aidl/vts/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/bufferqueue/1.0/Android.bp b/graphics/bufferqueue/1.0/Android.bp index 82c71f1d5f..fe46b5e4a8 100644 --- a/graphics/bufferqueue/1.0/Android.bp +++ b/graphics/bufferqueue/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/bufferqueue/2.0/Android.bp b/graphics/bufferqueue/2.0/Android.bp index 3067e2483c..c2b0985efd 100644 --- a/graphics/bufferqueue/2.0/Android.bp +++ b/graphics/bufferqueue/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/common/1.0/Android.bp b/graphics/common/1.0/Android.bp index 3288583bea..786953b4ce 100644 --- a/graphics/common/1.0/Android.bp +++ b/graphics/common/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/common/1.1/Android.bp b/graphics/common/1.1/Android.bp index 5d07eae432..d857f8007e 100644 --- a/graphics/common/1.1/Android.bp +++ b/graphics/common/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/common/1.2/Android.bp b/graphics/common/1.2/Android.bp index 4aa4af56cb..17d0c205c1 100644 --- a/graphics/common/1.2/Android.bp +++ b/graphics/common/1.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/common/aidl/Android.bp b/graphics/common/aidl/Android.bp index 02334e85c2..c9fbf164f3 100644 --- a/graphics/common/aidl/Android.bp +++ b/graphics/common/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/Android.bp b/graphics/mapper/2.0/Android.bp index 6c3ef543fb..81040ab5b0 100644 --- a/graphics/mapper/2.0/Android.bp +++ b/graphics/mapper/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/default/Android.bp b/graphics/mapper/2.0/default/Android.bp index fffea3b5f2..337e29e97c 100644 --- a/graphics/mapper/2.0/default/Android.bp +++ b/graphics/mapper/2.0/default/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -29,7 +30,7 @@ cc_library_shared { relative_install_path: "hw", srcs: ["passthrough.cpp"], header_libs: [ - "android.hardware.graphics.mapper@2.0-passthrough" + "android.hardware.graphics.mapper@2.0-passthrough", ], shared_libs: [ "android.hardware.graphics.mapper@2.0", diff --git a/graphics/mapper/2.0/utils/hal/Android.bp b/graphics/mapper/2.0/utils/hal/Android.bp index f5d4506100..c4a0b11a47 100644 --- a/graphics/mapper/2.0/utils/hal/Android.bp +++ b/graphics/mapper/2.0/utils/hal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/utils/passthrough/Android.bp b/graphics/mapper/2.0/utils/passthrough/Android.bp index 23450fb0a7..257eab90cf 100644 --- a/graphics/mapper/2.0/utils/passthrough/Android.bp +++ b/graphics/mapper/2.0/utils/passthrough/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/utils/vts/Android.bp b/graphics/mapper/2.0/utils/vts/Android.bp index 03f925d7bf..4fb78db9d5 100644 --- a/graphics/mapper/2.0/utils/vts/Android.bp +++ b/graphics/mapper/2.0/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/vts/functional/Android.bp b/graphics/mapper/2.0/vts/functional/Android.bp index 43e61565fb..01bb6157a4 100644 --- a/graphics/mapper/2.0/vts/functional/Android.bp +++ b/graphics/mapper/2.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -33,5 +34,8 @@ cc_test { "android.hardware.graphics.mapper@2.0", "android.hardware.graphics.mapper@2.0-vts", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/graphics/mapper/2.1/Android.bp b/graphics/mapper/2.1/Android.bp index cc74156cbe..1308a6cb67 100644 --- a/graphics/mapper/2.1/Android.bp +++ b/graphics/mapper/2.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.1/default/Android.bp b/graphics/mapper/2.1/default/Android.bp index 4f080c417f..8dfdbbd5fe 100644 --- a/graphics/mapper/2.1/default/Android.bp +++ b/graphics/mapper/2.1/default/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.1/utils/hal/Android.bp b/graphics/mapper/2.1/utils/hal/Android.bp index aff497cea0..47f797126f 100644 --- a/graphics/mapper/2.1/utils/hal/Android.bp +++ b/graphics/mapper/2.1/utils/hal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.1/utils/passthrough/Android.bp b/graphics/mapper/2.1/utils/passthrough/Android.bp index d46041b37a..ddfc57de54 100644 --- a/graphics/mapper/2.1/utils/passthrough/Android.bp +++ b/graphics/mapper/2.1/utils/passthrough/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.1/utils/vts/Android.bp b/graphics/mapper/2.1/utils/vts/Android.bp index 5c67df9443..a095733627 100644 --- a/graphics/mapper/2.1/utils/vts/Android.bp +++ b/graphics/mapper/2.1/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -25,7 +26,10 @@ package { cc_library_static { name: "android.hardware.graphics.mapper@2.1-vts", - defaults: ["hidl_defaults", "VtsHalTargetTestDefaults"], + defaults: [ + "hidl_defaults", + "VtsHalTargetTestDefaults", + ], srcs: ["MapperVts.cpp"], cflags: [ "-O0", diff --git a/graphics/mapper/2.1/vts/functional/Android.bp b/graphics/mapper/2.1/vts/functional/Android.bp index 7bbc9a44f7..acfd52a7ee 100644 --- a/graphics/mapper/2.1/vts/functional/Android.bp +++ b/graphics/mapper/2.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -35,5 +36,8 @@ cc_test { "android.hardware.graphics.mapper@2.0-vts", "android.hardware.graphics.mapper@2.1-vts", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/graphics/mapper/3.0/Android.bp b/graphics/mapper/3.0/Android.bp index 88992a3923..b49806f9ed 100644 --- a/graphics/mapper/3.0/Android.bp +++ b/graphics/mapper/3.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/3.0/utils/vts/Android.bp b/graphics/mapper/3.0/utils/vts/Android.bp index c0d56de1ab..d4b803535d 100644 --- a/graphics/mapper/3.0/utils/vts/Android.bp +++ b/graphics/mapper/3.0/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/3.0/vts/functional/Android.bp b/graphics/mapper/3.0/vts/functional/Android.bp index e83702703c..57cd09b104 100644 --- a/graphics/mapper/3.0/vts/functional/Android.bp +++ b/graphics/mapper/3.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -35,5 +36,8 @@ cc_test { "android.hardware.graphics.mapper@3.0", "android.hardware.graphics.mapper@3.0-vts", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/graphics/mapper/4.0/Android.bp b/graphics/mapper/4.0/Android.bp index 0cffce4508..c07f73c51a 100644 --- a/graphics/mapper/4.0/Android.bp +++ b/graphics/mapper/4.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/4.0/utils/vts/Android.bp b/graphics/mapper/4.0/utils/vts/Android.bp index 51e871b2d6..013dbc5d78 100644 --- a/graphics/mapper/4.0/utils/vts/Android.bp +++ b/graphics/mapper/4.0/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/4.0/vts/functional/Android.bp b/graphics/mapper/4.0/vts/functional/Android.bp index 6208ae9ab2..181408bcfe 100644 --- a/graphics/mapper/4.0/vts/functional/Android.bp +++ b/graphics/mapper/4.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/stable-c/Android.bp b/graphics/mapper/stable-c/Android.bp index 1d01a02707..40486fd105 100644 --- a/graphics/mapper/stable-c/Android.bp +++ b/graphics/mapper/stable-c/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/classifier/1.0/default/Android.bp b/input/classifier/1.0/default/Android.bp index 8ab2ba8b9a..264292becd 100644 --- a/input/classifier/1.0/default/Android.bp +++ b/input/classifier/1.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/classifier/1.0/vts/functional/Android.bp b/input/classifier/1.0/vts/functional/Android.bp index 22346ed8b4..dcf68b90fa 100644 --- a/input/classifier/1.0/vts/functional/Android.bp +++ b/input/classifier/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/common/1.0/Android.bp b/input/common/1.0/Android.bp index ed0ab9875b..ffa3441b9e 100644 --- a/input/common/1.0/Android.bp +++ b/input/common/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/common/aidl/Android.bp b/input/common/aidl/Android.bp index 95a14b286b..5a1614b3a3 100644 --- a/input/common/aidl/Android.bp +++ b/input/common/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/processor/aidl/Android.bp b/input/processor/aidl/Android.bp index f1a73d2e3b..68adf32c49 100644 --- a/input/processor/aidl/Android.bp +++ b/input/processor/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/processor/aidl/default/Android.bp b/input/processor/aidl/default/Android.bp index bdd27e2bca..f5163a7144 100644 --- a/input/processor/aidl/default/Android.bp +++ b/input/processor/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/bufferpool/1.0/Android.bp b/media/bufferpool/1.0/Android.bp index 175b8a5ae7..60bcf7b5b3 100644 --- a/media/bufferpool/1.0/Android.bp +++ b/media/bufferpool/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/bufferpool/2.0/Android.bp b/media/bufferpool/2.0/Android.bp index 56597db396..fd6f08b199 100644 --- a/media/bufferpool/2.0/Android.bp +++ b/media/bufferpool/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/bufferpool/aidl/Android.bp b/media/bufferpool/aidl/Android.bp index 9dcc90e9c0..010c7cdab0 100644 --- a/media/bufferpool/aidl/Android.bp +++ b/media/bufferpool/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/bufferpool/aidl/default/Android.bp b/media/bufferpool/aidl/default/Android.bp index 4d12d6304a..72cd9031e9 100644 --- a/media/bufferpool/aidl/default/Android.bp +++ b/media/bufferpool/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "frameworks_av_license" diff --git a/media/bufferpool/aidl/default/tests/Android.bp b/media/bufferpool/aidl/default/tests/Android.bp index 487ed4c593..46aa4dad21 100644 --- a/media/bufferpool/aidl/default/tests/Android.bp +++ b/media/bufferpool/aidl/default/tests/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "frameworks_av_license" @@ -42,7 +43,7 @@ cc_test { ], static_libs: [ "libaidlcommonsupport", - "libstagefright_aidl_bufferpool2" + "libstagefright_aidl_bufferpool2", ], compile_multilib: "both", } @@ -66,7 +67,7 @@ cc_test { ], static_libs: [ "libaidlcommonsupport", - "libstagefright_aidl_bufferpool2" + "libstagefright_aidl_bufferpool2", ], compile_multilib: "both", } @@ -90,7 +91,7 @@ cc_test { ], static_libs: [ "libaidlcommonsupport", - "libstagefright_aidl_bufferpool2" + "libstagefright_aidl_bufferpool2", ], compile_multilib: "both", } diff --git a/media/omx/1.0/vts/functional/audio/Android.bp b/media/omx/1.0/vts/functional/audio/Android.bp index a2733c92f1..1be82f8e0b 100644 --- a/media/omx/1.0/vts/functional/audio/Android.bp +++ b/media/omx/1.0/vts/functional/audio/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/common/Android.bp b/media/omx/1.0/vts/functional/common/Android.bp index 12b6fb292f..7c23d61c95 100644 --- a/media/omx/1.0/vts/functional/common/Android.bp +++ b/media/omx/1.0/vts/functional/common/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/component/Android.bp b/media/omx/1.0/vts/functional/component/Android.bp index 7b8ec9ddf4..fddbb8eebc 100644 --- a/media/omx/1.0/vts/functional/component/Android.bp +++ b/media/omx/1.0/vts/functional/component/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/store/Android.bp b/media/omx/1.0/vts/functional/store/Android.bp index b34fff1b7b..ebe42930dc 100644 --- a/media/omx/1.0/vts/functional/store/Android.bp +++ b/media/omx/1.0/vts/functional/store/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/video/Android.bp b/media/omx/1.0/vts/functional/video/Android.bp index 5454f16c67..0eac78e7bb 100644 --- a/media/omx/1.0/vts/functional/video/Android.bp +++ b/media/omx/1.0/vts/functional/video/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/nfc/1.0/vts/functional/Android.bp b/nfc/1.0/vts/functional/Android.bp index 0d3f0c95d6..2e9a6fa0ff 100644 --- a/nfc/1.0/vts/functional/Android.bp +++ b/nfc/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -30,5 +31,8 @@ cc_test { static_libs: [ "android.hardware.nfc@1.0", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/nfc/1.1/vts/functional/Android.bp b/nfc/1.1/vts/functional/Android.bp index 4439531d9f..cffe84ab6a 100644 --- a/nfc/1.1/vts/functional/Android.bp +++ b/nfc/1.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -31,5 +32,8 @@ cc_test { "android.hardware.nfc@1.0", "android.hardware.nfc@1.1", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/nfc/1.2/vts/functional/Android.bp b/nfc/1.2/vts/functional/Android.bp index ff7bd3a8d8..394dc261dc 100644 --- a/nfc/1.2/vts/functional/Android.bp +++ b/nfc/1.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -32,5 +33,8 @@ cc_test { "android.hardware.nfc@1.1", "android.hardware.nfc@1.2", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/radio/aidl/Android.bp b/radio/aidl/Android.bp index 09f845b8ab..7e9505444f 100644 --- a/radio/aidl/Android.bp +++ b/radio/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/aidl/compat/libradiocompat/Android.bp b/radio/aidl/compat/libradiocompat/Android.bp index 5cf1378821..c2f8a79628 100644 --- a/radio/aidl/compat/libradiocompat/Android.bp +++ b/radio/aidl/compat/libradiocompat/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/aidl/compat/service/Android.bp b/radio/aidl/compat/service/Android.bp index dff018285a..2f7116d57f 100644 --- a/radio/aidl/compat/service/Android.bp +++ b/radio/aidl/compat/service/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/aidl/vts/Android.bp b/radio/aidl/vts/Android.bp index e79d3c0277..99047aff2f 100644 --- a/radio/aidl/vts/Android.bp +++ b/radio/aidl/vts/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.0/Android.bp b/radio/config/1.0/Android.bp index 9e317b378e..98be5a75ad 100644 --- a/radio/config/1.0/Android.bp +++ b/radio/config/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.0/default/Android.bp b/radio/config/1.0/default/Android.bp index e221ceb9fc..ed12108f93 100644 --- a/radio/config/1.0/default/Android.bp +++ b/radio/config/1.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.0/vts/functional/Android.bp b/radio/config/1.0/vts/functional/Android.bp index 36aecff13c..e28eb43804 100644 --- a/radio/config/1.0/vts/functional/Android.bp +++ b/radio/config/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.1/Android.bp b/radio/config/1.1/Android.bp index b1705f98ec..8aa8a4dcd4 100644 --- a/radio/config/1.1/Android.bp +++ b/radio/config/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.1/vts/functional/Android.bp b/radio/config/1.1/vts/functional/Android.bp index 9037b793a7..87bcaa99e2 100644 --- a/radio/config/1.1/vts/functional/Android.bp +++ b/radio/config/1.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.2/Android.bp b/radio/config/1.2/Android.bp index 3327af4d86..e58ac0b746 100644 --- a/radio/config/1.2/Android.bp +++ b/radio/config/1.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.2/vts/functional/Android.bp b/radio/config/1.2/vts/functional/Android.bp index 1a15d3f5fa..5ebb22266b 100644 --- a/radio/config/1.2/vts/functional/Android.bp +++ b/radio/config/1.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.3/Android.bp b/radio/config/1.3/Android.bp index dc0d82cabd..c39984c38f 100644 --- a/radio/config/1.3/Android.bp +++ b/radio/config/1.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.3/vts/functional/Android.bp b/radio/config/1.3/vts/functional/Android.bp index 20c480ff3d..738d5d3903 100644 --- a/radio/config/1.3/vts/functional/Android.bp +++ b/radio/config/1.3/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -50,7 +51,7 @@ cc_test { cc_library_static { name: "RadioConfigVtsTestResponse", defaults: ["VtsHalTargetTestDefaults"], - srcs : [ + srcs: [ "radio_config_response.cpp", "radio_config_hidl_hal_test.cpp", ], diff --git a/radio/deprecated/1.0/Android.bp b/radio/deprecated/1.0/Android.bp index 53f6da51b9..a607644b37 100644 --- a/radio/deprecated/1.0/Android.bp +++ b/radio/deprecated/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/security/secretkeeper/aidl/Android.bp b/security/secretkeeper/aidl/Android.bp index ac923ca71e..5307bf9b99 100644 --- a/security/secretkeeper/aidl/Android.bp +++ b/security/secretkeeper/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_virtualization", default_applicable_licenses: ["Android-Apache-2.0"], } diff --git a/security/secretkeeper/aidl/vts/Android.bp b/security/secretkeeper/aidl/vts/Android.bp index 0061e88363..e6521aeab2 100644 --- a/security/secretkeeper/aidl/vts/Android.bp +++ b/security/secretkeeper/aidl/vts/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_virtualization", default_applicable_licenses: ["Android-Apache-2.0"], } diff --git a/security/secretkeeper/default/Android.bp b/security/secretkeeper/default/Android.bp index d8ccb63000..799188fd56 100644 --- a/security/secretkeeper/default/Android.bp +++ b/security/secretkeeper/default/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_virtualization", default_applicable_licenses: ["Android-Apache-2.0"], } diff --git a/sensors/common/convert/Android.bp b/sensors/common/convert/Android.bp index 230665e71f..5c6aba338f 100644 --- a/sensors/common/convert/Android.bp +++ b/sensors/common/convert/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", default_applicable_licenses: ["Android-Apache-2.0"], } diff --git a/sensors/common/default/2.X/Android.bp b/sensors/common/default/2.X/Android.bp index 82c942f701..300598f8f4 100644 --- a/sensors/common/default/2.X/Android.bp +++ b/sensors/common/default/2.X/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/default/2.X/multihal/Android.bp b/sensors/common/default/2.X/multihal/Android.bp index b0ad934826..c25b17afb0 100644 --- a/sensors/common/default/2.X/multihal/Android.bp +++ b/sensors/common/default/2.X/multihal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/default/2.X/multihal/tests/Android.bp b/sensors/common/default/2.X/multihal/tests/Android.bp index 21d1d77abf..d743d1e35f 100644 --- a/sensors/common/default/2.X/multihal/tests/Android.bp +++ b/sensors/common/default/2.X/multihal/tests/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/utils/Android.bp b/sensors/common/utils/Android.bp index 97e857c680..2aeeb14c6e 100644 --- a/sensors/common/utils/Android.bp +++ b/sensors/common/utils/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/vts/2_X/Android.bp b/sensors/common/vts/2_X/Android.bp index 4cf6a08382..e7cab6de5a 100644 --- a/sensors/common/vts/2_X/Android.bp +++ b/sensors/common/vts/2_X/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/vts/utils/Android.bp b/sensors/common/vts/utils/Android.bp index b35280a541..386ac33f12 100644 --- a/sensors/common/vts/utils/Android.bp +++ b/sensors/common/vts/utils/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/soundtrigger/aidl/Android.bp b/soundtrigger/aidl/Android.bp index aa400c1ac8..fcbaf6b9e2 100644 --- a/soundtrigger/aidl/Android.bp +++ b/soundtrigger/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/soundtrigger/aidl/cli/Android.bp b/soundtrigger/aidl/cli/Android.bp index 935e438c3d..2d01b0b30a 100644 --- a/soundtrigger/aidl/cli/Android.bp +++ b/soundtrigger/aidl/cli/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.0/Android.bp b/tv/cec/1.0/Android.bp index 889399ab43..836f265fbd 100644 --- a/tv/cec/1.0/Android.bp +++ b/tv/cec/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.0/default/Android.bp b/tv/cec/1.0/default/Android.bp index e4c226d6f6..abde1f2efa 100644 --- a/tv/cec/1.0/default/Android.bp +++ b/tv/cec/1.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.0/vts/functional/Android.bp b/tv/cec/1.0/vts/functional/Android.bp index 9a2c71437a..4022043000 100644 --- a/tv/cec/1.0/vts/functional/Android.bp +++ b/tv/cec/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.1/Android.bp b/tv/cec/1.1/Android.bp index 27b4f03767..bdfb64c476 100644 --- a/tv/cec/1.1/Android.bp +++ b/tv/cec/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.1/default/Android.bp b/tv/cec/1.1/default/Android.bp index b536d23b29..0b93cf33ec 100644 --- a/tv/cec/1.1/default/Android.bp +++ b/tv/cec/1.1/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.1/vts/functional/Android.bp b/tv/cec/1.1/vts/functional/Android.bp index 5a6548d4dc..f8ca804038 100644 --- a/tv/cec/1.1/vts/functional/Android.bp +++ b/tv/cec/1.1/vts/functional/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/uwb/aidl/Android.bp b/uwb/aidl/Android.bp index 3e71913ef8..abd6a23799 100755 --- a/uwb/aidl/Android.bp +++ b/uwb/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_uwb", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/uwb/aidl/default/Android.bp b/uwb/aidl/default/Android.bp index 8af1678d1a..eba18cf6ab 100644 --- a/uwb/aidl/default/Android.bp +++ b/uwb/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_uwb", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/uwb/aidl/vts/Android.bp b/uwb/aidl/vts/Android.bp index 4d9f65307b..1beaa6eea2 100644 --- a/uwb/aidl/vts/Android.bp +++ b/uwb/aidl/vts/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_uwb", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/bench/Android.bp b/vibrator/bench/Android.bp index 73e274fe41..87bdab4215 100644 --- a/vibrator/bench/Android.bp +++ b/vibrator/bench/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/weaver/aidl/Android.bp b/weaver/aidl/Android.bp index 38d017f9b5..c494d29bc3 100644 --- a/weaver/aidl/Android.bp +++ b/weaver/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_hardware_backed_security", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/weaver/aidl/default/Android.bp b/weaver/aidl/default/Android.bp index 494cb1bf4a..2a62b99271 100644 --- a/weaver/aidl/default/Android.bp +++ b/weaver/aidl/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_hardware_backed_security", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/weaver/vts/Android.bp b/weaver/vts/Android.bp index ee03b28136..4139a282c4 100644 --- a/weaver/vts/Android.bp +++ b/weaver/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_hardware_backed_security", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp index 7bc8ae7739..09424d6286 100644 --- a/wifi/aidl/Android.bp +++ b/wifi/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/aidl/default/Android.bp b/wifi/aidl/default/Android.bp index 91d609ddc7..2e97880a15 100644 --- a/wifi/aidl/default/Android.bp +++ b/wifi/aidl/default/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/wifi/aidl/vts/functional/Android.bp b/wifi/aidl/vts/functional/Android.bp index 1277182493..6ab5a4b0e3 100644 --- a/wifi/aidl/vts/functional/Android.bp +++ b/wifi/aidl/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.0/Android.bp b/wifi/hostapd/1.0/Android.bp index b9a84d625a..38083e7d45 100644 --- a/wifi/hostapd/1.0/Android.bp +++ b/wifi/hostapd/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.0/vts/functional/Android.bp b/wifi/hostapd/1.0/vts/functional/Android.bp index daf5b60bfc..a44ae6dfb5 100644 --- a/wifi/hostapd/1.0/vts/functional/Android.bp +++ b/wifi/hostapd/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -28,7 +29,7 @@ cc_library_static { defaults: ["VtsHalTargetTestDefaults"], srcs: ["hostapd_hidl_test_utils.cpp"], export_include_dirs: [ - "." + ".", ], static_libs: [ "VtsHalWifiV1_0TargetTestUtil", @@ -57,5 +58,8 @@ cc_test { "libwifi-system", "libwifi-system-iface", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/wifi/hostapd/1.1/Android.bp b/wifi/hostapd/1.1/Android.bp index c90b68d43b..27b80794ae 100644 --- a/wifi/hostapd/1.1/Android.bp +++ b/wifi/hostapd/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.1/vts/functional/Android.bp b/wifi/hostapd/1.1/vts/functional/Android.bp index 999a6a7d32..196730e9c0 100644 --- a/wifi/hostapd/1.1/vts/functional/Android.bp +++ b/wifi/hostapd/1.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.2/Android.bp b/wifi/hostapd/1.2/Android.bp index c8bf2f8310..15446af377 100644 --- a/wifi/hostapd/1.2/Android.bp +++ b/wifi/hostapd/1.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.2/vts/functional/Android.bp b/wifi/hostapd/1.2/vts/functional/Android.bp index 26edab576b..411110b33d 100644 --- a/wifi/hostapd/1.2/vts/functional/Android.bp +++ b/wifi/hostapd/1.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.3/Android.bp b/wifi/hostapd/1.3/Android.bp index f75b5e25da..5598327808 100644 --- a/wifi/hostapd/1.3/Android.bp +++ b/wifi/hostapd/1.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.3/vts/functional/Android.bp b/wifi/hostapd/1.3/vts/functional/Android.bp index 78cd4af9d2..50ecc28733 100644 --- a/wifi/hostapd/1.3/vts/functional/Android.bp +++ b/wifi/hostapd/1.3/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/aidl/Android.bp b/wifi/hostapd/aidl/Android.bp index 54895c17b8..756bce7ed0 100644 --- a/wifi/hostapd/aidl/Android.bp +++ b/wifi/hostapd/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/aidl/vts/functional/Android.bp b/wifi/hostapd/aidl/vts/functional/Android.bp index ff35056076..03d504878f 100644 --- a/wifi/hostapd/aidl/vts/functional/Android.bp +++ b/wifi/hostapd/aidl/vts/functional/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/netlinkinterceptor/aidl/Android.bp b/wifi/netlinkinterceptor/aidl/Android.bp index 2f7f34fb24..8c04e3191b 100644 --- a/wifi/netlinkinterceptor/aidl/Android.bp +++ b/wifi/netlinkinterceptor/aidl/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/netlinkinterceptor/aidl/default/Android.bp b/wifi/netlinkinterceptor/aidl/default/Android.bp index c3a0c03ce7..6bdd9fcbde 100644 --- a/wifi/netlinkinterceptor/aidl/default/Android.bp +++ b/wifi/netlinkinterceptor/aidl/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/netlinkinterceptor/libnlinterceptor/Android.bp b/wifi/netlinkinterceptor/libnlinterceptor/Android.bp index 671cd8501d..9b278b6e86 100644 --- a/wifi/netlinkinterceptor/libnlinterceptor/Android.bp +++ b/wifi/netlinkinterceptor/libnlinterceptor/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/netlinkinterceptor/vts/functional/Android.bp b/wifi/netlinkinterceptor/vts/functional/Android.bp index 80608a74a6..30766c0fe9 100644 --- a/wifi/netlinkinterceptor/vts/functional/Android.bp +++ b/wifi/netlinkinterceptor/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.0/Android.bp b/wifi/supplicant/1.0/Android.bp index 89a0907dc5..3449e403e8 100644 --- a/wifi/supplicant/1.0/Android.bp +++ b/wifi/supplicant/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.0/vts/functional/Android.bp b/wifi/supplicant/1.0/vts/functional/Android.bp index 2d86822fc7..353e57bc4d 100644 --- a/wifi/supplicant/1.0/vts/functional/Android.bp +++ b/wifi/supplicant/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.1/Android.bp b/wifi/supplicant/1.1/Android.bp index f92567122f..e2582e5d55 100644 --- a/wifi/supplicant/1.1/Android.bp +++ b/wifi/supplicant/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.1/vts/functional/Android.bp b/wifi/supplicant/1.1/vts/functional/Android.bp index 68cda33d3e..215c1cafb1 100644 --- a/wifi/supplicant/1.1/vts/functional/Android.bp +++ b/wifi/supplicant/1.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.2/Android.bp b/wifi/supplicant/1.2/Android.bp index f61d9b9fc5..c7ce01006c 100644 --- a/wifi/supplicant/1.2/Android.bp +++ b/wifi/supplicant/1.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.2/vts/functional/Android.bp b/wifi/supplicant/1.2/vts/functional/Android.bp index ec3ca2210a..65a17a8df2 100644 --- a/wifi/supplicant/1.2/vts/functional/Android.bp +++ b/wifi/supplicant/1.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.3/Android.bp b/wifi/supplicant/1.3/Android.bp index 173a1efea1..bbb17c219b 100644 --- a/wifi/supplicant/1.3/Android.bp +++ b/wifi/supplicant/1.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.3/vts/functional/Android.bp b/wifi/supplicant/1.3/vts/functional/Android.bp index 4b563367c9..609de11cee 100644 --- a/wifi/supplicant/1.3/vts/functional/Android.bp +++ b/wifi/supplicant/1.3/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.4/Android.bp b/wifi/supplicant/1.4/Android.bp index c988fdbb9e..4b94823524 100644 --- a/wifi/supplicant/1.4/Android.bp +++ b/wifi/supplicant/1.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.4/vts/functional/Android.bp b/wifi/supplicant/1.4/vts/functional/Android.bp index 57ee83073b..def3b863f6 100644 --- a/wifi/supplicant/1.4/vts/functional/Android.bp +++ b/wifi/supplicant/1.4/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/aidl/Android.bp b/wifi/supplicant/aidl/Android.bp index ac5a952add..f26ff49278 100644 --- a/wifi/supplicant/aidl/Android.bp +++ b/wifi/supplicant/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/aidl/vts/functional/Android.bp b/wifi/supplicant/aidl/vts/functional/Android.bp index f7c619ab51..03a708779c 100644 --- a/wifi/supplicant/aidl/vts/functional/Android.bp +++ b/wifi/supplicant/aidl/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" -- GitLab From 63c8fea77878b06f9f625f538d2bd6ff92630752 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Fri, 2 Feb 2024 13:03:43 -0500 Subject: [PATCH 319/418] VTS: Add flag dependency so librenderengine can be used I6c436b6b80b27930d82aabf22107216172773b56 adds a dependency for librenderengine on flags. Add that dependency so we can use librenderengine here, too. Bug: 305445199 Test: atest VtsHalGraphicsComposerV2_2TargetTest Test: atest VtsHalGraphicsComposer3_TargetTest Change-Id: If339ac94a6eff4af34e60cf1c1135289b8915441 --- graphics/composer/2.2/utils/vts/Android.bp | 2 ++ graphics/composer/2.2/vts/functional/Android.bp | 2 ++ graphics/composer/aidl/vts/Android.bp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/graphics/composer/2.2/utils/vts/Android.bp b/graphics/composer/2.2/utils/vts/Android.bp index 2bd2419192..7157862884 100644 --- a/graphics/composer/2.2/utils/vts/Android.bp +++ b/graphics/composer/2.2/utils/vts/Android.bp @@ -38,6 +38,7 @@ cc_library_static { ], shared_libs: [ "libui", + "server_configurable_flags", ], static_libs: [ "android.hardware.graphics.composer@2.1-vts", @@ -48,6 +49,7 @@ cc_library_static { "libnativewindow", "librenderengine", "libshaders", + "libsurfaceflinger_common", "libtonemap", ], export_static_lib_headers: [ diff --git a/graphics/composer/2.2/vts/functional/Android.bp b/graphics/composer/2.2/vts/functional/Android.bp index dec60df467..bda41981ad 100644 --- a/graphics/composer/2.2/vts/functional/Android.bp +++ b/graphics/composer/2.2/vts/functional/Android.bp @@ -54,6 +54,7 @@ cc_test { "libsync", "libui", "android.hardware.common-V2-ndk", + "server_configurable_flags", ], static_libs: [ "android.hardware.graphics.common@1.1", @@ -66,6 +67,7 @@ cc_test { "librenderengine", "libshaders", "libtonemap", + "libsurfaceflinger_common", ], header_libs: [ "android.hardware.graphics.composer@2.1-command-buffer", diff --git a/graphics/composer/aidl/vts/Android.bp b/graphics/composer/aidl/vts/Android.bp index 658e0d5108..3464fe998b 100644 --- a/graphics/composer/aidl/vts/Android.bp +++ b/graphics/composer/aidl/vts/Android.bp @@ -56,6 +56,7 @@ cc_test { "libhidlbase", "libprocessgroup", "libvndksupport", + "server_configurable_flags", ], header_libs: [ "android.hardware.graphics.composer3-command-buffer", @@ -74,6 +75,7 @@ cc_test { "libshaders", "libsync", "libtonemap", + "libsurfaceflinger_common", ], cflags: [ "-Wconversion", -- GitLab From 07875857646118959e4f13cb40a7ea87917c3cda Mon Sep 17 00:00:00 2001 From: Yu-Han Yang Date: Mon, 5 Feb 2024 19:04:24 +0000 Subject: [PATCH 320/418] Update GnssStatus svid range Bug: 323694631 Test: doc update only Change-Id: I87443f1b5b3c9a5da65f8c02e396b3b9c0b6f515 --- gnss/aidl/android/hardware/gnss/IGnssCallback.aidl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnss/aidl/android/hardware/gnss/IGnssCallback.aidl b/gnss/aidl/android/hardware/gnss/IGnssCallback.aidl index 0200625105..522d44e5a5 100644 --- a/gnss/aidl/android/hardware/gnss/IGnssCallback.aidl +++ b/gnss/aidl/android/hardware/gnss/IGnssCallback.aidl @@ -136,14 +136,14 @@ interface IGnssCallback { * * - GNSS: 1-32 * - SBAS: 120-151, 183-192 - * - GLONASS: 1-24, the orbital slot number (OSN), if known. Or, if not: + * - GLONASS: 1-25, the orbital slot number (OSN), if known. Or, if not: * 93-106, the frequency channel number (FCN) (-7 to +6) offset by * + 100 * i.e. report an FCN of -7 as 93, FCN of 0 as 100, and FCN of +6 * as 106. - * - QZSS: 193-200 + * - QZSS: 183-206 * - Galileo: 1-36 - * - Beidou: 1-37 + * - Beidou: 1-63 * - IRNSS: 1-14 */ int svid; -- GitLab From 41a33e5b1c868373b3536ff69251d518ad58327e Mon Sep 17 00:00:00 2001 From: Yahav Nussbaum Date: Wed, 31 Jan 2024 21:55:00 +0000 Subject: [PATCH 321/418] Test that the Bluetooth Finder property is set. Bug: 307897345 Test: atest VtsHalBluetoothFinderTargetTest Change-Id: I1821d1cc255a5e156497b993d694fdd9d38c4a96 --- .../finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp b/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp index be07a7db24..fee9e24200 100644 --- a/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp +++ b/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -71,6 +72,12 @@ ScopedAStatus BluetoothFinderTest::getPoweredOffFinderMode(bool* status) { return bluetooth_finder->getPoweredOffFinderMode(status); } +TEST_P(BluetoothFinderTest, PropertyIsSet) { + ASSERT_EQ( + android::base::GetProperty("ro.bluetooth.finder.supported", "false"), + "true"); +} + TEST_P(BluetoothFinderTest, SendEidsSingle) { ScopedAStatus status = sendEids(1); ASSERT_TRUE(status.isOk()); -- GitLab From 7e2c3719ffa6d0fd1aa061e7011ae00dd8ff5e35 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Sat, 3 Feb 2024 06:47:18 +0000 Subject: [PATCH 322/418] Add backward compatibility in effect hal default implementation Skipping the reopen sequence for unsupported version Add member initialize for EffectContext Bug: 322780092 Test: latest libAudioHal with V1 effect HAL Test: atest VtsHalAudioEffectTargetTest Change-Id: I597194e5ebf25566d5adda533e151da2e99781f4 --- audio/aidl/default/EffectContext.cpp | 36 +++++++++++++------ audio/aidl/default/EffectImpl.cpp | 6 ++++ .../include/effect-impl/EffectContext.h | 20 ++++++----- 3 files changed, 42 insertions(+), 20 deletions(-) diff --git a/audio/aidl/default/EffectContext.cpp b/audio/aidl/default/EffectContext.cpp index 4f226c4bf6..9575790644 100644 --- a/audio/aidl/default/EffectContext.cpp +++ b/audio/aidl/default/EffectContext.cpp @@ -22,6 +22,7 @@ using aidl::android::hardware::audio::common::getChannelCount; using aidl::android::hardware::audio::common::getFrameSizeInBytes; using aidl::android::hardware::audio::effect::IEffect; +using aidl::android::hardware::audio::effect::kReopenSupportedVersion; using aidl::android::media::audio::common::PcmType; using ::android::hardware::EventFlag; @@ -40,7 +41,8 @@ EffectContext::EffectContext(size_t statusDepth, const Parameter::Common& common mOutputMQ = std::make_shared(outBufferSizeInFloat); if (!mStatusMQ->isValid() || !mInputMQ->isValid() || !mOutputMQ->isValid()) { - LOG(ERROR) << __func__ << " created invalid FMQ"; + LOG(ERROR) << __func__ << " created invalid FMQ, statusMQ: " << mStatusMQ->isValid() + << " inputMQ: " << mInputMQ->isValid() << " outputMQ: " << mOutputMQ->isValid(); } ::android::status_t status = @@ -52,7 +54,9 @@ EffectContext::EffectContext(size_t statusDepth, const Parameter::Common& common // reset buffer status by abandon input data in FMQ void EffectContext::resetBuffer() { auto buffer = static_cast(mWorkBuffer.data()); - std::vector status(mStatusMQ->availableToRead()); + if (mStatusMQ) { + std::vector status(mStatusMQ->availableToRead()); + } if (mInputMQ) { mInputMQ->read(buffer, mInputMQ->availableToRead()); } @@ -71,7 +75,7 @@ void EffectContext::dupeFmqWithReopen(IEffect::OpenEffectReturn* effectRet) { } void EffectContext::dupeFmq(IEffect::OpenEffectReturn* effectRet) { - if (effectRet) { + if (effectRet && mStatusMQ && mInputMQ && mOutputMQ) { effectRet->statusMQ = mStatusMQ->dupeDesc(); effectRet->inputDataMQ = mInputMQ->dupeDesc(); effectRet->outputDataMQ = mOutputMQ->dupeDesc(); @@ -191,24 +195,34 @@ EventFlag* EffectContext::getStatusEventFlag() { } RetCode EffectContext::updateIOFrameSize(const Parameter::Common& common) { - const auto iFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( + const auto prevInputFrameSize = mInputFrameSize; + const auto prevOutputFrameSize = mOutputFrameSize; + mInputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( common.input.base.format, common.input.base.channelMask); - const auto oFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( + mOutputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( common.output.base.format, common.output.base.channelMask); + // workBuffer and data MQ not allocated yet, no need to update + if (mWorkBuffer.size() == 0 || !mInputMQ || !mOutputMQ) { + return RetCode::SUCCESS; + } + // IEffect::reopen introduced in android.hardware.audio.effect-V2 + if (mVersion < kReopenSupportedVersion) { + LOG(WARNING) << __func__ << " skipped for HAL version " << mVersion; + return RetCode::SUCCESS; + } bool needUpdateMq = false; - if (mInputMQ && - (mInputFrameSize != iFrameSize || mCommon.input.frameCount != common.input.frameCount)) { + if (mInputFrameSize != prevInputFrameSize || + mCommon.input.frameCount != common.input.frameCount) { mInputMQ.reset(); needUpdateMq = true; } - if (mOutputMQ && - (mOutputFrameSize != oFrameSize || mCommon.output.frameCount != common.output.frameCount)) { + if (mOutputFrameSize != prevOutputFrameSize || + mCommon.output.frameCount != common.output.frameCount) { mOutputMQ.reset(); needUpdateMq = true; } - mInputFrameSize = iFrameSize; - mOutputFrameSize = oFrameSize; + if (needUpdateMq) { mWorkBuffer.resize(std::max(common.input.frameCount * mInputFrameSize / sizeof(float), common.output.frameCount * mOutputFrameSize / sizeof(float))); diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp index c97a03e8a3..4d7b9809c6 100644 --- a/audio/aidl/default/EffectImpl.cpp +++ b/audio/aidl/default/EffectImpl.cpp @@ -49,10 +49,16 @@ ndk::ScopedAStatus EffectImpl::open(const Parameter::Common& common, RETURN_IF(common.input.base.format.pcm != common.output.base.format.pcm || common.input.base.format.pcm != PcmType::FLOAT_32_BIT, EX_ILLEGAL_ARGUMENT, "dataMustBe32BitsFloat"); + std::lock_guard lg(mImplMutex); RETURN_OK_IF(mState != State::INIT); mImplContext = createContext(common); RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); + + int version = 0; + RETURN_IF(!getInterfaceVersion(&version).isOk(), EX_UNSUPPORTED_OPERATION, + "FailedToGetInterfaceVersion"); + mImplContext->setVersion(version); mEventFlag = mImplContext->getStatusEventFlag(); if (specific.has_value()) { diff --git a/audio/aidl/default/include/effect-impl/EffectContext.h b/audio/aidl/default/include/effect-impl/EffectContext.h index b3d730df17..275378e9b8 100644 --- a/audio/aidl/default/include/effect-impl/EffectContext.h +++ b/audio/aidl/default/include/effect-impl/EffectContext.h @@ -44,6 +44,7 @@ class EffectContext { } } + void setVersion(int version) { mVersion = version; } std::shared_ptr getStatusFmq() const; std::shared_ptr getInputDataFmq() const; std::shared_ptr getOutputDataFmq() const; @@ -82,10 +83,11 @@ class EffectContext { virtual ::android::hardware::EventFlag* getStatusEventFlag(); protected: - size_t mInputFrameSize; - size_t mOutputFrameSize; - size_t mInputChannelCount; - size_t mOutputChannelCount; + int mVersion = 0; + size_t mInputFrameSize = 0; + size_t mOutputFrameSize = 0; + size_t mInputChannelCount = 0; + size_t mOutputChannelCount = 0; Parameter::Common mCommon = {}; std::vector mOutputDevice = {}; aidl::android::media::audio::common::AudioMode mMode = @@ -98,13 +100,13 @@ class EffectContext { private: // fmq and buffers - std::shared_ptr mStatusMQ; - std::shared_ptr mInputMQ; - std::shared_ptr mOutputMQ; + std::shared_ptr mStatusMQ = nullptr; + std::shared_ptr mInputMQ = nullptr; + std::shared_ptr mOutputMQ = nullptr; // std::shared_ptr mRet; // work buffer set by effect instances, the access and update are in same thread - std::vector mWorkBuffer; + std::vector mWorkBuffer = {}; - ::android::hardware::EventFlag* mEfGroup; + ::android::hardware::EventFlag* mEfGroup = nullptr; }; } // namespace aidl::android::hardware::audio::effect -- GitLab From c8e974d81483e19efca39a63b01b3bb0c5c382ab Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Tue, 30 Jan 2024 00:24:10 +0000 Subject: [PATCH 323/418] wifi: no rust by default for persistable bundle, since Rust is being made the default now. Bug: 321267339 Test: m Merged-In: Ie877c015a7ba3ed3f596285d5cfae9049c663dbd Change-Id: Ie877c015a7ba3ed3f596285d5cfae9049c663dbd (cherry picked from commit e820be1fef4c82aac3a35dd310f628748a69b618) --- wifi/aidl/Android.bp | 3 +++ wifi/common/aidl/Android.bp | 3 +++ wifi/hostapd/aidl/Android.bp | 3 +++ wifi/supplicant/aidl/Android.bp | 3 +++ 4 files changed, 12 insertions(+) diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp index ac95f85c2b..690790c381 100644 --- a/wifi/aidl/Android.bp +++ b/wifi/aidl/Android.bp @@ -48,6 +48,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { diff --git a/wifi/common/aidl/Android.bp b/wifi/common/aidl/Android.bp index 1913451fd7..11acb4ff58 100644 --- a/wifi/common/aidl/Android.bp +++ b/wifi/common/aidl/Android.bp @@ -43,5 +43,8 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, } diff --git a/wifi/hostapd/aidl/Android.bp b/wifi/hostapd/aidl/Android.bp index cdc94bb036..1d265e6a6e 100644 --- a/wifi/hostapd/aidl/Android.bp +++ b/wifi/hostapd/aidl/Android.bp @@ -46,6 +46,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { diff --git a/wifi/supplicant/aidl/Android.bp b/wifi/supplicant/aidl/Android.bp index 632927d714..4ccda9a8f1 100644 --- a/wifi/supplicant/aidl/Android.bp +++ b/wifi/supplicant/aidl/Android.bp @@ -51,6 +51,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { -- GitLab From bc6ead0a4ac42fbf79d177f58a41526d71362cce Mon Sep 17 00:00:00 2001 From: Lei Ju Date: Mon, 5 Feb 2024 18:15:08 -0800 Subject: [PATCH 324/418] Update the tests to register callback first Test: VTS test for ContextHub/ContextHubAidl#TestHostConnection/CONTEXT_HUB_ID_0 Bug: 323962639 Change-Id: Ib58601200529a006b94e2326141abf15eda26462 --- contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp b/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp index fd55b80fde..fa427a56a9 100644 --- a/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp +++ b/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp @@ -421,7 +421,7 @@ std::vector> generateContextHubMapping() { return tuples; } -TEST_P(ContextHubAidl, TestHostConnection) { +TEST_P(ContextHubTransactionTest, TestHostConnection) { constexpr char16_t kHostEndpointId = 1; HostEndpointInfo hostEndpointInfo; hostEndpointInfo.type = HostEndpointInfo::Type::NATIVE; @@ -431,13 +431,13 @@ TEST_P(ContextHubAidl, TestHostConnection) { ASSERT_TRUE(contextHub->onHostEndpointDisconnected(kHostEndpointId).isOk()); } -TEST_P(ContextHubAidl, TestInvalidHostConnection) { +TEST_P(ContextHubTransactionTest, TestInvalidHostConnection) { constexpr char16_t kHostEndpointId = 1; ASSERT_TRUE(contextHub->onHostEndpointDisconnected(kHostEndpointId).isOk()); } -TEST_P(ContextHubAidl, TestNanSessionStateChange) { +TEST_P(ContextHubTransactionTest, TestNanSessionStateChange) { NanSessionStateUpdate update; update.state = true; Status status = contextHub->onNanSessionStateChanged(update); -- GitLab From e9f8c8c4f59657c407bb697258c60eff50781eaa Mon Sep 17 00:00:00 2001 From: Ke-Yu Lu Date: Tue, 6 Feb 2024 04:04:00 +0000 Subject: [PATCH 325/418] Revert "Install bluetooth audio VINTF fragment in apex" Revert submission 2949647-bt-audio-vintf Reason for revert: b/323989115 Reverted changes: /q/submissionid:2949647-bt-audio-vintf Change-Id: Ie335aa9a0ad2bb847cabe6f85ef37352e9065e3a --- .../default/apex/com.android.hardware.audio/Android.bp | 1 - bluetooth/audio/aidl/default/Android.bp | 7 ------- 2 files changed, 8 deletions(-) diff --git a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp index a2feef3aae..9c91e27220 100644 --- a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp +++ b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp @@ -45,7 +45,6 @@ apex { prebuilts: [ "android.hardware.audio.service-aidl.example.rc", "android.hardware.audio.service-aidl.xml", - "android.hardware.bluetooth.audio.xml", "audio_effects_config.xml", ], } diff --git a/bluetooth/audio/aidl/default/Android.bp b/bluetooth/audio/aidl/default/Android.bp index af6bf86ddf..69db1b3e38 100644 --- a/bluetooth/audio/aidl/default/Android.bp +++ b/bluetooth/audio/aidl/default/Android.bp @@ -40,10 +40,3 @@ cc_library_shared { "libbluetooth_audio_session_aidl", ], } - -prebuilt_etc { - name: "android.hardware.bluetooth.audio.xml", - src: "bluetooth_audio.xml", - sub_dir: "vintf", - installable: false, -} -- GitLab From 2a59b89a8425bfcefff4d0fa26002d9c72a6cc80 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Tue, 30 Jan 2024 23:47:32 +0000 Subject: [PATCH 326/418] AIDL: disable Rust explicitly Now that it's enabled by default, because this doesn't compile in Rust. Bug: 321267339 Test: m Change-Id: I01e0af965827944ba2b4b168a6e8d6c4cf81cfff Merged-In: I01e0af965827944ba2b4b168a6e8d6c4cf81cfff (cherry picked from commit 62105fb264c79095a58313563e00c4d4cb18f866) --- biometrics/face/aidl/Android.bp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/biometrics/face/aidl/Android.bp b/biometrics/face/aidl/Android.bp index 7adf402f81..fadcde7892 100644 --- a/biometrics/face/aidl/Android.bp +++ b/biometrics/face/aidl/Android.bp @@ -29,6 +29,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, ndk: { additional_shared_libraries: [ "libnativewindow", -- GitLab From b5dd5a73623273e536ff58bba485c6c219ce195c Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 15 Dec 2023 14:32:05 -0800 Subject: [PATCH 327/418] Add idenfitier iterator test for bcradio HAL utils Added unit tests for identifier iterator in AIDL broadcast radio HAL utils library. Bug: 310708886 Test: atest broadcastradio_utils_aidl_test Change-Id: I09ea6b73e50edcc4a503758ea1af75b260f426f1 --- .../test/BroadcastRadioUtilsTest.cpp | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp index c6d293faef..a5c9073133 100644 --- a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp @@ -32,6 +32,7 @@ constexpr uint64_t kDabFrequencyKhz = 225648u; constexpr uint64_t kHdStationId = 0xA0000001u; constexpr uint64_t kHdSubChannel = 1u; constexpr uint64_t kHdFrequency = 97700u; +constexpr int64_t kRdsValue = 0xBEEF; const Properties kAmFmTunerProp = { .maker = "makerTest", @@ -346,6 +347,87 @@ TEST_P(IsValidSelectorTest, IsValid) { ASSERT_EQ(utils::isValid(testcase.sel), testcase.valid); } +TEST(BroadcastRadioUtilsTest, IdentifierIteratorBegin) { + ProgramSelector sel = { + .primaryId = utils::makeIdentifier(IdentifierType::RDS_PI, kRdsValue), + .secondaryIds = { + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, + kFmFrequencyKHz + 200)}}; + + utils::IdentifierIterator it = begin(sel); + + utils::IdentifierIterator selEnd = end(sel); + ASSERT_NE(selEnd, it); + EXPECT_EQ(sel.primaryId, *it); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorIncrement) { + ProgramSelector sel = { + .primaryId = utils::makeIdentifier(IdentifierType::RDS_PI, kRdsValue), + .secondaryIds = { + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, + kFmFrequencyKHz + 200)}}; + utils::IdentifierIterator it = begin(sel); + utils::IdentifierIterator selEnd = end(sel); + + ASSERT_NE(selEnd, ++it); + EXPECT_EQ(sel.secondaryIds[0], *it); + ASSERT_NE(selEnd, ++it); + EXPECT_EQ(sel.secondaryIds[1], *it); + ASSERT_EQ(selEnd, ++it); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorIncrementWithValue) { + ProgramSelector sel = { + .primaryId = utils::makeIdentifier(IdentifierType::RDS_PI, kRdsValue), + .secondaryIds = { + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, + kFmFrequencyKHz + 200)}}; + utils::IdentifierIterator it1 = begin(sel); + utils::IdentifierIterator it2 = it1; + it2++; + it2++; + + ASSERT_EQ(it1 + 2, it2); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorBeginEndWithoutSecondaryIds) { + ProgramSelector sel = {.primaryId = utils::makeIdentifier(IdentifierType::RDS_PI, kRdsValue)}; + + utils::IdentifierIterator it = begin(sel); + utils::IdentifierIterator selEnd = end(sel); + + ASSERT_EQ(selEnd, ++it); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorBeginEndWithDifferentObjects) { + ProgramSelector sel1 = utils::makeSelectorAmfm(kFmFrequencyKHz); + ProgramSelector sel2 = utils::makeSelectorAmfm(kFmFrequencyKHz); + + utils::IdentifierIterator it1 = begin(sel1); + utils::IdentifierIterator it2 = begin(sel2); + utils::IdentifierIterator end1 = end(sel1); + utils::IdentifierIterator end2 = end(sel2); + + ASSERT_NE(it1, it2); + ASSERT_NE(end1, end2); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorBeginEndWithTheSameObject) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + utils::IdentifierIterator it1 = begin(sel); + utils::IdentifierIterator it2 = begin(sel); + utils::IdentifierIterator end1 = end(sel); + utils::IdentifierIterator end2 = end(sel); + + ASSERT_EQ(it1, it2); + ASSERT_EQ(end1, end2); +} + TEST(BroadcastRadioUtilsTest, IsSupportedWithSupportedSelector) { ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); -- GitLab From 116a4d893c74042c522de92f9c255929e10aeca8 Mon Sep 17 00:00:00 2001 From: Jeff Vander Stoep Date: Wed, 7 Feb 2024 12:55:53 +0100 Subject: [PATCH 328/418] Replace use of deprecated logging functions This is needed to upgrade the android_logger crate from 0.12.0 to 0.13.3. with_max_level provides the same functionality as with_min_level. The renaming is admittedly confusing, but the new name is accurate and it makes sense that they deprecated and then removed the previously poorly named with_min_level. See crate documentation [1] and code [2]. [1]: https://docs.rs/android_logger/0.12.0/android_logger/struct.Config.html#method.with_min_level [2]: https://docs.rs/android_logger/0.12.0/src/android_logger/lib.rs.html#227 Bug: 322718401 Test: build and run CF with the change. Test: m aosp_cf_x86_64_phone Change-Id: Ie410d871ccc2a083eec5bcb7e805f52b985b9385 --- light/aidl/default/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/light/aidl/default/main.rs b/light/aidl/default/main.rs index 8f3247089b..b5452d68d7 100644 --- a/light/aidl/default/main.rs +++ b/light/aidl/default/main.rs @@ -23,11 +23,11 @@ use lights::LightsService; const LOG_TAG: &str = "lights_service_example_rust"; -use log::Level; +use log::LevelFilter; fn main() { let logger_success = logger::init( - logger::Config::default().with_tag_on_device(LOG_TAG).with_min_level(Level::Trace), + logger::Config::default().with_tag_on_device(LOG_TAG).with_max_level(LevelFilter::Trace), ); if !logger_success { panic!("{LOG_TAG}: Failed to start logger."); -- GitLab From e6fd48d0789e0dde07a742eb1833e476222e0355 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 4 Jan 2024 14:46:58 -0800 Subject: [PATCH 329/418] Create EmuMetadataGenerator to check meta.json. Create EmuMetadataGenerator to convert AIDL generated java files to meta.json that can be used by emulator to populate the available vhal props list. Added build rules to generate the Java files from AIDL files and check whether the meta.json file needs to be updated. Test: make sdk_car_x86_64-trunk_staging-userdebug target Bug: 318747444 Change-Id: Ib3bc7b68a1312152617fdab4598ed389447c20cd Merged-In: Ib3bc7b68a1312152617fdab4598ed389447c20cd --- .../vehicle/aidl/emu_metadata/Android.bp | 26 + ...ardware.automotive.vehicle-types-meta.json | 7028 ++++++----------- .../generate_emulator_metadata.py | 136 - automotive/vehicle/aidl/impl/vhal/Android.bp | 4 + automotive/vehicle/aidl_property/Android.bp | 6 + .../tools/generate_emu_metadata/Android.bp | 60 + .../tools/generate_emu_metadata/manifest.txt | 1 + .../car/tool/EmuMetadataGenerator.java | 403 + 8 files changed, 2927 insertions(+), 4737 deletions(-) create mode 100644 automotive/vehicle/aidl/emu_metadata/Android.bp delete mode 100755 automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py create mode 100644 automotive/vehicle/tools/generate_emu_metadata/Android.bp create mode 100644 automotive/vehicle/tools/generate_emu_metadata/manifest.txt create mode 100644 automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java diff --git a/automotive/vehicle/aidl/emu_metadata/Android.bp b/automotive/vehicle/aidl/emu_metadata/Android.bp new file mode 100644 index 0000000000..64f895fefd --- /dev/null +++ b/automotive/vehicle/aidl/emu_metadata/Android.bp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +filegroup { + name: "android.hardware.automotive.vehicle-types-meta", + srcs: [ + "android.hardware.automotive.vehicle-types-meta.json", + ], +} diff --git a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json index 6d856a8d60..7be9e86ce8 100644 --- a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json +++ b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json @@ -1,4603 +1,2429 @@ [ - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleOilLevel", - "values": [ - { - "name": "CRITICALLY_LOW", - "value": 0 - }, - { - "name": "LOW", - "value": 1 - }, - { - "name": "NORMAL", - "value": 2 - }, - { - "name": "HIGH", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LocationCharacterization", - "values": [ - { - "name": "PRIOR_LOCATIONS", - "value": 1 - }, - { - "name": "GYROSCOPE_FUSION", - "value": 2 - }, - { - "name": "ACCELEROMETER_FUSION", - "value": 4 - }, - { - "name": "COMPASS_FUSION", - "value": 8 - }, - { - "name": "WHEEL_SPEED_FUSION", - "value": 16 - }, - { - "name": "STEERING_ANGLE_FUSION", - "value": 32 - }, - { - "name": "CAR_SPEED_FUSION", - "value": 64 - }, - { - "name": "DEAD_RECKONED", - "value": 128 - }, - { - "name": "RAW_GNSS_ONLY", - "value": 256 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleDisplay", - "values": [ - { - "name": "MAIN", - "value": 0 - }, - { - "name": "INSTRUMENT_CLUSTER", - "value": 1 - }, - { - "name": "HUD", - "value": 2 - }, - { - "name": "INPUT", - "value": 3 - }, - { - "name": "AUXILIARY", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED", - "value": 2 - }, - { - "name": "USER_OVERRIDE", - "value": 3 - }, - { - "name": "SUSPENDED", - "value": 4 - }, - { - "name": "FORCED_DEACTIVATION_WARNING", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "HandsOnDetectionWarning", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaWindow", - "values": [ - { - "name": "FRONT_WINDSHIELD", - "value": 1 - }, - { - "name": "REAR_WINDSHIELD", - "value": 2 - }, - { - "name": "ROW_1_LEFT", - "value": 16 - }, - { - "name": "ROW_1_RIGHT", - "value": 64 - }, - { - "name": "ROW_2_LEFT", - "value": 256 - }, - { - "name": "ROW_2_RIGHT", - "value": 1024 - }, - { - "name": "ROW_3_LEFT", - "value": 4096 - }, - { - "name": "ROW_3_RIGHT", - "value": 16384 - }, - { - "name": "ROOF_TOP_1", - "value": 65536 - }, - { - "name": "ROOF_TOP_2", - "value": 131072 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsAvailabilityStateIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SEQUENCE_NUMBER", - "value": 1 - }, - { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", - "value": 2 - }, - { - "name": "LAYERS_START", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleLightSwitch", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - }, - { - "name": "DAYTIME_RUNNING", - "value": 2 - }, - { - "name": "AUTOMATIC", - "value": 256 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2IgnitionMonitorKind", - "values": [ - { - "name": "SPARK", - "value": 0 - }, - { - "name": "COMPRESSION", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionButtonStateFlag", - "values": [ - { - "name": "BUTTON_PRIMARY", - "value": 1 - }, - { - "name": "BUTTON_SECONDARY", - "value": 2 - }, - { - "name": "BUTTON_TERTIARY", - "value": 4 - }, - { - "name": "BUTTON_BACK", - "value": 8 - }, - { - "name": "BUTTON_FORWARD", - "value": 16 - }, - { - "name": "BUTTON_STYLUS_PRIMARY", - "value": 32 - }, - { - "name": "BUTTON_STYLUS_SECONDARY", - "value": 64 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehiclePropertyType", - "values": [ - { - "name": "STRING", - "value": 1048576 - }, - { - "name": "BOOLEAN", - "value": 2097152 - }, - { - "name": "INT32", - "value": 4194304 - }, - { - "name": "INT32_VEC", - "value": 4259840 - }, - { - "name": "INT64", - "value": 5242880 - }, - { - "name": "INT64_VEC", - "value": 5308416 - }, - { - "name": "FLOAT", - "value": 6291456 - }, - { - "name": "FLOAT_VEC", - "value": 6356992 - }, - { - "name": "BYTES", - "value": 7340032 - }, - { - "name": "MIXED", - "value": 14680064 - }, - { - "name": "MASK", - "value": 16711680 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaDoor", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 - }, - { - "name": "ROW_1_RIGHT", - "value": 4 - }, - { - "name": "ROW_2_LEFT", - "value": 16 - }, - { - "name": "ROW_2_RIGHT", - "value": 64 - }, - { - "name": "ROW_3_LEFT", - "value": 256 - }, - { - "name": "ROW_3_RIGHT", - "value": 1024 - }, - { - "name": "HOOD", - "value": 268435456 - }, - { - "name": "REAR", - "value": 536870912 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerBootupReason", - "values": [ - { - "name": "USER_POWER_ON", - "value": 0 - }, - { - "name": "SYSTEM_USER_DETECTION", - "value": 1 - }, - { - "name": "SYSTEM_REMOTE_ACCESS", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EmergencyLaneKeepAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "WARNING_LEFT", - "value": 2 - }, - { - "name": "WARNING_RIGHT", - "value": 3 - }, - { - "name": "ACTIVATED_STEER_LEFT", - "value": 4 - }, - { - "name": "ACTIVATED_STEER_RIGHT", - "value": 5 - }, - { - "name": "USER_OVERRIDE", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvConnectorType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "IEC_TYPE_1_AC", - "value": 1 - }, - { - "name": "IEC_TYPE_2_AC", - "value": 2 - }, - { - "name": "IEC_TYPE_3_AC", - "value": 3 - }, - { - "name": "IEC_TYPE_4_DC", - "value": 4 - }, - { - "name": "IEC_TYPE_1_CCS_DC", - "value": 5 - }, - { - "name": "IEC_TYPE_2_CCS_DC", - "value": 6 - }, - { - "name": "TESLA_ROADSTER", - "value": 7 - }, - { - "name": "TESLA_HPWC", - "value": 8 - }, - { - "name": "TESLA_SUPERCHARGER", - "value": 9 - }, - { - "name": "GBT_AC", - "value": 10 - }, - { - "name": "GBT_DC", - "value": 11 - }, - { - "name": "OTHER", - "value": 101 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationType", - "values": [ - { - "name": "INVALID", - "value": 0 - }, - { - "name": "KEY_FOB", - "value": 1 - }, - { - "name": "CUSTOM_1", - "value": 101 - }, - { - "name": "CUSTOM_2", - "value": 102 - }, - { - "name": "CUSTOM_3", - "value": 103 - }, - { - "name": "CUSTOM_4", - "value": 104 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHvacFanDirection", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FACE", - "value": 1 - }, - { - "name": "FLOOR", - "value": 2 - }, - { - "name": "FACE_AND_FLOOR", - "value": 3 - }, - { - "name": "DEFROST", - "value": 4 - }, - { - "name": "DEFROST_AND_FLOOR", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaWheel", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEFT_FRONT", - "value": 1 - }, - { - "name": "RIGHT_FRONT", - "value": 2 - }, - { - "name": "LEFT_REAR", - "value": 4 - }, - { - "name": "RIGHT_REAR", - "value": 8 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "InitialUserInfoRequestType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FIRST_BOOT", - "value": 1 - }, - { - "name": "FIRST_BOOT_AFTER_OTA", - "value": 2 - }, - { - "name": "COLD_BOOT", - "value": 3 - }, - { - "name": "RESUME", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "HandsOnDetectionDriverState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "HANDS_ON", - "value": 1 - }, - { - "name": "HANDS_OFF", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlCommand", - "values": [ - { - "name": "ACTIVATE", - "value": 1 - }, - { - "name": "SUSPEND", - "value": 2 - }, - { - "name": "INCREASE_TARGET_SPEED", - "value": 3 - }, - { - "name": "DECREASE_TARGET_SPEED", - "value": 4 - }, - { - "name": "INCREASE_TARGET_TIME_GAP", - "value": 5 - }, - { - "name": "DECREASE_TARGET_TIME_GAP", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "WindshieldWipersSwitch", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "OFF", - "value": 1 - }, - { - "name": "MIST", - "value": 2 - }, - { - "name": "INTERMITTENT_LEVEL_1", - "value": 3 - }, - { - "name": "INTERMITTENT_LEVEL_2", - "value": 4 - }, - { - "name": "INTERMITTENT_LEVEL_3", - "value": 5 - }, - { - "name": "INTERMITTENT_LEVEL_4", - "value": 6 - }, - { - "name": "INTERMITTENT_LEVEL_5", - "value": 7 - }, - { - "name": "CONTINUOUS_LEVEL_1", - "value": 8 - }, - { - "name": "CONTINUOUS_LEVEL_2", - "value": 9 - }, - { - "name": "CONTINUOUS_LEVEL_3", - "value": 10 - }, - { - "name": "CONTINUOUS_LEVEL_4", - "value": 11 - }, - { - "name": "CONTINUOUS_LEVEL_5", - "value": 12 - }, - { - "name": "AUTO", - "value": 13 - }, - { - "name": "SERVICE", - "value": 14 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionToolType", - "values": [ - { - "name": "TOOL_TYPE_UNKNOWN", - "value": 0 - }, - { - "name": "TOOL_TYPE_FINGER", - "value": 1 - }, - { - "name": "TOOL_TYPE_STYLUS", - "value": 2 - }, - { - "name": "TOOL_TYPE_MOUSE", - "value": 3 - }, - { - "name": "TOOL_TYPE_ERASER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "SwitchUserStatus", - "values": [ - { - "name": "SUCCESS", - "value": 1 - }, - { - "name": "FAILURE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceType", - "values": [ - { - "name": "REARVIEW", - "value": 0 - }, - { - "name": "SURROUNDVIEW", - "value": 1 - }, - { - "name": "FRONTVIEW", - "value": 2 - }, - { - "name": "LEFTVIEW", - "value": 3 - }, - { - "name": "RIGHTVIEW", - "value": 4 - }, - { - "name": "DRIVERVIEW", - "value": 5 - }, - { - "name": "FRONTPASSENGERSVIEW", - "value": 6 - }, - { - "name": "REARPASSENGERSVIEW", - "value": 7 - }, - { - "name": "USER_DEFINED", - "value": 1000 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationValue", - "values": [ - { - "name": "UNKNOWN", - "value": 1 - }, - { - "name": "ASSOCIATED_CURRENT_USER", - "value": 2 - }, - { - "name": "ASSOCIATED_ANOTHER_USER", - "value": 3 - }, - { - "name": "NOT_ASSOCIATED_ANY_USER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ErrorState", - "values": [ - { - "name": "OTHER_ERROR_STATE", - "value": -1 - }, - { - "name": "NOT_AVAILABLE_DISABLED", - "value": -2 - }, - { - "name": "NOT_AVAILABLE_SPEED_LOW", - "value": -3 - }, - { - "name": "NOT_AVAILABLE_SPEED_HIGH", - "value": -4 - }, - { - "name": "NOT_AVAILABLE_POOR_VISIBILITY", - "value": -5 - }, - { - "name": "NOT_AVAILABLE_SAFETY", - "value": -6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleIgnitionState", - "values": [ - { - "name": "UNDEFINED", - "value": 0 - }, - { - "name": "LOCK", - "value": 1 - }, - { - "name": "OFF", - "value": 2 - }, - { - "name": "ACC", - "value": 3 - }, - { - "name": "ON", - "value": 4 - }, - { - "name": "START", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaSeat", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 - }, - { - "name": "ROW_1_CENTER", - "value": 2 - }, - { - "name": "ROW_1_RIGHT", - "value": 4 - }, - { - "name": "ROW_2_LEFT", - "value": 16 - }, - { - "name": "ROW_2_CENTER", - "value": 32 - }, - { - "name": "ROW_2_RIGHT", - "value": 64 - }, - { - "name": "ROW_3_LEFT", - "value": 256 - }, - { - "name": "ROW_3_CENTER", - "value": 512 - }, - { - "name": "ROW_3_RIGHT", - "value": 1024 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceRequestIndex", - "values": [ - { - "name": "TYPE", - "value": 0 - }, - { - "name": "STATE", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneDepartureWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING_LEFT", - "value": 2 - }, - { - "name": "WARNING_RIGHT", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2SparkIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CreateUserStatus", - "values": [ - { - "name": "SUCCESS", - "value": 1 - }, - { - "name": "FAILURE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehiclePropertyGroup", - "values": [ - { - "name": "SYSTEM", - "value": 268435456 - }, - { - "name": "VENDOR", - "value": 536870912 - }, - { - "name": "MASK", - "value": 4026531840 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleVendorPermission", - "values": [ - { - "name": "PERMISSION_DEFAULT", - "value": 0 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_WINDOW", - "value": 1 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_WINDOW", - "value": 2 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_DOOR", - "value": 3 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_DOOR", - "value": 4 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_SEAT", - "value": 5 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_SEAT", - "value": 6 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_MIRROR", - "value": 7 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_MIRROR", - "value": 8 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_INFO", - "value": 9 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_INFO", - "value": 10 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_ENGINE", - "value": 11 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_ENGINE", - "value": 12 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_HVAC", - "value": 13 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_HVAC", - "value": 14 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_LIGHT", - "value": 15 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_LIGHT", - "value": 16 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_1", - "value": 65536 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_1", - "value": 69632 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_2", - "value": 131072 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_2", - "value": 135168 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_3", - "value": 196608 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_3", - "value": 200704 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_4", - "value": 262144 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_4", - "value": 266240 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_5", - "value": 327680 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_5", - "value": 331776 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_6", - "value": 393216 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_6", - "value": 397312 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_7", - "value": 458752 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_7", - "value": 462848 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_8", - "value": 524288 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_8", - "value": 528384 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_9", - "value": 589824 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_9", - "value": 593920 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_10", - "value": 655360 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_10", - "value": 659456 - }, - { - "name": "PERMISSION_NOT_ACCESSIBLE", - "value": 4026531840 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsOfferingMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "PUBLISHER_ID", - "value": 1 - }, - { - "name": "NUMBER_OF_OFFERS", - "value": 2 - }, - { - "name": "OFFERING_START", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsBaseMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2CompressionIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneKeepAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED_STEER_LEFT", - "value": 2 - }, - { - "name": "ACTIVATED_STEER_RIGHT", - "value": 3 - }, - { - "name": "USER_OVERRIDE", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionInputAction", - "values": [ - { - "name": "ACTION_DOWN", - "value": 0 - }, - { - "name": "ACTION_UP", - "value": 1 - }, - { - "name": "ACTION_MOVE", - "value": 2 - }, - { - "name": "ACTION_CANCEL", - "value": 3 - }, - { - "name": "ACTION_OUTSIDE", - "value": 4 - }, - { - "name": "ACTION_POINTER_DOWN", - "value": 5 - }, - { - "name": "ACTION_POINTER_UP", - "value": 6 - }, - { - "name": "ACTION_HOVER_MOVE", - "value": 7 - }, - { - "name": "ACTION_SCROLL", - "value": 8 - }, - { - "name": "ACTION_HOVER_ENTER", - "value": 9 - }, - { - "name": "ACTION_HOVER_EXIT", - "value": 10 - }, - { - "name": "ACTION_BUTTON_PRESS", - "value": 11 - }, - { - "name": "ACTION_BUTTON_RELEASE", - "value": 12 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateConfigFlag", - "values": [ - { - "name": "ENABLE_DEEP_SLEEP_FLAG", - "value": 1 - }, - { - "name": "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG", - "value": 2 - }, - { - "name": "ENABLE_HIBERNATION_FLAG", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2SecondaryAirStatus", - "values": [ - { - "name": "UPSTREAM", - "value": 1 - }, - { - "name": "DOWNSTREAM_OF_CATALYCIC_CONVERTER", - "value": 2 - }, - { - "name": "FROM_OUTSIDE_OR_OFF", - "value": 4 - }, - { - "name": "PUMP_ON_FOR_DIAGNOSTICS", - "value": 8 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsPublisherInformationIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "PUBLISHER_ID", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReq", - "values": [ - { - "name": "ON", - "value": 0 - }, - { - "name": "SHUTDOWN_PREPARE", - "value": 1 - }, - { - "name": "CANCEL_SHUTDOWN", - "value": 2 - }, - { - "name": "FINISHED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "WindshieldWipersState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "OFF", - "value": 1 - }, - { - "name": "ON", - "value": 2 - }, - { - "name": "SERVICE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneCenteringAssistState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATION_REQUESTED", - "value": 2 - }, - { - "name": "ACTIVATED", - "value": 3 - }, - { - "name": "USER_OVERRIDE", - "value": 4 - }, - { - "name": "FORCED_DEACTIVATION_WARNING", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "UserIdentificationAssociationSetValue", - "values": [ - { - "name": "INVALID", - "value": 0 - }, - { - "name": "ASSOCIATE_CURRENT_USER", - "value": 1 - }, - { - "name": "DISASSOCIATE_CURRENT_USER", - "value": 2 - }, - { - "name": "DISASSOCIATE_ALL_USERS", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2CommonIgnitionMonitors", - "values": [] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwMotionInputSource", - "values": [ - { - "name": "SOURCE_UNKNOWN", - "value": 0 - }, - { - "name": "SOURCE_KEYBOARD", - "value": 1 - }, - { - "name": "SOURCE_DPAD", - "value": 2 - }, - { - "name": "SOURCE_GAMEPAD", - "value": 3 - }, - { - "name": "SOURCE_TOUCHSCREEN", - "value": 4 - }, - { - "name": "SOURCE_MOUSE", - "value": 5 - }, - { - "name": "SOURCE_STYLUS", - "value": 6 - }, - { - "name": "SOURCE_BLUETOOTH_STYLUS", - "value": 7 - }, - { - "name": "SOURCE_TRACKBALL", - "value": 8 - }, - { - "name": "SOURCE_MOUSE_RELATIVE", - "value": 9 - }, - { - "name": "SOURCE_TOUCHPAD", - "value": 10 - }, - { - "name": "SOURCE_TOUCH_NAVIGATION", - "value": 11 - }, - { - "name": "SOURCE_ROTARY_ENCODER", - "value": 12 - }, - { - "name": "SOURCE_JOYSTICK", - "value": 13 - }, - { - "name": "SOURCE_HDMI", - "value": 14 - }, - { - "name": "SOURCE_SENSOR", - "value": 15 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ForwardCollisionWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleArea", - "values": [ - { - "name": "GLOBAL", - "value": 16777216 - }, - { - "name": "WINDOW", - "value": 50331648 - }, - { - "name": "MIRROR", - "value": 67108864 - }, - { - "name": "SEAT", - "value": 83886080 - }, - { - "name": "DOOR", - "value": 100663296 - }, - { - "name": "WHEEL", - "value": 117440512 - }, - { - "name": "MASK", - "value": 251658240 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "PortLocationType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FRONT_LEFT", - "value": 1 - }, - { - "name": "FRONT_RIGHT", - "value": 2 - }, - { - "name": "REAR_RIGHT", - "value": 3 - }, - { - "name": "REAR_LEFT", - "value": 4 - }, - { - "name": "FRONT", - "value": 5 - }, - { - "name": "REAR", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "InitialUserInfoResponseAction", - "values": [ - { - "name": "DEFAULT", - "value": 0 - }, - { - "name": "SWITCH", - "value": 1 - }, - { - "name": "CREATE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsSubscriptionsStateIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SEQUENCE_NUMBER", - "value": 1 - }, - { - "name": "NUMBER_OF_LAYERS", - "value": 2 - }, - { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", - "value": 3 - }, - { - "name": "SUBSCRIPTIONS_START", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CruiseControlType", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "STANDARD", - "value": 1 - }, - { - "name": "ADAPTIVE", - "value": 2 - }, - { - "name": "PREDICTIVE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "DiagnosticFloatSensorIndex", - "values": [ - { - "name": "CALCULATED_ENGINE_LOAD", - "value": 0 - }, - { - "name": "ENGINE_COOLANT_TEMPERATURE", - "value": 1 - }, - { - "name": "SHORT_TERM_FUEL_TRIM_BANK1", - "value": 2 - }, - { - "name": "LONG_TERM_FUEL_TRIM_BANK1", - "value": 3 - }, - { - "name": "SHORT_TERM_FUEL_TRIM_BANK2", - "value": 4 - }, - { - "name": "LONG_TERM_FUEL_TRIM_BANK2", - "value": 5 - }, - { - "name": "FUEL_PRESSURE", - "value": 6 - }, - { - "name": "INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 7 - }, - { - "name": "ENGINE_RPM", - "value": 8 - }, - { - "name": "VEHICLE_SPEED", - "value": 9 - }, - { - "name": "TIMING_ADVANCE", - "value": 10 - }, - { - "name": "MAF_AIR_FLOW_RATE", - "value": 11 - }, - { - "name": "THROTTLE_POSITION", - "value": 12 - }, - { - "name": "OXYGEN_SENSOR1_VOLTAGE", - "value": 13 - }, - { - "name": "OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM", - "value": 14 - }, - { - "name": "OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 15 - }, - { - "name": "OXYGEN_SENSOR2_VOLTAGE", - "value": 16 - }, - { - "name": "OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM", - "value": 17 - }, - { - "name": "OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 18 - }, - { - "name": "OXYGEN_SENSOR3_VOLTAGE", - "value": 19 - }, - { - "name": "OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM", - "value": 20 - }, - { - "name": "OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 21 - }, - { - "name": "OXYGEN_SENSOR4_VOLTAGE", - "value": 22 - }, - { - "name": "OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM", - "value": 23 - }, - { - "name": "OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 24 - }, - { - "name": "OXYGEN_SENSOR5_VOLTAGE", - "value": 25 - }, - { - "name": "OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM", - "value": 26 - }, - { - "name": "OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 27 - }, - { - "name": "OXYGEN_SENSOR6_VOLTAGE", - "value": 28 - }, - { - "name": "OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM", - "value": 29 - }, - { - "name": "OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 30 - }, - { - "name": "OXYGEN_SENSOR7_VOLTAGE", - "value": 31 - }, - { - "name": "OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM", - "value": 32 - }, - { - "name": "OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 33 - }, - { - "name": "OXYGEN_SENSOR8_VOLTAGE", - "value": 34 - }, - { - "name": "OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM", - "value": 35 - }, - { - "name": "OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 36 - }, - { - "name": "FUEL_RAIL_PRESSURE", - "value": 37 - }, - { - "name": "FUEL_RAIL_GAUGE_PRESSURE", - "value": 38 - }, - { - "name": "COMMANDED_EXHAUST_GAS_RECIRCULATION", - "value": 39 - }, - { - "name": "EXHAUST_GAS_RECIRCULATION_ERROR", - "value": 40 - }, - { - "name": "COMMANDED_EVAPORATIVE_PURGE", - "value": 41 - }, - { - "name": "FUEL_TANK_LEVEL_INPUT", - "value": 42 - }, - { - "name": "EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 43 - }, - { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR1", - "value": 44 - }, - { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR1", - "value": 45 - }, - { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR2", - "value": 46 - }, - { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR2", - "value": 47 - }, - { - "name": "ABSOLUTE_LOAD_VALUE", - "value": 48 - }, - { - "name": "FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO", - "value": 49 - }, - { - "name": "RELATIVE_THROTTLE_POSITION", - "value": 50 - }, - { - "name": "ABSOLUTE_THROTTLE_POSITION_B", - "value": 51 - }, - { - "name": "ABSOLUTE_THROTTLE_POSITION_C", - "value": 52 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_D", - "value": 53 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_E", - "value": 54 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_F", - "value": 55 - }, - { - "name": "COMMANDED_THROTTLE_ACTUATOR", - "value": 56 - }, - { - "name": "ETHANOL_FUEL_PERCENTAGE", - "value": 57 - }, - { - "name": "ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 58 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 59 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 60 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 61 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 62 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 63 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 64 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 65 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 66 - }, - { - "name": "RELATIVE_ACCELERATOR_PEDAL_POSITION", - "value": 67 - }, - { - "name": "HYBRID_BATTERY_PACK_REMAINING_LIFE", - "value": 68 - }, - { - "name": "FUEL_INJECTION_TIMING", - "value": 69 - }, - { - "name": "ENGINE_FUEL_RATE", - "value": 70 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "GsrComplianceRequirementType", - "values": [ - { - "name": "GSR_COMPLIANCE_NOT_REQUIRED", - "value": 0 - }, - { - "name": "GSR_COMPLIANCE_REQUIRED_V1", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleLightState", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - }, - { - "name": "DAYTIME_RUNNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageWithLayerIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "LAYER_TYPE", - "value": 1 - }, - { - "name": "LAYER_SUBTYPE", - "value": 2 - }, - { - "name": "LAYER_VERSION", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvRegenerativeBrakingState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "DISABLED", - "value": 1 - }, - { - "name": "PARTIALLY_ENABLED", - "value": 2 - }, - { - "name": "FULLY_ENABLED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReqIndex", - "values": [ - { - "name": "STATE", - "value": 0 - }, - { - "name": "ADDITIONAL", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "RotaryInputType", - "values": [ - { - "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", - "value": 0 - }, - { - "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageType", - "values": [ - { - "name": "SUBSCRIBE", - "value": 1 - }, - { - "name": "SUBSCRIBE_TO_PUBLISHER", - "value": 2 - }, - { - "name": "UNSUBSCRIBE", - "value": 3 - }, - { - "name": "UNSUBSCRIBE_TO_PUBLISHER", - "value": 4 - }, - { - "name": "OFFERING", - "value": 5 - }, - { - "name": "AVAILABILITY_REQUEST", - "value": 6 - }, - { - "name": "SUBSCRIPTIONS_REQUEST", - "value": 7 - }, - { - "name": "AVAILABILITY_RESPONSE", - "value": 8 - }, - { - "name": "AVAILABILITY_CHANGE", - "value": 9 - }, - { - "name": "SUBSCRIPTIONS_RESPONSE", - "value": 10 - }, - { - "name": "SUBSCRIPTIONS_CHANGE", - "value": 11 - }, - { - "name": "DATA", - "value": 12 - }, - { - "name": "PUBLISHER_ID_REQUEST", - "value": 13 - }, - { - "name": "PUBLISHER_ID_RESPONSE", - "value": 14 - }, - { - "name": "PUBLISHER_INFORMATION_REQUEST", - "value": 15 - }, - { - "name": "PUBLISHER_INFORMATION_RESPONSE", - "value": 16 - }, - { - "name": "START_SESSION", - "value": 17 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "FuelType", - "values": [ - { - "name": "FUEL_TYPE_UNKNOWN", - "value": 0 - }, - { - "name": "FUEL_TYPE_UNLEADED", - "value": 1 - }, - { - "name": "FUEL_TYPE_LEADED", - "value": 2 - }, - { - "name": "FUEL_TYPE_DIESEL_1", - "value": 3 - }, - { - "name": "FUEL_TYPE_DIESEL_2", - "value": 4 - }, - { - "name": "FUEL_TYPE_BIODIESEL", - "value": 5 - }, - { - "name": "FUEL_TYPE_E85", - "value": 6 - }, - { - "name": "FUEL_TYPE_LPG", - "value": 7 - }, - { - "name": "FUEL_TYPE_CNG", - "value": 8 - }, - { - "name": "FUEL_TYPE_LNG", - "value": 9 - }, - { - "name": "FUEL_TYPE_ELECTRIC", - "value": 10 - }, - { - "name": "FUEL_TYPE_HYDROGEN", - "value": 11 - }, - { - "name": "FUEL_TYPE_OTHER", - "value": 12 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleSeatOccupancyState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "VACANT", - "value": 1 - }, - { - "name": "OCCUPIED", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvStoppingMode", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "CREEP", - "value": 1 - }, - { - "name": "ROLL", - "value": 2 - }, - { - "name": "HOLD", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "AutomaticEmergencyBrakingState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "ENABLED", - "value": 1 - }, - { - "name": "ACTIVATED", - "value": 2 - }, - { - "name": "USER_OVERRIDE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateReport", - "values": [ - { - "name": "WAIT_FOR_VHAL", - "value": 1 - }, - { - "name": "DEEP_SLEEP_ENTRY", - "value": 2 - }, - { - "name": "DEEP_SLEEP_EXIT", - "value": 3 - }, - { - "name": "SHUTDOWN_POSTPONE", - "value": 4 - }, - { - "name": "SHUTDOWN_START", - "value": 5 - }, - { - "name": "ON", - "value": 6 - }, - { - "name": "SHUTDOWN_PREPARE", - "value": 7 - }, - { - "name": "SHUTDOWN_CANCELLED", - "value": 8 - }, - { - "name": "HIBERNATION_ENTRY", - "value": 9 - }, - { - "name": "HIBERNATION_EXIT", - "value": 10 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "SwitchUserMessageType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEGACY_ANDROID_SWITCH", - "value": 1 - }, - { - "name": "ANDROID_SWITCH", - "value": 2 - }, - { - "name": "VEHICLE_RESPONSE", - "value": 3 - }, - { - "name": "VEHICLE_REQUEST", - "value": 4 - }, - { - "name": "ANDROID_POST_SWITCH", - "value": 5 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleAreaMirror", - "values": [ - { - "name": "DRIVER_LEFT", - "value": 1 - }, - { - "name": "DRIVER_RIGHT", - "value": 2 - }, - { - "name": "DRIVER_CENTER", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "TrailerState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "NOT_PRESENT", - "value": 1 - }, - { - "name": "PRESENT", - "value": 2 - }, - { - "name": "ERROR", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvsServiceState", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleHwKeyInputAction", - "values": [ - { - "name": "ACTION_DOWN", - "value": 0 - }, - { - "name": "ACTION_UP", - "value": 1 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "BlindSpotWarningState", - "values": [ - { - "name": "OTHER", - "value": 0 - }, - { - "name": "NO_WARNING", - "value": 1 - }, - { - "name": "WARNING", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleGear", - "values": [ - { - "name": "GEAR_UNKNOWN", - "value": 0 - }, - { - "name": "GEAR_NEUTRAL", - "value": 1 - }, - { - "name": "GEAR_REVERSE", - "value": 2 - }, - { - "name": "GEAR_PARK", - "value": 4 - }, - { - "name": "GEAR_DRIVE", - "value": 8 - }, - { - "name": "GEAR_1", - "value": 16 - }, - { - "name": "GEAR_2", - "value": 32 - }, - { - "name": "GEAR_3", - "value": 64 - }, - { - "name": "GEAR_4", - "value": 128 - }, - { - "name": "GEAR_5", - "value": 256 - }, - { - "name": "GEAR_6", - "value": 512 - }, - { - "name": "GEAR_7", - "value": 1024 - }, - { - "name": "GEAR_8", - "value": 2048 - }, - { - "name": "GEAR_9", - "value": 4096 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsStartSessionMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SERVICE_ID", - "value": 1 - }, - { - "name": "CLIENT_ID", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2FuelSystemStatus", - "values": [ - { - "name": "OPEN_INSUFFICIENT_ENGINE_TEMPERATURE", - "value": 1 - }, - { - "name": "CLOSED_LOOP", - "value": 2 - }, - { - "name": "OPEN_ENGINE_LOAD_OR_DECELERATION", - "value": 4 - }, - { - "name": "OPEN_SYSTEM_FAILURE", - "value": 8 - }, - { - "name": "CLOSED_LOOP_BUT_FEEDBACK_FAULT", - "value": 16 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ElectronicTollCollectionCardStatus", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", - "value": 1 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", - "value": 2 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleApPowerStateShutdownParam", - "values": [ - { - "name": "SHUTDOWN_IMMEDIATELY", - "value": 1 - }, - { - "name": "CAN_SLEEP", - "value": 2 - }, - { - "name": "SHUTDOWN_ONLY", - "value": 3 - }, - { - "name": "SLEEP_IMMEDIATELY", - "value": 4 - }, - { - "name": "HIBERNATE_IMMEDIATELY", - "value": 5 - }, - { - "name": "CAN_HIBERNATE", - "value": 6 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "CustomInputType", - "values": [ - { - "name": "CUSTOM_EVENT_F1", - "value": 1001 - }, - { - "name": "CUSTOM_EVENT_F2", - "value": 1002 - }, - { - "name": "CUSTOM_EVENT_F3", - "value": 1003 - }, - { - "name": "CUSTOM_EVENT_F4", - "value": 1004 - }, - { - "name": "CUSTOM_EVENT_F5", - "value": 1005 - }, - { - "name": "CUSTOM_EVENT_F6", - "value": 1006 - }, - { - "name": "CUSTOM_EVENT_F7", - "value": 1007 - }, - { - "name": "CUSTOM_EVENT_F8", - "value": 1008 - }, - { - "name": "CUSTOM_EVENT_F9", - "value": 1009 - }, - { - "name": "CUSTOM_EVENT_F10", - "value": 1010 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleTurnSignal", - "values": [ - { - "name": "NONE", - "value": 0 - }, - { - "name": "RIGHT", - "value": 1 - }, - { - "name": "LEFT", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ElectronicTollCollectionCardType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", - "value": 1 - }, - { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleProperty", - "values": [ - { - "name": "Undefined property.", - "value": 0 - }, - { - "name": "VIN of vehicle", - "value": 286261504, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Manufacturer of vehicle", - "value": 286261505, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Model of vehicle", - "value": 286261506, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Model year of vehicle.", - "value": 289407235, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:YEAR" - }, - { - "name": "Fuel capacity of the vehicle in milliliters", - "value": 291504388, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" - }, - { - "name": "List of fuels the vehicle may use.", - "value": 289472773, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "FuelType" - }, - { - "name": "Nominal battery capacity for EV or hybrid vehicle", - "value": 291504390, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "List of connectors this EV may use", - "value": 289472775, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "EvConnectorType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Fuel door location", - "value": 289407240, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "PortLocationType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "EV port location", - "value": 289407241, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" - }, - { - "name": "INFO_DRIVER_SEAT", - "value": 356516106, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "VehicleAreaSeat", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Exterior dimensions of vehicle.", - "value": 289472779, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLIMETER" - }, - { - "name": "Multiple EV port locations", - "value": 289472780, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" - }, - { - "name": "Current odometer value of the vehicle", - "value": 291504644, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOMETER" - }, - { - "name": "Speed of the vehicle", - "value": 291504647, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "Speed of the vehicle for displays", - "value": 291504648, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "Front bicycle model steering angle for vehicle", - "value": 291504649, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" - }, - { - "name": "Rear bicycle model steering angle for vehicle", - "value": 291504656, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" - }, - { - "name": "Temperature of engine coolant", - "value": 291504897, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Engine oil level", - "value": 289407747, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleOilLevel" - }, - { - "name": "Temperature of engine oil", - "value": 291504900, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Engine rpm", - "value": 291504901, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:RPM" - }, - { - "name": "Reports wheel ticks", - "value": 290521862, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "FUEL_LEVEL", - "value": 291504903, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" - }, - { - "name": "Fuel door open", - "value": 287310600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Battery level for EV or hybrid vehicle", - "value": 291504905, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "Current battery capacity for EV or hybrid vehicle", - "value": 291504909, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "EV charge port open", - "value": 287310602, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EV charge port connected", - "value": 287310603, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "EV instantaneous charge rate in milliwatts", - "value": 291504908, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MW" - }, - { - "name": "Range remaining", - "value": 291504904, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:METER" - }, - { - "name": "Tire pressure", - "value": 392168201, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" - }, - { - "name": "Critically low tire pressure", - "value": 392168202, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" - }, - { - "name": "Represents feature for engine idle automatic stop.", - "value": 287310624, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Currently selected gear", - "value": 289408000, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" - }, - { - "name": "CURRENT_GEAR", - "value": 289408001, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" - }, - { - "name": "Parking brake state.", - "value": 287310850, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "PARKING_BRAKE_AUTO_APPLY", - "value": 287310851, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Regenerative braking level of a electronic vehicle", - "value": 289408012, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Warning for fuel low level.", - "value": 287310853, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Night mode", - "value": 287310855, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "State of the vehicles turn signals", - "value": 289408008, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleTurnSignal" - }, - { - "name": "Represents ignition state", - "value": 289408009, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleIgnitionState" - }, - { - "name": "ABS is active", - "value": 287310858, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Traction Control is active", - "value": 287310859, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Represents property for the current stopping mode of the vehicle.", - "value": 289408013, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "EvStoppingMode" - }, - { - "name": "HVAC Properties", - "value": 356517120, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Fan direction setting", - "value": 356517121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleHvacFanDirection" - }, - { - "name": "HVAC current temperature.", - "value": 358614274, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "HVAC_TEMPERATURE_SET", - "value": 358614275, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "HVAC_DEFROSTER", - "value": 320865540, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_AC_ON", - "value": 354419973, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "config_flags": "Supported" - }, - { - "name": "HVAC_MAX_AC_ON", - "value": 354419974, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_MAX_DEFROST_ON", - "value": 354419975, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_RECIRC_ON", - "value": 354419976, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Enable temperature coupling between areas.", - "value": 354419977, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_AUTO_ON", - "value": 354419978, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_SEAT_TEMPERATURE", - "value": 356517131, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Side Mirror Heat", - "value": 339739916, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_STEERING_WHEEL_HEAT", - "value": 289408269, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Temperature units for display", - "value": 289408270, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Actual fan speed", - "value": 356517135, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "HVAC_POWER_ON", - "value": 354419984, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Fan Positions Available", - "value": 356582673, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleHvacFanDirection" - }, - { - "name": "HVAC_AUTO_RECIRC_ON", - "value": 354419986, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat ventilation", - "value": 356517139, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_ELECTRIC_DEFROSTER_ON", - "value": 320865556, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Suggested values for setting HVAC temperature.", - "value": 291570965, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Distance units for display", - "value": 289408512, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Fuel volume units for display", - "value": 289408513, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Tire pressure units for display", - "value": 289408514, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "EV battery units for display", - "value": 289408515, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Fuel consumption units for display", - "value": 287311364, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Speed units for display", - "value": 289408517, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "ANDROID_EPOCH_TIME", - "value": 290457094, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "External encryption binding seed.", - "value": 292554247, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Outside temperature", - "value": 291505923, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Property to control power state of application processor", - "value": 289475072, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Property to report power state of application processor", - "value": 289475073, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "AP_POWER_BOOTUP_REASON", - "value": 289409538, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Property to represent brightness of the display.", - "value": 289409539, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Property to represent brightness of the displays which are controlled separately.", - "value": 289475076, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HW_KEY_INPUT", - "value": 289475088, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_KEY_INPUT_V2", - "value": 367004177, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_MOTION_INPUT", - "value": 367004178, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_ROTARY_INPUT", - "value": 289475104, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "RotaryInputType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines a custom OEM partner input event.", - "value": 289475120, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "CustomInputType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "DOOR_POS", - "value": 373295872, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door move", - "value": 373295873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door lock", - "value": 371198722, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door child lock feature enabled", - "value": 371198723, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Z Position", - "value": 339741504, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Z Move", - "value": 339741505, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Y Position", - "value": 339741506, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Y Move", - "value": 339741507, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Lock", - "value": 287312708, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Fold", - "value": 287312709, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for Mirror Auto Fold feature.", - "value": 337644358, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for Mirror Auto Tilt feature.", - "value": 337644359, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat memory select", - "value": 356518784, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Seat memory set", - "value": 356518785, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Seatbelt buckled", - "value": 354421634, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seatbelt height position", - "value": 356518787, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seatbelt height move", - "value": 356518788, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_FORE_AFT_POS", - "value": 356518789, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_FORE_AFT_MOVE", - "value": 356518790, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 1 position", - "value": 356518791, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 1 move", - "value": 356518792, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 2 position", - "value": 356518793, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 2 move", - "value": 356518794, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat height position", - "value": 356518795, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat height move", - "value": 356518796, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat depth position", - "value": 356518797, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat depth move", - "value": 356518798, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat tilt position", - "value": 356518799, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat tilt move", - "value": 356518800, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_FORE_AFT_POS", - "value": 356518801, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_FORE_AFT_MOVE", - "value": 356518802, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lumbar side support position", - "value": 356518803, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lumbar side support move", - "value": 356518804, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_HEIGHT_POS", - "value": 289409941, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest height position", - "value": 356518820, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest height move", - "value": 356518806, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest angle position", - "value": 356518807, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest angle move", - "value": 356518808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_FORE_AFT_POS", - "value": 356518809, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_FORE_AFT_MOVE", - "value": 356518810, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for the seat footwell lights state.", - "value": 356518811, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Represents property for the seat footwell lights switch.", - "value": 356518812, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Represents property for Seat easy access feature.", - "value": 354421661, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_AIRBAG_ENABLED", - "value": 354421662, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_CUSHION_SIDE_SUPPORT_POS", - "value": 356518815, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for movement direction and speed of seat cushion side support.", - "value": 356518816, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_VERTICAL_POS", - "value": 356518817, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Represents property for vertical movement direction and speed of seat lumbar support.", - "value": 356518818, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_WALK_IN_POS", - "value": 356518819, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat Occupancy", - "value": 356518832, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleSeatOccupancyState" - }, - { - "name": "Window Position", - "value": 322964416, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Window Move", - "value": 322964417, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Window Lock", - "value": 320867268, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "WINDSHIELD_WIPERS_PERIOD", - "value": 322964421, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "Windshield wipers state.", - "value": 322964422, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "WindshieldWipersState" - }, - { - "name": "Windshield wipers switch.", - "value": 322964423, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "WindshieldWipersSwitch" - }, - { - "name": "Steering wheel depth position", - "value": 289410016, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel depth movement", - "value": 289410017, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel height position", - "value": 289410018, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel height movement", - "value": 289410019, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel theft lock feature enabled", - "value": 287312868, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel locked", - "value": 287312869, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Steering wheel easy access feature enabled", - "value": 287312870, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Property that represents the current position of the glove box door.", - "value": 356518896, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lock or unlock the glove box.", - "value": 354421745, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "VEHICLE_MAP_SERVICE", - "value": 299895808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Characterization of inputs used for computing location.", - "value": 289410064, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Live Sensor Data", - "value": 299896064, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Sensor Data", - "value": 299896065, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Information", - "value": 299896066, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Clear", - "value": 299896067, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Headlights State", - "value": 289410560, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "High beam lights state", - "value": 289410561, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Fog light state", - "value": 289410562, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Hazard light status", - "value": 289410563, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Headlight switch", - "value": 289410576, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "High beam light switch", - "value": 289410577, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Fog light switch", - "value": 289410578, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Hazard light switch", - "value": 289410579, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Cabin lights", - "value": 289410817, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Cabin lights switch", - "value": 289410818, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Reading lights", - "value": 356519683, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Reading lights switch", - "value": 356519684, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Steering wheel lights state", - "value": 289410828, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Steering wheel lights switch", - "value": 289410829, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Support customize permissions for vendor properties", - "value": 287313669, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Allow disabling optional featurs from vhal.", - "value": 286265094, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines the initial Android user to be used during initialization.", - "value": 299896583, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Defines a request to switch the foreground Android user.", - "value": 299896584, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Called by the Android System after an Android user was created.", - "value": 299896585, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Called by the Android System after an Android user was removed.", - "value": 299896586, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "USER_IDENTIFICATION_ASSOCIATION", - "value": 299896587, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EVS_SERVICE_REQUEST", - "value": 289476368, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines a request to apply power policy.", - "value": 286265121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "POWER_POLICY_GROUP_REQ", - "value": 286265122, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Notifies the current power policy to VHAL layer.", - "value": 286265123, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "WATCHDOG_ALIVE", - "value": 290459441, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Defines a process terminated by car watchdog and the reason of termination.", - "value": 299896626, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Defines an event that VHAL signals to car watchdog as a heartbeat.", - "value": 290459443, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Starts the ClusterUI in cluster display.", - "value": 289410868, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Changes the state of the cluster display.", - "value": 289476405, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Reports the current display state and ClusterUI state.", - "value": 299896630, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Requests to change the cluster display state to show some ClusterUI.", - "value": 289410871, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Informs the current navigation state.", - "value": 292556600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Electronic Toll Collection card type.", - "value": 289410873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardType" - }, - { - "name": "Electronic Toll Collection card status.", - "value": 289410874, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardStatus" - }, - { - "name": "Front fog lights state", - "value": 289410875, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Front fog lights switch", - "value": 289410876, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Rear fog lights state", - "value": 289410877, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Rear fog lights switch", - "value": 289410878, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Indicates the maximum current draw threshold for charging set by the user", - "value": 291508031, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:AMPERE" - }, - { - "name": "Indicates the maximum charge percent threshold set by the user", - "value": 291508032, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Charging state of the car", - "value": 289410881, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvChargeState" - }, - { - "name": "Start or stop charging the EV battery", - "value": 287313730, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Estimated charge time remaining in seconds", - "value": 289410883, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:SECS" - }, - { - "name": "EV_REGENERATIVE_BRAKING_STATE", - "value": 289410884, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvRegenerativeBrakingState" - }, - { - "name": "Indicates if there is a trailer present or not.", - "value": 289410885, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "TrailerState" - }, - { - "name": "VEHICLE_CURB_WEIGHT", - "value": 289410886, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOGRAM" - }, - { - "name": "GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", - "value": 289410887, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "GsrComplianceRequirementType" - }, - { - "name": "SUPPORTED_PROPERTY_IDS", - "value": 289476424, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Request the head unit to be shutdown.", - "value": 289410889, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "VehicleApPowerStateShutdownParam" - }, - { - "name": "Whether the vehicle is currently in use.", - "value": 287313738, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Start of ADAS Properties", - "value": 287313920, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "AUTOMATIC_EMERGENCY_BRAKING_STATE", - "value": 289411073, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "FORWARD_COLLISION_WARNING_ENABLED", - "value": 287313922, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "FORWARD_COLLISION_WARNING_STATE", - "value": 289411075, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "BLIND_SPOT_WARNING_ENABLED", - "value": 287313924, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "BLIND_SPOT_WARNING_STATE", - "value": 339742725, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_DEPARTURE_WARNING_ENABLED", - "value": 287313926, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_DEPARTURE_WARNING_STATE", - "value": 289411079, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_KEEP_ASSIST_ENABLED", - "value": 287313928, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_KEEP_ASSIST_STATE", - "value": 289411081, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "LANE_CENTERING_ASSIST_ENABLED", - "value": 287313930, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "LANE_CENTERING_ASSIST_COMMAND", - "value": 289411083, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "LaneCenteringAssistCommand" - }, - { - "name": "LANE_CENTERING_ASSIST_STATE", - "value": 289411084, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "EMERGENCY_LANE_KEEP_ASSIST_ENABLED", - "value": 287313933 - }, - { - "name": "EMERGENCY_LANE_KEEP_ASSIST_STATE", - "value": 289411086, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_ENABLED", - "value": 287313935, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "CRUISE_CONTROL_TYPE", - "value": 289411088, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_STATE", - "value": 289411089, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "CRUISE_CONTROL_COMMAND", - "value": 289411090, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE", - "data_enum": "CruiseControlCommand" - }, - { - "name": "CRUISE_CONTROL_TARGET_SPEED", - "value": 291508243, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP", - "value": 289411092, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE", - "value": 289411093, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLIMETER" - }, - { - "name": "HANDS_ON_DETECTION_ENABLED", - "value": 287313942, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HANDS_ON_DETECTION_DRIVER_STATE", - "value": 289411095, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - }, - { - "name": "HANDS_ON_DETECTION_WARNING", - "value": 289411096, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ErrorState" - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "DiagnosticIntegerSensorIndex", - "values": [ - { - "name": "FUEL_SYSTEM_STATUS", - "value": 0 - }, - { - "name": "MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 1 - }, - { - "name": "IGNITION_MONITORS_SUPPORTED", - "value": 2 - }, - { - "name": "IGNITION_SPECIFIC_MONITORS", - "value": 3 - }, - { - "name": "INTAKE_AIR_TEMPERATURE", - "value": 4 - }, - { - "name": "COMMANDED_SECONDARY_AIR_STATUS", - "value": 5 - }, - { - "name": "NUM_OXYGEN_SENSORS_PRESENT", - "value": 6 - }, - { - "name": "RUNTIME_SINCE_ENGINE_START", - "value": 7 - }, - { - "name": "DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 8 - }, - { - "name": "WARMUPS_SINCE_CODES_CLEARED", - "value": 9 - }, - { - "name": "DISTANCE_TRAVELED_SINCE_CODES_CLEARED", - "value": 10 - }, - { - "name": "ABSOLUTE_BAROMETRIC_PRESSURE", - "value": 11 - }, - { - "name": "CONTROL_MODULE_VOLTAGE", - "value": 12 - }, - { - "name": "AMBIENT_AIR_TEMPERATURE", - "value": 13 - }, - { - "name": "TIME_WITH_MALFUNCTION_LIGHT_ON", - "value": 14 - }, - { - "name": "TIME_SINCE_TROUBLE_CODES_CLEARED", - "value": 15 - }, - { - "name": "MAX_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 16 - }, - { - "name": "MAX_OXYGEN_SENSOR_VOLTAGE", - "value": 17 - }, - { - "name": "MAX_OXYGEN_SENSOR_CURRENT", - "value": 18 - }, - { - "name": "MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 19 - }, - { - "name": "MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR", - "value": 20 - }, - { - "name": "FUEL_TYPE", - "value": 21 - }, - { - "name": "FUEL_RAIL_ABSOLUTE_PRESSURE", - "value": 22 - }, - { - "name": "ENGINE_OIL_TEMPERATURE", - "value": 23 - }, - { - "name": "DRIVER_DEMAND_PERCENT_TORQUE", - "value": 24 - }, - { - "name": "ENGINE_ACTUAL_PERCENT_TORQUE", - "value": 25 - }, - { - "name": "ENGINE_REFERENCE_PERCENT_TORQUE", - "value": 26 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_IDLE", - "value": 27 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT1", - "value": 28 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT2", - "value": 29 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT3", - "value": 30 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT4", - "value": 31 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VehicleUnit", - "values": [ - { - "name": "SHOULD_NOT_USE", - "value": 0 - }, - { - "name": "METER_PER_SEC", - "value": 1 - }, - { - "name": "RPM", - "value": 2 - }, - { - "name": "HERTZ", - "value": 3 - }, - { - "name": "PERCENTILE", - "value": 16 - }, - { - "name": "MILLIMETER", - "value": 32 - }, - { - "name": "METER", - "value": 33 - }, - { - "name": "KILOMETER", - "value": 35 - }, - { - "name": "MILE", - "value": 36 - }, - { - "name": "CELSIUS", - "value": 48 - }, - { - "name": "FAHRENHEIT", - "value": 49 - }, - { - "name": "KELVIN", - "value": 50 - }, - { - "name": "MILLILITER", - "value": 64 - }, - { - "name": "LITER", - "value": 65 - }, - { - "name": "GALLON", - "value": 66 - }, - { - "name": "US_GALLON", - "value": 66 - }, - { - "name": "IMPERIAL_GALLON", - "value": 67 - }, - { - "name": "NANO_SECS", - "value": 80 - }, - { - "name": "MILLI_SECS", - "value": 81 - }, - { - "name": "SECS", - "value": 83 - }, - { - "name": "YEAR", - "value": 89 - }, - { - "name": "WATT_HOUR", - "value": 96 - }, - { - "name": "MILLIAMPERE", - "value": 97 - }, - { - "name": "MILLIVOLT", - "value": 98 - }, - { - "name": "MILLIWATTS", - "value": 99 - }, - { - "name": "AMPERE_HOURS", - "value": 100 - }, - { - "name": "KILOWATT_HOUR", - "value": 101 - }, - { - "name": "AMPERE", - "value": 102 - }, - { - "name": "KILOPASCAL", - "value": 112 - }, - { - "name": "PSI", - "value": 113 - }, - { - "name": "BAR", - "value": 114 - }, - { - "name": "DEGREES", - "value": 128 - }, - { - "name": "MILES_PER_HOUR", - "value": 144 - }, - { - "name": "KILOMETERS_PER_HOUR", - "value": 145 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "LaneCenteringAssistCommand", - "values": [ - { - "name": "ACTIVATE", - "value": 1 - }, - { - "name": "DEACTIVATE", - "value": 2 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "Obd2FuelType", - "values": [ - { - "name": "NOT_AVAILABLE", - "value": 0 - }, - { - "name": "GASOLINE", - "value": 1 - }, - { - "name": "METHANOL", - "value": 2 - }, - { - "name": "ETHANOL", - "value": 3 - }, - { - "name": "DIESEL", - "value": 4 - }, - { - "name": "LPG", - "value": 5 - }, - { - "name": "CNG", - "value": 6 - }, - { - "name": "PROPANE", - "value": 7 - }, - { - "name": "ELECTRIC", - "value": 8 - }, - { - "name": "BIFUEL_RUNNING_GASOLINE", - "value": 9 - }, - { - "name": "BIFUEL_RUNNING_METHANOL", - "value": 10 - }, - { - "name": "BIFUEL_RUNNING_ETHANOL", - "value": 11 - }, - { - "name": "BIFUEL_RUNNING_LPG", - "value": 12 - }, - { - "name": "BIFUEL_RUNNING_CNG", - "value": 13 - }, - { - "name": "BIFUEL_RUNNING_PROPANE", - "value": 14 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC", - "value": 15 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 16 - }, - { - "name": "HYBRID_GASOLINE", - "value": 17 - }, - { - "name": "HYBRID_ETHANOL", - "value": 18 - }, - { - "name": "HYBRID_DIESEL", - "value": 19 - }, - { - "name": "HYBRID_ELECTRIC", - "value": 20 - }, - { - "name": "HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 21 - }, - { - "name": "HYBRID_REGENERATIVE", - "value": 22 - }, - { - "name": "BIFUEL_RUNNING_DIESEL", - "value": 23 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "ProcessTerminationReason", - "values": [ - { - "name": "NOT_RESPONDING", - "value": 1 - }, - { - "name": "IO_OVERUSE", - "value": 2 - }, - { - "name": "MEMORY_OVERUSE", - "value": 3 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "VmsMessageWithLayerAndPublisherIdIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "LAYER_TYPE", - "value": 1 - }, - { - "name": "LAYER_SUBTYPE", - "value": 2 - }, - { - "name": "LAYER_VERSION", - "value": 3 - }, - { - "name": "PUBLISHER_ID", - "value": 4 - } - ] - }, - { - "package": "android.hardware.automotive.vehicle", - "name": "EvChargeState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "CHARGING", - "value": 1 - }, - { - "name": "FULLY_CHARGED", - "value": 2 - }, - { - "name": "NOT_CHARGING", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 - } - ] - } + { + "name": "VehicleProperty", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "VIN of vehicle", + "value": 286261504 + }, + { + "name": "Manufacturer of vehicle", + "value": 286261505 + }, + { + "name": "Model of vehicle", + "value": 286261506 + }, + { + "name": "Model year of vehicle.", + "value": 289407235 + }, + { + "name": "INFO_FUEL_CAPACITY", + "value": 291504388 + }, + { + "name": "INFO_FUEL_TYPE", + "value": 289472773, + "data_enums": [ + "FuelType" + ], + "data_enum": "FuelType" + }, + { + "name": "INFO_EV_BATTERY_CAPACITY", + "value": 291504390 + }, + { + "name": "INFO_EV_CONNECTOR_TYPE", + "value": 289472775, + "data_enums": [ + "EvConnectorType" + ], + "data_enum": "EvConnectorType" + }, + { + "name": "Fuel door location", + "value": 289407240, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "EV port location", + "value": 289407241, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "INFO_DRIVER_SEAT", + "value": 356516106, + "data_enums": [ + "VehicleAreaSeat" + ], + "data_enum": "VehicleAreaSeat" + }, + { + "name": "INFO_EXTERIOR_DIMENSIONS", + "value": 289472779 + }, + { + "name": "Multiple EV port locations", + "value": 289472780, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "PERF_ODOMETER", + "value": 291504644 + }, + { + "name": "Speed of the vehicle", + "value": 291504647 + }, + { + "name": "PERF_VEHICLE_SPEED_DISPLAY", + "value": 291504648 + }, + { + "name": "PERF_STEERING_ANGLE", + "value": 291504649 + }, + { + "name": "PERF_REAR_STEERING_ANGLE", + "value": 291504656 + }, + { + "name": "Temperature of engine coolant", + "value": 291504897 + }, + { + "name": "Engine oil level", + "value": 289407747, + "data_enums": [ + "VehicleOilLevel" + ], + "data_enum": "VehicleOilLevel" + }, + { + "name": "Temperature of engine oil", + "value": 291504900 + }, + { + "name": "Engine rpm", + "value": 291504901 + }, + { + "name": "Reports wheel ticks", + "value": 290521862 + }, + { + "name": "FUEL_LEVEL", + "value": 291504903 + }, + { + "name": "Fuel door open", + "value": 287310600 + }, + { + "name": "EV_BATTERY_LEVEL", + "value": 291504905 + }, + { + "name": "EV_CURRENT_BATTERY_CAPACITY", + "value": 291504909 + }, + { + "name": "EV charge port open", + "value": 287310602 + }, + { + "name": "EV charge port connected", + "value": 287310603 + }, + { + "name": "EV_BATTERY_INSTANTANEOUS_CHARGE_RATE", + "value": 291504908 + }, + { + "name": "Range remaining", + "value": 291504904 + }, + { + "name": "Tire pressure", + "value": 392168201 + }, + { + "name": "Critically low tire pressure", + "value": 392168202 + }, + { + "name": "ENGINE_IDLE_AUTO_STOP_ENABLED", + "value": 287310624 + }, + { + "name": "Currently selected gear", + "value": 289408000, + "data_enums": [ + "VehicleGear" + ], + "data_enum": "VehicleGear" + }, + { + "name": "CURRENT_GEAR", + "value": 289408001, + "data_enums": [ + "VehicleGear" + ], + "data_enum": "VehicleGear" + }, + { + "name": "Parking brake state.", + "value": 287310850 + }, + { + "name": "Auto-apply parking brake.", + "value": 287310851 + }, + { + "name": "EV_BRAKE_REGENERATION_LEVEL", + "value": 289408012 + }, + { + "name": "Warning for fuel low level.", + "value": 287310853 + }, + { + "name": "Night mode", + "value": 287310855 + }, + { + "name": "TURN_SIGNAL_STATE", + "value": 289408008, + "data_enums": [ + "VehicleTurnSignal" + ], + "data_enum": "VehicleTurnSignal" + }, + { + "name": "Represents ignition state", + "value": 289408009, + "data_enums": [ + "VehicleIgnitionState" + ], + "data_enum": "VehicleIgnitionState" + }, + { + "name": "ABS is active", + "value": 287310858 + }, + { + "name": "Traction Control is active", + "value": 287310859 + }, + { + "name": "EV_STOPPING_MODE", + "value": 289408013, + "data_enums": [ + "EvStoppingMode" + ], + "data_enum": "EvStoppingMode" + }, + { + "name": "HVAC Properties", + "value": 356517120 + }, + { + "name": "Fan direction setting", + "value": 356517121, + "data_enums": [ + "VehicleHvacFanDirection" + ], + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "HVAC current temperature.", + "value": 358614274 + }, + { + "name": "HVAC, target temperature set.", + "value": 358614275 + }, + { + "name": "HVAC_DEFROSTER", + "value": 320865540 + }, + { + "name": "HVAC_AC_ON", + "value": 354419973 + }, + { + "name": "On\/off max AC", + "value": 354419974 + }, + { + "name": "On\/off max defrost", + "value": 354419975 + }, + { + "name": "Recirculation on\/off", + "value": 354419976 + }, + { + "name": "HVAC_DUAL_ON", + "value": 354419977 + }, + { + "name": "HVAC_AUTO_ON", + "value": 354419978 + }, + { + "name": "Seat heating\/cooling", + "value": 356517131 + }, + { + "name": "Side Mirror Heat", + "value": 339739916 + }, + { + "name": "Steering Wheel Heating\/Cooling", + "value": 289408269 + }, + { + "name": "Temperature units for display", + "value": 289408270, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "Actual fan speed", + "value": 356517135 + }, + { + "name": "HVAC_POWER_ON", + "value": 354419984 + }, + { + "name": "Fan Positions Available", + "value": 356582673, + "data_enums": [ + "VehicleHvacFanDirection" + ], + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "Automatic recirculation on\/off", + "value": 354419986 + }, + { + "name": "Seat ventilation", + "value": 356517139 + }, + { + "name": "Electric defrosters' status", + "value": 320865556 + }, + { + "name": "HVAC_TEMPERATURE_VALUE_SUGGESTION", + "value": 291570965 + }, + { + "name": "Distance units for display", + "value": 289408512, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "Fuel volume units for display", + "value": 289408513, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "TIRE_PRESSURE_DISPLAY_UNITS", + "value": 289408514, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "EV battery units for display", + "value": 289408515, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME", + "value": 287311364 + }, + { + "name": "Speed units for display", + "value": 289408517 + }, + { + "name": "EXTERNAL_CAR_TIME", + "value": 290457096 + }, + { + "name": "ANDROID_EPOCH_TIME", + "value": 290457094 + }, + { + "name": "STORAGE_ENCRYPTION_BINDING_SEED", + "value": 292554247 + }, + { + "name": "Outside temperature", + "value": 291505923 + }, + { + "name": "AP_POWER_STATE_REQ", + "value": 289475072 + }, + { + "name": "AP_POWER_STATE_REPORT", + "value": 289475073 + }, + { + "name": "AP_POWER_BOOTUP_REASON", + "value": 289409538 + }, + { + "name": "DISPLAY_BRIGHTNESS", + "value": 289409539 + }, + { + "name": "PER_DISPLAY_BRIGHTNESS", + "value": 289475076 + }, + { + "name": "HW_KEY_INPUT", + "value": 289475088 + }, + { + "name": "HW_KEY_INPUT_V2", + "value": 367004177 + }, + { + "name": "HW_MOTION_INPUT", + "value": 367004178 + }, + { + "name": "HW_ROTARY_INPUT", + "value": 289475104, + "data_enums": [ + "RotaryInputType" + ], + "data_enum": "RotaryInputType" + }, + { + "name": "HW_CUSTOM_INPUT", + "value": 289475120, + "data_enums": [ + "CustomInputType" + ], + "data_enum": "CustomInputType" + }, + { + "name": "Door position", + "value": 373295872 + }, + { + "name": "Door move", + "value": 373295873 + }, + { + "name": "Door lock", + "value": 371198722 + }, + { + "name": "DOOR_CHILD_LOCK_ENABLED", + "value": 371198723 + }, + { + "name": "Mirror Z Position", + "value": 339741504 + }, + { + "name": "Mirror Z Move", + "value": 339741505 + }, + { + "name": "Mirror Y Position", + "value": 339741506 + }, + { + "name": "Mirror Y Move", + "value": 339741507 + }, + { + "name": "Mirror Lock", + "value": 287312708 + }, + { + "name": "Mirror Fold", + "value": 287312709 + }, + { + "name": "MIRROR_AUTO_FOLD_ENABLED", + "value": 337644358 + }, + { + "name": "MIRROR_AUTO_TILT_ENABLED", + "value": 337644359 + }, + { + "name": "Seat memory select", + "value": 356518784 + }, + { + "name": "Seat memory set", + "value": 356518785 + }, + { + "name": "Seatbelt buckled", + "value": 354421634 + }, + { + "name": "Seatbelt height position", + "value": 356518787 + }, + { + "name": "Seatbelt height move", + "value": 356518788 + }, + { + "name": "Seat fore\/aft position", + "value": 356518789 + }, + { + "name": "Seat fore\/aft move", + "value": 356518790 + }, + { + "name": "Seat backrest angle 1 position", + "value": 356518791 + }, + { + "name": "Seat backrest angle 1 move", + "value": 356518792 + }, + { + "name": "Seat backrest angle 2 position", + "value": 356518793 + }, + { + "name": "Seat backrest angle 2 move", + "value": 356518794 + }, + { + "name": "Seat height position", + "value": 356518795 + }, + { + "name": "Seat height move", + "value": 356518796 + }, + { + "name": "Seat depth position", + "value": 356518797 + }, + { + "name": "Seat depth move", + "value": 356518798 + }, + { + "name": "Seat tilt position", + "value": 356518799 + }, + { + "name": "Seat tilt move", + "value": 356518800 + }, + { + "name": "Lumber fore\/aft position", + "value": 356518801 + }, + { + "name": "Lumbar fore\/aft move", + "value": 356518802 + }, + { + "name": "Lumbar side support position", + "value": 356518803 + }, + { + "name": "Lumbar side support move", + "value": 356518804 + }, + { + "name": "SEAT_HEADREST_HEIGHT_POS", + "value": 289409941 + }, + { + "name": "Headrest height position", + "value": 356518820 + }, + { + "name": "Headrest height move", + "value": 356518806 + }, + { + "name": "Headrest angle position", + "value": 356518807 + }, + { + "name": "Headrest angle move", + "value": 356518808 + }, + { + "name": "Headrest fore\/aft position", + "value": 356518809 + }, + { + "name": "Headrest fore\/aft move", + "value": 356518810 + }, + { + "name": "SEAT_FOOTWELL_LIGHTS_STATE", + "value": 356518811, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "SEAT_FOOTWELL_LIGHTS_SWITCH", + "value": 356518812, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "SEAT_EASY_ACCESS_ENABLED", + "value": 354421661 + }, + { + "name": "SEAT_AIRBAG_ENABLED", + "value": 354421662 + }, + { + "name": "SEAT_CUSHION_SIDE_SUPPORT_POS", + "value": 356518815 + }, + { + "name": "SEAT_CUSHION_SIDE_SUPPORT_MOVE", + "value": 356518816 + }, + { + "name": "SEAT_LUMBAR_VERTICAL_POS", + "value": 356518817 + }, + { + "name": "SEAT_LUMBAR_VERTICAL_MOVE", + "value": 356518818 + }, + { + "name": "SEAT_WALK_IN_POS", + "value": 356518819 + }, + { + "name": "Seat Occupancy", + "value": 356518832, + "data_enums": [ + "VehicleSeatOccupancyState" + ], + "data_enum": "VehicleSeatOccupancyState" + }, + { + "name": "Window Position", + "value": 322964416 + }, + { + "name": "Window Move", + "value": 322964417 + }, + { + "name": "Window Lock", + "value": 320867268 + }, + { + "name": "WINDSHIELD_WIPERS_PERIOD", + "value": 322964421 + }, + { + "name": "Windshield wipers state.", + "value": 322964422, + "data_enums": [ + "WindshieldWipersState" + ], + "data_enum": "WindshieldWipersState" + }, + { + "name": "Windshield wipers switch.", + "value": 322964423, + "data_enums": [ + "WindshieldWipersSwitch" + ], + "data_enum": "WindshieldWipersSwitch" + }, + { + "name": "Steering wheel depth position", + "value": 289410016 + }, + { + "name": "Steering wheel depth movement", + "value": 289410017 + }, + { + "name": "Steering wheel height position", + "value": 289410018 + }, + { + "name": "Steering wheel height movement", + "value": 289410019 + }, + { + "name": "STEERING_WHEEL_THEFT_LOCK_ENABLED", + "value": 287312868 + }, + { + "name": "Steering wheel locked", + "value": 287312869 + }, + { + "name": "STEERING_WHEEL_EASY_ACCESS_ENABLED", + "value": 287312870 + }, + { + "name": "GLOVE_BOX_DOOR_POS", + "value": 356518896 + }, + { + "name": "Lock or unlock the glove box.", + "value": 354421745 + }, + { + "name": "VEHICLE_MAP_SERVICE", + "value": 299895808 + }, + { + "name": "LOCATION_CHARACTERIZATION", + "value": 289410064 + }, + { + "name": "OBD2 Live Sensor Data", + "value": 299896064 + }, + { + "name": "OBD2 Freeze Frame Sensor Data", + "value": 299896065 + }, + { + "name": "OBD2 Freeze Frame Information", + "value": 299896066 + }, + { + "name": "OBD2 Freeze Frame Clear", + "value": 299896067 + }, + { + "name": "Headlights State", + "value": 289410560, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "High beam lights state", + "value": 289410561, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Fog light state", + "value": 289410562, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Hazard light status", + "value": 289410563, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Headlight switch", + "value": 289410576, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "High beam light switch", + "value": 289410577, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Fog light switch", + "value": 289410578, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Hazard light switch", + "value": 289410579, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Cabin lights", + "value": 289410817, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Cabin lights switch", + "value": 289410818, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Reading lights", + "value": 356519683, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Reading lights switch", + "value": 356519684, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Steering wheel lights state", + "value": 289410828, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Steering wheel lights switch", + "value": 289410829, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "SUPPORT_CUSTOMIZE_VENDOR_PERMISSION", + "value": 287313669 + }, + { + "name": "DISABLED_OPTIONAL_FEATURES", + "value": 286265094 + }, + { + "name": "INITIAL_USER_INFO", + "value": 299896583 + }, + { + "name": "SWITCH_USER", + "value": 299896584 + }, + { + "name": "CREATE_USER", + "value": 299896585 + }, + { + "name": "REMOVE_USER", + "value": 299896586 + }, + { + "name": "USER_IDENTIFICATION_ASSOCIATION", + "value": 299896587 + }, + { + "name": "Enable\/request an EVS service.", + "value": 289476368 + }, + { + "name": "POWER_POLICY_REQ", + "value": 286265121 + }, + { + "name": "POWER_POLICY_GROUP_REQ", + "value": 286265122 + }, + { + "name": "CURRENT_POWER_POLICY", + "value": 286265123 + }, + { + "name": "WATCHDOG_ALIVE", + "value": 290459441 + }, + { + "name": "WATCHDOG_TERMINATED_PROCESS", + "value": 299896626 + }, + { + "name": "VHAL_HEARTBEAT", + "value": 290459443 + }, + { + "name": "CLUSTER_SWITCH_UI", + "value": 289410868 + }, + { + "name": "CLUSTER_DISPLAY_STATE", + "value": 289476405 + }, + { + "name": "CLUSTER_REPORT_STATE", + "value": 299896630 + }, + { + "name": "CLUSTER_REQUEST_DISPLAY", + "value": 289410871 + }, + { + "name": "CLUSTER_NAVIGATION_STATE", + "value": 292556600 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", + "value": 289410873, + "data_enums": [ + "ElectronicTollCollectionCardType" + ], + "data_enum": "ElectronicTollCollectionCardType" + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_STATUS", + "value": 289410874, + "data_enums": [ + "ElectronicTollCollectionCardStatus" + ], + "data_enum": "ElectronicTollCollectionCardStatus" + }, + { + "name": "Front fog lights state", + "value": 289410875, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Front fog lights switch", + "value": 289410876, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Rear fog lights state", + "value": 289410877, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Rear fog lights switch", + "value": 289410878, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "EV_CHARGE_CURRENT_DRAW_LIMIT", + "value": 291508031 + }, + { + "name": "EV_CHARGE_PERCENT_LIMIT", + "value": 291508032 + }, + { + "name": "Charging state of the car", + "value": 289410881, + "data_enums": [ + "EvChargeState" + ], + "data_enum": "EvChargeState" + }, + { + "name": "EV_CHARGE_SWITCH", + "value": 287313730 + }, + { + "name": "EV_CHARGE_TIME_REMAINING", + "value": 289410883 + }, + { + "name": "EV_REGENERATIVE_BRAKING_STATE", + "value": 289410884, + "data_enums": [ + "EvRegenerativeBrakingState" + ], + "data_enum": "EvRegenerativeBrakingState" + }, + { + "name": "TRAILER_PRESENT", + "value": 289410885, + "data_enums": [ + "TrailerState" + ], + "data_enum": "TrailerState" + }, + { + "name": "Vehicle’s curb weight", + "value": 289410886 + }, + { + "name": "GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", + "value": 289410887, + "data_enums": [ + "GsrComplianceRequirementType" + ], + "data_enum": "GsrComplianceRequirementType" + }, + { + "name": "SUPPORTED_PROPERTY_IDS", + "value": 289476424 + }, + { + "name": "SHUTDOWN_REQUEST", + "value": 289410889, + "data_enums": [ + "VehicleApPowerStateShutdownParam" + ], + "data_enum": "VehicleApPowerStateShutdownParam" + }, + { + "name": "VEHICLE_IN_USE", + "value": 287313738 + }, + { + "name": "AUTOMATIC_EMERGENCY_BRAKING_ENABLED", + "value": 287313920 + }, + { + "name": "AUTOMATIC_EMERGENCY_BRAKING_STATE", + "value": 289411073, + "data_enums": [ + "AutomaticEmergencyBrakingState", + "ErrorState" + ], + "data_enum": "AutomaticEmergencyBrakingState" + }, + { + "name": "FORWARD_COLLISION_WARNING_ENABLED", + "value": 287313922 + }, + { + "name": "FORWARD_COLLISION_WARNING_STATE", + "value": 289411075, + "data_enums": [ + "ForwardCollisionWarningState", + "ErrorState" + ], + "data_enum": "ForwardCollisionWarningState" + }, + { + "name": "BLIND_SPOT_WARNING_ENABLED", + "value": 287313924 + }, + { + "name": "BLIND_SPOT_WARNING_STATE", + "value": 339742725, + "data_enums": [ + "BlindSpotWarningState", + "ErrorState" + ], + "data_enum": "BlindSpotWarningState" + }, + { + "name": "LANE_DEPARTURE_WARNING_ENABLED", + "value": 287313926 + }, + { + "name": "LANE_DEPARTURE_WARNING_STATE", + "value": 289411079, + "data_enums": [ + "LaneDepartureWarningState", + "ErrorState" + ], + "data_enum": "LaneDepartureWarningState" + }, + { + "name": "LANE_KEEP_ASSIST_ENABLED", + "value": 287313928 + }, + { + "name": "Lane Keep Assist (LKA) state.", + "value": 289411081, + "data_enums": [ + "LaneKeepAssistState", + "ErrorState" + ], + "data_enum": "LaneKeepAssistState" + }, + { + "name": "LANE_CENTERING_ASSIST_ENABLED", + "value": 287313930 + }, + { + "name": "LANE_CENTERING_ASSIST_COMMAND", + "value": 289411083, + "data_enums": [ + "LaneCenteringAssistCommand" + ], + "data_enum": "LaneCenteringAssistCommand" + }, + { + "name": "LANE_CENTERING_ASSIST_STATE", + "value": 289411084, + "data_enums": [ + "LaneCenteringAssistState", + "ErrorState" + ], + "data_enum": "LaneCenteringAssistState" + }, + { + "name": "EMERGENCY_LANE_KEEP_ASSIST_ENABLED", + "value": 287313933 + }, + { + "name": "EMERGENCY_LANE_KEEP_ASSIST_STATE", + "value": 289411086, + "data_enums": [ + "EmergencyLaneKeepAssistState", + "ErrorState" + ], + "data_enum": "EmergencyLaneKeepAssistState" + }, + { + "name": "CRUISE_CONTROL_ENABLED", + "value": 287313935 + }, + { + "name": "CRUISE_CONTROL_TYPE", + "value": 289411088, + "data_enums": [ + "CruiseControlType", + "ErrorState" + ], + "data_enum": "CruiseControlType" + }, + { + "name": "CRUISE_CONTROL_STATE", + "value": 289411089, + "data_enums": [ + "CruiseControlState", + "ErrorState" + ], + "data_enum": "CruiseControlState" + }, + { + "name": "CRUISE_CONTROL_COMMAND", + "value": 289411090, + "data_enums": [ + "CruiseControlCommand" + ], + "data_enum": "CruiseControlCommand" + }, + { + "name": "CRUISE_CONTROL_TARGET_SPEED", + "value": 291508243 + }, + { + "name": "ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP", + "value": 289411092 + }, + { + "name": "ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE", + "value": 289411093 + }, + { + "name": "HANDS_ON_DETECTION_ENABLED", + "value": 287313942 + }, + { + "name": "HANDS_ON_DETECTION_DRIVER_STATE", + "value": 289411095, + "data_enums": [ + "HandsOnDetectionDriverState", + "ErrorState" + ], + "data_enum": "HandsOnDetectionDriverState" + }, + { + "name": "HANDS_ON_DETECTION_WARNING", + "value": 289411096, + "data_enums": [ + "HandsOnDetectionWarning", + "ErrorState" + ], + "data_enum": "HandsOnDetectionWarning" + } + ] + }, + { + "name": "VehicleGear", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "GEAR_UNKNOWN", + "value": 0 + }, + { + "name": "GEAR_NEUTRAL", + "value": 1 + }, + { + "name": "GEAR_REVERSE", + "value": 2 + }, + { + "name": "GEAR_PARK", + "value": 4 + }, + { + "name": "GEAR_DRIVE", + "value": 8 + }, + { + "name": "GEAR_1", + "value": 16 + }, + { + "name": "GEAR_2", + "value": 32 + }, + { + "name": "GEAR_3", + "value": 64 + }, + { + "name": "GEAR_4", + "value": 128 + }, + { + "name": "GEAR_5", + "value": 256 + }, + { + "name": "GEAR_6", + "value": 512 + }, + { + "name": "GEAR_7", + "value": 1024 + }, + { + "name": "GEAR_8", + "value": 2048 + }, + { + "name": "GEAR_9", + "value": 4096 + } + ] + }, + { + "name": "LaneDepartureWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING_LEFT", + "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + } + ] + }, + { + "name": "HandsOnDetectionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "ElectronicTollCollectionCardType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", + "value": 1 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", + "value": 2 + } + ] + }, + { + "name": "VehicleApPowerStateShutdownParam", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "SHUTDOWN_IMMEDIATELY", + "value": 1 + }, + { + "name": "CAN_SLEEP", + "value": 2 + }, + { + "name": "SHUTDOWN_ONLY", + "value": 3 + }, + { + "name": "SLEEP_IMMEDIATELY", + "value": 4 + }, + { + "name": "HIBERNATE_IMMEDIATELY", + "value": 5 + }, + { + "name": "CAN_HIBERNATE", + "value": 6 + } + ] + }, + { + "name": "AutomaticEmergencyBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + } + ] + }, + { + "name": "CruiseControlType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "STANDARD", + "value": 1 + }, + { + "name": "ADAPTIVE", + "value": 2 + }, + { + "name": "PREDICTIVE", + "value": 3 + } + ] + }, + { + "name": "VehicleTurnSignal", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "NONE", + "value": 0 + }, + { + "name": "RIGHT", + "value": 1 + }, + { + "name": "LEFT", + "value": 2 + } + ] + }, + { + "name": "RotaryInputType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", + "value": 0 + }, + { + "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", + "value": 1 + } + ] + }, + { + "name": "EvStoppingMode", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "CREEP", + "value": 1 + }, + { + "name": "ROLL", + "value": 2 + }, + { + "name": "HOLD", + "value": 3 + } + ] + }, + { + "name": "VehicleLightState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + } + ] + }, + { + "name": "FuelType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "FUEL_TYPE_UNKNOWN", + "value": 0 + }, + { + "name": "FUEL_TYPE_UNLEADED", + "value": 1 + }, + { + "name": "FUEL_TYPE_LEADED", + "value": 2 + }, + { + "name": "FUEL_TYPE_DIESEL_1", + "value": 3 + }, + { + "name": "FUEL_TYPE_DIESEL_2", + "value": 4 + }, + { + "name": "FUEL_TYPE_BIODIESEL", + "value": 5 + }, + { + "name": "FUEL_TYPE_E85", + "value": 6 + }, + { + "name": "FUEL_TYPE_LPG", + "value": 7 + }, + { + "name": "FUEL_TYPE_CNG", + "value": 8 + }, + { + "name": "FUEL_TYPE_LNG", + "value": 9 + }, + { + "name": "FUEL_TYPE_ELECTRIC", + "value": 10 + }, + { + "name": "FUEL_TYPE_HYDROGEN", + "value": 11 + }, + { + "name": "FUEL_TYPE_OTHER", + "value": 12 + } + ] + }, + { + "name": "LaneKeepAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 2 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 3 + }, + { + "name": "USER_OVERRIDE", + "value": 4 + } + ] + }, + { + "name": "VehicleIgnitionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNDEFINED", + "value": 0 + }, + { + "name": "LOCK", + "value": 1 + }, + { + "name": "OFF", + "value": 2 + }, + { + "name": "ACC", + "value": 3 + }, + { + "name": "ON", + "value": 4 + }, + { + "name": "START", + "value": 5 + } + ] + }, + { + "name": "EvConnectorType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "IEC_TYPE_1_AC", + "value": 1 + }, + { + "name": "IEC_TYPE_2_AC", + "value": 2 + }, + { + "name": "IEC_TYPE_3_AC", + "value": 3 + }, + { + "name": "IEC_TYPE_4_DC", + "value": 4 + }, + { + "name": "IEC_TYPE_1_CCS_DC", + "value": 5 + }, + { + "name": "IEC_TYPE_2_CCS_DC", + "value": 6 + }, + { + "name": "TESLA_ROADSTER", + "value": 7 + }, + { + "name": "TESLA_HPWC", + "value": 8 + }, + { + "name": "TESLA_SUPERCHARGER", + "value": 9 + }, + { + "name": "GBT_AC", + "value": 10 + }, + { + "name": "GBT_DC", + "value": 11 + }, + { + "name": "OTHER", + "value": 101 + } + ] + }, + { + "name": "TrailerState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "NOT_PRESENT", + "value": 1 + }, + { + "name": "PRESENT", + "value": 2 + }, + { + "name": "ERROR", + "value": 3 + } + ] + }, + { + "name": "CustomInputType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "CUSTOM_EVENT_F1", + "value": 1001 + }, + { + "name": "CUSTOM_EVENT_F2", + "value": 1002 + }, + { + "name": "CUSTOM_EVENT_F3", + "value": 1003 + }, + { + "name": "CUSTOM_EVENT_F4", + "value": 1004 + }, + { + "name": "CUSTOM_EVENT_F5", + "value": 1005 + }, + { + "name": "CUSTOM_EVENT_F6", + "value": 1006 + }, + { + "name": "CUSTOM_EVENT_F7", + "value": 1007 + }, + { + "name": "CUSTOM_EVENT_F8", + "value": 1008 + }, + { + "name": "CUSTOM_EVENT_F9", + "value": 1009 + }, + { + "name": "CUSTOM_EVENT_F10", + "value": 1010 + } + ] + }, + { + "name": "ElectronicTollCollectionCardStatus", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", + "value": 1 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", + "value": 2 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", + "value": 3 + } + ] + }, + { + "name": "VehicleAreaSeat", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ROW_1_LEFT", + "value": 1 + }, + { + "name": "ROW_1_CENTER", + "value": 2 + }, + { + "name": "ROW_1_RIGHT", + "value": 4 + }, + { + "name": "ROW_2_LEFT", + "value": 16 + }, + { + "name": "ROW_2_CENTER", + "value": 32 + }, + { + "name": "ROW_2_RIGHT", + "value": 64 + }, + { + "name": "ROW_3_LEFT", + "value": 256 + }, + { + "name": "ROW_3_CENTER", + "value": 512 + }, + { + "name": "ROW_3_RIGHT", + "value": 1024 + } + ] + }, + { + "name": "VehicleLightSwitch", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + }, + { + "name": "AUTOMATIC", + "value": 256 + } + ] + }, + { + "name": "WindshieldWipersSwitch", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "OFF", + "value": 1 + }, + { + "name": "MIST", + "value": 2 + }, + { + "name": "INTERMITTENT_LEVEL_1", + "value": 3 + }, + { + "name": "INTERMITTENT_LEVEL_2", + "value": 4 + }, + { + "name": "INTERMITTENT_LEVEL_3", + "value": 5 + }, + { + "name": "INTERMITTENT_LEVEL_4", + "value": 6 + }, + { + "name": "INTERMITTENT_LEVEL_5", + "value": 7 + }, + { + "name": "CONTINUOUS_LEVEL_1", + "value": 8 + }, + { + "name": "CONTINUOUS_LEVEL_2", + "value": 9 + }, + { + "name": "CONTINUOUS_LEVEL_3", + "value": 10 + }, + { + "name": "CONTINUOUS_LEVEL_4", + "value": 11 + }, + { + "name": "CONTINUOUS_LEVEL_5", + "value": 12 + }, + { + "name": "AUTO", + "value": 13 + }, + { + "name": "SERVICE", + "value": 14 + } + ] + }, + { + "name": "LaneCenteringAssistCommand", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ACTIVATE", + "value": 1 + }, + { + "name": "DEACTIVATE", + "value": 2 + } + ] + }, + { + "name": "HandsOnDetectionDriverState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "HANDS_ON", + "value": 1 + }, + { + "name": "HANDS_OFF", + "value": 2 + } + ] + }, + { + "name": "VehicleSeatOccupancyState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "VACANT", + "value": 1 + }, + { + "name": "OCCUPIED", + "value": 2 + } + ] + }, + { + "name": "ErrorState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER_ERROR_STATE", + "value": -1 + }, + { + "name": "NOT_AVAILABLE_DISABLED", + "value": -2 + }, + { + "name": "NOT_AVAILABLE_SPEED_LOW", + "value": -3 + }, + { + "name": "NOT_AVAILABLE_SPEED_HIGH", + "value": -4 + }, + { + "name": "NOT_AVAILABLE_POOR_VISIBILITY", + "value": -5 + }, + { + "name": "NOT_AVAILABLE_SAFETY", + "value": -6 + } + ] + }, + { + "name": "BlindSpotWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "EmergencyLaneKeepAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "WARNING_LEFT", + "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 4 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 5 + }, + { + "name": "USER_OVERRIDE", + "value": 6 + } + ] + }, + { + "name": "WindshieldWipersState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "OFF", + "value": 1 + }, + { + "name": "ON", + "value": 2 + }, + { + "name": "SERVICE", + "value": 3 + } + ] + }, + { + "name": "VehicleOilLevel", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "CRITICALLY_LOW", + "value": 0 + }, + { + "name": "LOW", + "value": 1 + }, + { + "name": "NORMAL", + "value": 2 + }, + { + "name": "HIGH", + "value": 3 + }, + { + "name": "ERROR", + "value": 4 + } + ] + }, + { + "name": "ForwardCollisionWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleUnit", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "SHOULD_NOT_USE", + "value": 0 + }, + { + "name": "METER_PER_SEC", + "value": 1 + }, + { + "name": "RPM", + "value": 2 + }, + { + "name": "HERTZ", + "value": 3 + }, + { + "name": "PERCENTILE", + "value": 16 + }, + { + "name": "MILLIMETER", + "value": 32 + }, + { + "name": "METER", + "value": 33 + }, + { + "name": "KILOMETER", + "value": 35 + }, + { + "name": "MILE", + "value": 36 + }, + { + "name": "CELSIUS", + "value": 48 + }, + { + "name": "FAHRENHEIT", + "value": 49 + }, + { + "name": "KELVIN", + "value": 50 + }, + { + "name": "MILLILITER", + "value": 64 + }, + { + "name": "LITER", + "value": 65 + }, + { + "name": "GALLON", + "value": 66 + }, + { + "name": "US_GALLON", + "value": 66 + }, + { + "name": "IMPERIAL_GALLON", + "value": 67 + }, + { + "name": "NANO_SECS", + "value": 80 + }, + { + "name": "MILLI_SECS", + "value": 81 + }, + { + "name": "SECS", + "value": 83 + }, + { + "name": "YEAR", + "value": 89 + }, + { + "name": "WATT_HOUR", + "value": 96 + }, + { + "name": "MILLIAMPERE", + "value": 97 + }, + { + "name": "MILLIVOLT", + "value": 98 + }, + { + "name": "MILLIWATTS", + "value": 99 + }, + { + "name": "AMPERE_HOURS", + "value": 100 + }, + { + "name": "KILOWATT_HOUR", + "value": 101 + }, + { + "name": "AMPERE", + "value": 102 + }, + { + "name": "KILOPASCAL", + "value": 112 + }, + { + "name": "PSI", + "value": 113 + }, + { + "name": "BAR", + "value": 114 + }, + { + "name": "DEGREES", + "value": 128 + }, + { + "name": "MILES_PER_HOUR", + "value": 144 + }, + { + "name": "KILOMETERS_PER_HOUR", + "value": 145 + } + ] + }, + { + "name": "VehicleHvacFanDirection", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "FACE", + "value": 1 + }, + { + "name": "FLOOR", + "value": 2 + }, + { + "name": "FACE_AND_FLOOR", + "value": 3 + }, + { + "name": "DEFROST", + "value": 4 + }, + { + "name": "DEFROST_AND_FLOOR", + "value": 6 + } + ] + }, + { + "name": "EvChargeState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "CHARGING", + "value": 1 + }, + { + "name": "FULLY_CHARGED", + "value": 2 + }, + { + "name": "NOT_CHARGING", + "value": 3 + }, + { + "name": "ERROR", + "value": 4 + } + ] + }, + { + "name": "GsrComplianceRequirementType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "GSR_COMPLIANCE_NOT_REQUIRED", + "value": 0 + }, + { + "name": "GSR_COMPLIANCE_REQUIRED_V1", + "value": 1 + } + ] + }, + { + "name": "CruiseControlCommand", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ACTIVATE", + "value": 1 + }, + { + "name": "SUSPEND", + "value": 2 + }, + { + "name": "INCREASE_TARGET_SPEED", + "value": 3 + }, + { + "name": "DECREASE_TARGET_SPEED", + "value": 4 + }, + { + "name": "INCREASE_TARGET_TIME_GAP", + "value": 5 + }, + { + "name": "DECREASE_TARGET_TIME_GAP", + "value": 6 + } + ] + }, + { + "name": "EvRegenerativeBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "DISABLED", + "value": 1 + }, + { + "name": "PARTIALLY_ENABLED", + "value": 2 + }, + { + "name": "FULLY_ENABLED", + "value": 3 + } + ] + }, + { + "name": "PortLocationType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "FRONT_LEFT", + "value": 1 + }, + { + "name": "FRONT_RIGHT", + "value": 2 + }, + { + "name": "REAR_RIGHT", + "value": 3 + }, + { + "name": "REAR_LEFT", + "value": 4 + }, + { + "name": "FRONT", + "value": 5 + }, + { + "name": "REAR", + "value": 6 + } + ] + }, + { + "name": "LaneCenteringAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATION_REQUESTED", + "value": 2 + }, + { + "name": "ACTIVATED", + "value": 3 + }, + { + "name": "USER_OVERRIDE", + "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + }, + { + "name": "CruiseControlState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + }, + { + "name": "SUSPENDED", + "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + } ] \ No newline at end of file diff --git a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py b/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py deleted file mode 100755 index 5706571fb3..0000000000 --- a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/python3 - -# -# Script for generation of VHAL properties metadata .json from AIDL interface -# -# This metadata is used to display human property names, names of enum -# data types for their values, change and access modes and other information, -# available from AIDL block comments, but not at runtime. -# -# Usage example: -# ./emu_metadata/generate_emulator_metadata.py android/hardware/automotive/vehicle $OUT/android.hardware.automotive.vehicle-types-meta.json -# (Note, that the resulting file has to match a '*types-meta.json' pattern to be parsed by the emulator). -# - -import json -import os -import re -import sys - -from pathlib import Path - -RE_PACKAGE = re.compile(r"\npackage\s([\.a-z0-9]*);") -RE_IMPORT = re.compile(r"\nimport\s([\.a-zA-Z0-9]*);") -RE_ENUM = re.compile(r"\s*enum\s+(\w*) {\n(.*)}", re.MULTILINE | re.DOTALL) -RE_COMMENT = re.compile(r"(?:(?:\/\*\*)((?:.|\n)*?)(?:\*\/))?(?:\n|^)\s*(\w*)(?:\s+=\s*)?((?:[\.\-a-zA-Z0-9]|\s|\+|)*),", - re.DOTALL) -RE_BLOCK_COMMENT_TITLE = re.compile("^(?:\s|\*)*((?:\w|\s|\.)*)\n(?:\s|\*)*(?:\n|$)") -RE_BLOCK_COMMENT_ANNOTATION = re.compile("^(?:\s|\*)*@(\w*)\s+((?:[\w:\.])*)", re.MULTILINE) -RE_HEX_NUMBER = re.compile("([\.\-0-9A-Za-z]+)") - - -class JEnum: - def __init__(self, package, name): - self.package = package - self.name = name - self.values = [] - -class Enum: - def __init__(self, package, name, text, imports): - self.text = text - self.parsed = False - self.imports = imports - self.jenum = JEnum(package, name) - - def parse(self, enums): - if self.parsed: - return - for dep in self.imports: - enums[dep].parse(enums) - print("Parsing " + self.jenum.name) - matches = RE_COMMENT.findall(self.text) - defaultValue = 0 - for match in matches: - value = dict() - value['name'] = match[1] - value['value'] = self.calculateValue(match[2], defaultValue, enums) - defaultValue = value['value'] + 1 - if self.jenum.name == "VehicleProperty": - block_comment = match[0] - self.parseBlockComment(value, block_comment) - self.jenum.values.append(value) - self.parsed = True - self.text = None - - def get_value(self, value_name): - for value in self.jenum.values: - if value['name'] == value_name: - return value['value'] - raise Exception("Cannot decode value: " + self.jenum.package + " : " + value_name) - - def calculateValue(self, expression, default_value, enums): - numbers = RE_HEX_NUMBER.findall(expression) - if len(numbers) == 0: - return default_value - result = 0 - base = 10 - if numbers[0].lower().startswith("0x"): - base = 16 - for number in numbers: - if '.' in number: - package, val_name = number.split('.') - for dep in self.imports: - if package in dep: - result += enums[dep].get_value(val_name) - else: - result += int(number, base) - return result - - def parseBlockComment(self, value, blockComment): - titles = RE_BLOCK_COMMENT_TITLE.findall(blockComment) - for title in titles: - value['name'] = title - break - annots_res = RE_BLOCK_COMMENT_ANNOTATION.findall(blockComment) - for annot in annots_res: - value[annot[0]] = annot[1].replace(".", ":") - -class Converter: - # Only addition is supported for now, but that covers all existing properties except - # OBD diagnostics, which use bitwise shifts - def convert(self, input): - text = Path(input).read_text() - matches = RE_ENUM.findall(text) - package = RE_PACKAGE.findall(text)[0] - imports = RE_IMPORT.findall(text) - enums = [] - for match in matches: - enum = Enum(package, match[0], match[1], imports) - enums.append(enum) - return enums - - -def main(): - if (len(sys.argv) != 3): - print("Usage: ", sys.argv[0], " INPUT_PATH OUTPUT") - sys.exit(1) - aidl_path = sys.argv[1] - out_path = sys.argv[2] - enums_dict = dict() - for file in os.listdir(aidl_path): - enums = Converter().convert(os.path.join(aidl_path, file)) - for enum in enums: - enums_dict[enum.jenum.package + "." + enum.jenum.name] = enum - - result = [] - for enum_name, enum in enums_dict.items(): - enum.parse(enums_dict) - result.append(enum.jenum.__dict__) - - json_result = json.dumps(result, default=None, indent=2) - with open(out_path, 'w') as f: - f.write(json_result) - - -if __name__ == "__main__": - main() diff --git a/automotive/vehicle/aidl/impl/vhal/Android.bp b/automotive/vehicle/aidl/impl/vhal/Android.bp index 4feea79490..b88c3fd89e 100644 --- a/automotive/vehicle/aidl/impl/vhal/Android.bp +++ b/automotive/vehicle/aidl/impl/vhal/Android.bp @@ -55,6 +55,10 @@ cc_library { "src/ConnectedClient.cpp", "src/DefaultVehicleHal.cpp", "src/SubscriptionManager.cpp", + // A target to check whether the file + // android.hardware.automotive.vehicle-types-meta.json needs update. + // The output is just an empty cpp file and not actually used. + ":check_generated_enum_metadata_json", ], static_libs: [ "VehicleHalUtils", diff --git a/automotive/vehicle/aidl_property/Android.bp b/automotive/vehicle/aidl_property/Android.bp index 580be6829b..8e6a4b5e04 100644 --- a/automotive/vehicle/aidl_property/Android.bp +++ b/automotive/vehicle/aidl_property/Android.bp @@ -57,5 +57,11 @@ aidl_interface { }, ], +} +filegroup { + name: "android.hardware.automotive.vehicle.property-files", + srcs: [ + "android/hardware/automotive/vehicle/*.aidl", + ], } diff --git a/automotive/vehicle/tools/generate_emu_metadata/Android.bp b/automotive/vehicle/tools/generate_emu_metadata/Android.bp new file mode 100644 index 0000000000..4cb6d3baf5 --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/Android.bp @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +java_binary_host { + name: "EnumMetadataGenerator", + srcs: ["src/**/*.java"], + manifest: "manifest.txt", + static_libs: [ + "javaparser", + "javaparser-symbol-solver", + "json-prebuilt", + "androidx.annotation_annotation", + ], +} + +// A rule to convert VHAL property AIDL files to java files. +gensrcs { + name: "gen_vehicle_property_java_file", + srcs: [ + ":android.hardware.automotive.vehicle.property-files", + ], + tools: ["aidl"], + cmd: "$(location aidl) --lang=java --structured --stability=vintf $(in) -I hardware/interfaces/automotive/vehicle/aidl_property --out $(genDir)/hardware/interfaces/automotive/vehicle/aidl_property", + output_extension: "java", +} + +// A target to check whether android.hardware.automotive.vehicle-types-meta.json +// needs to be updated. The output is just an empty cpp file to be included +// in the higher-level build target. +// It will generate generated.json at output directory based on VHAL property +// java files and check it against +// android.hardware.automotive.vehicle-types-meta.json. If not the same, the +// build will fail. +genrule { + name: "check_generated_enum_metadata_json", + tools: ["EnumMetadataGenerator"], + srcs: [ + ":android.hardware.automotive.vehicle-types-meta", + ":gen_vehicle_property_java_file", + ], + cmd: "$(location EnumMetadataGenerator) --check_against $(location :android.hardware.automotive.vehicle-types-meta) --output_empty_file $(out) --output_json $(genDir)/generate_enum_metadata.json --input_files $(locations :gen_vehicle_property_java_file)", + out: ["generate_enum_metadata_checked.cpp"], +} diff --git a/automotive/vehicle/tools/generate_emu_metadata/manifest.txt b/automotive/vehicle/tools/generate_emu_metadata/manifest.txt new file mode 100644 index 0000000000..07696da0a0 --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/manifest.txt @@ -0,0 +1 @@ +Main-Class: com.android.car.tool.EmuMetadataGenerator diff --git a/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java b/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java new file mode 100644 index 0000000000..8e12f6774b --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java @@ -0,0 +1,403 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.car.tool; + +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.AnnotationDeclaration; +import com.github.javaparser.ast.body.FieldDeclaration; +import com.github.javaparser.ast.body.VariableDeclarator; +import com.github.javaparser.ast.comments.Comment; +import com.github.javaparser.ast.expr.AnnotationExpr; +import com.github.javaparser.ast.expr.ArrayInitializerExpr; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.NormalAnnotationExpr; +import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr; +import com.github.javaparser.ast.expr.UnaryExpr; +import com.github.javaparser.ast.type.ClassOrInterfaceType; +import com.github.javaparser.javadoc.Javadoc; +import com.github.javaparser.javadoc.JavadocBlockTag; +import com.github.javaparser.javadoc.description.JavadocDescription; +import com.github.javaparser.javadoc.description.JavadocDescriptionElement; +import com.github.javaparser.javadoc.description.JavadocInlineTag; +import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration; +import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration; +import com.github.javaparser.symbolsolver.JavaSymbolSolver; +import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration; +import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import org.json.JSONArray; +import org.json.JSONObject; + +public final class EmuMetadataGenerator { + private static final String DEFAULT_PACKAGE_NAME = "android.hardware.automotive.vehicle"; + private static final String INPUT_DIR_OPTION = "--input_dir"; + private static final String INPUT_FILES_OPTION = "--input_files"; + private static final String PACKAGE_NAME_OPTION = "--package_name"; + private static final String OUTPUT_JSON_OPTION = "--output_json"; + private static final String OUTPUT_EMPTY_FILE_OPTION = "--output_empty_file"; + private static final String CHECK_AGAINST_OPTION = "--check_against"; + private static final String USAGE = "EnumMetadataGenerator " + INPUT_DIR_OPTION + + " [path_to_aidl_gen_dir] " + INPUT_FILES_OPTION + " [input_files] " + + PACKAGE_NAME_OPTION + " [package_name] " + OUTPUT_JSON_OPTION + " [output_json] " + + OUTPUT_EMPTY_FILE_OPTION + " [output_header_file] " + CHECK_AGAINST_OPTION + + " [json_file_to_check_against]\n" + + "Parses the VHAL property AIDL interface generated Java files to a json file to be" + + " used by emulator\n" + + "Options: \n" + INPUT_DIR_OPTION + + ": the path to a directory containing AIDL interface Java files, " + + "either this or input_files must be specified\n" + INPUT_FILES_OPTION + + ": one or more Java files, this is used to decide the input " + + "directory\n" + PACKAGE_NAME_OPTION + + ": the optional package name for the interface, by default is " + DEFAULT_PACKAGE_NAME + + "\n" + OUTPUT_JSON_OPTION + ": The output JSON file\n" + OUTPUT_EMPTY_FILE_OPTION + + ": Only used for check_mode, this file will be created if " + + "check passed\n" + CHECK_AGAINST_OPTION + + ": An optional JSON file to check against. If specified, the " + + "generated output file will be checked against this file, if they are not the same, " + + "the script will fail, otherwise, the output_empty_file will be created\n" + + "For example: \n" + + "EnumMetadataGenerator --input_dir out/soong/.intermediates/hardware/" + + "interfaces/automotive/vehicle/aidl_property/android.hardware.automotive.vehicle." + + "property-V3-java-source/gen/ --package_name android.hardware.automotive.vehicle " + + "--output_json /tmp/android.hardware.automotive.vehicle-types-meta.json"; + private static final String VEHICLE_PROPERTY_FILE = "VehicleProperty.java"; + private static final String CHECK_FILE_PATH = + "${ANDROID_BUILD_TOP}/hardware/interfaces/automotive/vehicle/aidl/emu_metadata/" + + "android.hardware.automotive.vehicle-types-meta.json"; + + // Emulator can display at least this many characters before cutting characters. + private static final int MAX_PROPERTY_NAME_LENGTH = 30; + + /** + * Parses the enum field declaration as an int value. + */ + private static int parseIntEnumField(FieldDeclaration fieldDecl) { + VariableDeclarator valueDecl = fieldDecl.getVariables().get(0); + Expression expr = valueDecl.getInitializer().get(); + if (expr.isIntegerLiteralExpr()) { + return expr.asIntegerLiteralExpr().asInt(); + } + // For case like -123 + if (expr.isUnaryExpr() && expr.asUnaryExpr().getOperator() == UnaryExpr.Operator.MINUS) { + return -expr.asUnaryExpr().getExpression().asIntegerLiteralExpr().asInt(); + } + System.out.println("Unsupported expression: " + expr); + System.exit(1); + return 0; + } + + private static boolean isPublicAndStatic(FieldDeclaration fieldDecl) { + return fieldDecl.isPublic() && fieldDecl.isStatic(); + } + + private static String getFieldName(FieldDeclaration fieldDecl) { + VariableDeclarator valueDecl = fieldDecl.getVariables().get(0); + return valueDecl.getName().asString(); + } + + private static class Enum { + Enum(String name, String packageName) { + this.name = name; + this.packageName = packageName; + } + + public String name; + public String packageName; + public final List valueFields = new ArrayList<>(); + } + + private static class ValueField { + public String name; + public Integer value; + public final List dataEnums = new ArrayList<>(); + + ValueField(String name, Integer value) { + this.name = name; + this.value = value; + } + } + + private static Enum parseEnumInterface( + String inputDir, String dirName, String packageName, String enumName) throws Exception { + Enum enumIntf = new Enum(enumName, packageName); + CompilationUnit cu = StaticJavaParser.parse(new File( + inputDir + File.separator + dirName + File.separator + enumName + ".java")); + AnnotationDeclaration vehiclePropertyIdsClass = + cu.getAnnotationDeclarationByName(enumName).get(); + + List variables = vehiclePropertyIdsClass.findAll(FieldDeclaration.class); + for (int i = 0; i < variables.size(); i++) { + FieldDeclaration propertyDef = variables.get(i).asFieldDeclaration(); + if (!isPublicAndStatic(propertyDef)) { + continue; + } + ValueField field = + new ValueField(getFieldName(propertyDef), parseIntEnumField(propertyDef)); + enumIntf.valueFields.add(field); + } + return enumIntf; + } + + // A hacky way to make the key in-order in the JSON object. + private static final class OrderedJSONObject extends JSONObject { + OrderedJSONObject() { + try { + Field map = JSONObject.class.getDeclaredField("nameValuePairs"); + map.setAccessible(true); + map.set(this, new LinkedHashMap<>()); + map.setAccessible(false); + } catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + } + + private static String readFileContent(String fileName) throws Exception { + StringBuffer contentBuffer = new StringBuffer(); + int bufferSize = 1024; + try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) { + char buffer[] = new char[bufferSize]; + while (true) { + int read = reader.read(buffer, 0, bufferSize); + if (read == -1) { + break; + } + contentBuffer.append(buffer, 0, read); + } + } + return contentBuffer.toString(); + } + + private static final class Args { + public final String inputDir; + public final String pkgName; + public final String pkgDir; + public final String output; + public final String checkFile; + public final String outputEmptyFile; + + public Args(String[] args) throws IllegalArgumentException { + Map> valuesByKey = new LinkedHashMap<>(); + String key = null; + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.startsWith("--")) { + key = arg; + continue; + } + if (key == null) { + throw new IllegalArgumentException("Missing key for value: " + arg); + } + if (valuesByKey.get(key) == null) { + valuesByKey.put(key, new ArrayList<>()); + } + valuesByKey.get(key).add(arg); + } + String pkgName; + List values = valuesByKey.get(PACKAGE_NAME_OPTION); + if (values == null) { + pkgName = DEFAULT_PACKAGE_NAME; + } else { + pkgName = values.get(0); + } + String pkgDir = pkgName.replace(".", File.separator); + this.pkgName = pkgName; + this.pkgDir = pkgDir; + String inputDir; + values = valuesByKey.get(INPUT_DIR_OPTION); + if (values == null) { + List inputFiles = valuesByKey.get(INPUT_FILES_OPTION); + if (inputFiles == null) { + throw new IllegalArgumentException("Either " + INPUT_DIR_OPTION + " or " + + INPUT_FILES_OPTION + " must be specified"); + } + inputDir = new File(inputFiles.get(0)).getParent().replace(pkgDir, ""); + } else { + inputDir = values.get(0); + } + this.inputDir = inputDir; + values = valuesByKey.get(OUTPUT_JSON_OPTION); + if (values == null) { + throw new IllegalArgumentException(OUTPUT_JSON_OPTION + " must be specified"); + } + this.output = values.get(0); + values = valuesByKey.get(CHECK_AGAINST_OPTION); + if (values != null) { + this.checkFile = values.get(0); + } else { + this.checkFile = null; + } + values = valuesByKey.get(OUTPUT_EMPTY_FILE_OPTION); + if (values != null) { + this.outputEmptyFile = values.get(0); + } else { + this.outputEmptyFile = null; + } + } + } + + /** + * Main function. + */ + public static void main(final String[] args) throws Exception { + Args parsedArgs; + try { + parsedArgs = new Args(args); + } catch (IllegalArgumentException e) { + System.out.println("Invalid arguments: " + e.getMessage()); + System.out.println(USAGE); + System.exit(1); + // Never reach here. + return; + } + + TypeSolver typeSolver = new CombinedTypeSolver( + new ReflectionTypeSolver(), new JavaParserTypeSolver(parsedArgs.inputDir)); + StaticJavaParser.getConfiguration().setSymbolResolver(new JavaSymbolSolver(typeSolver)); + + Enum vehicleProperty = new Enum("VehicleProperty", parsedArgs.pkgName); + CompilationUnit cu = StaticJavaParser.parse(new File(parsedArgs.inputDir + File.separator + + parsedArgs.pkgDir + File.separator + VEHICLE_PROPERTY_FILE)); + AnnotationDeclaration vehiclePropertyIdsClass = + cu.getAnnotationDeclarationByName("VehicleProperty").get(); + + Set dataEnumTypes = new HashSet<>(); + List variables = vehiclePropertyIdsClass.findAll(FieldDeclaration.class); + for (int i = 0; i < variables.size(); i++) { + FieldDeclaration propertyDef = variables.get(i).asFieldDeclaration(); + if (!isPublicAndStatic(propertyDef)) { + continue; + } + String propertyName = getFieldName(propertyDef); + if (propertyName.equals("INVALID")) { + continue; + } + + Optional maybeComment = propertyDef.getComment(); + if (!maybeComment.isPresent()) { + System.out.println("missing comment for property: " + propertyName); + System.exit(1); + } + Javadoc doc = maybeComment.get().asJavadocComment().parse(); + + int propertyId = parseIntEnumField(propertyDef); + // We use the first paragraph as the property's name + String propertyDescription = doc.getDescription().toText().split("\n\n")[0]; + String name = propertyDescription; + if (propertyDescription.indexOf("\n") != -1 + || propertyDescription.length() > MAX_PROPERTY_NAME_LENGTH) { + // The description is too long, we just use the property name. + name = propertyName; + } + ValueField field = new ValueField(name, propertyId); + + List blockTags = doc.getBlockTags(); + List dataEnums = new ArrayList<>(); + for (int j = 0; j < blockTags.size(); j++) { + String commentTagName = blockTags.get(j).getTagName(); + String commentTagContent = blockTags.get(j).getContent().toText(); + if (!commentTagName.equals("data_enum")) { + continue; + } + field.dataEnums.add(commentTagContent); + dataEnumTypes.add(commentTagContent); + } + + vehicleProperty.valueFields.add(field); + } + + List enumTypes = new ArrayList<>(); + enumTypes.add(vehicleProperty); + + for (String dataEnumType : dataEnumTypes) { + Enum dataEnum = parseEnumInterface( + parsedArgs.inputDir, parsedArgs.pkgDir, parsedArgs.pkgName, dataEnumType); + enumTypes.add(dataEnum); + } + + // Output enumTypes as JSON to output. + JSONArray jsonEnums = new JSONArray(); + for (int i = 0; i < enumTypes.size(); i++) { + Enum enumType = enumTypes.get(i); + + JSONObject jsonEnum = new OrderedJSONObject(); + jsonEnum.put("name", enumType.name); + jsonEnum.put("package", enumType.packageName); + JSONArray values = new JSONArray(); + jsonEnum.put("values", values); + + for (int j = 0; j < enumType.valueFields.size(); j++) { + ValueField valueField = enumType.valueFields.get(j); + JSONObject jsonValueField = new OrderedJSONObject(); + jsonValueField.put("name", valueField.name); + jsonValueField.put("value", valueField.value); + if (!valueField.dataEnums.isEmpty()) { + JSONArray jsonDataEnums = new JSONArray(); + for (String dataEnum : valueField.dataEnums) { + jsonDataEnums.put(dataEnum); + } + jsonValueField.put("data_enums", jsonDataEnums); + // To be backward compatible with older format where data_enum is a single + // entry. + jsonValueField.put("data_enum", valueField.dataEnums.get(0)); + } + values.put(jsonValueField); + } + + jsonEnums.put(jsonEnum); + } + + try (FileOutputStream outputStream = new FileOutputStream(parsedArgs.output)) { + outputStream.write(jsonEnums.toString(4).getBytes()); + } + System.out.println("Input at folder: " + parsedArgs.inputDir + + " successfully parsed. Output at: " + parsedArgs.output); + + if (parsedArgs.checkFile != null) { + String checkFileContent = readFileContent(parsedArgs.checkFile); + String generatedFileContent = readFileContent(parsedArgs.output); + String generatedFilePath = new File(parsedArgs.output).getAbsolutePath(); + if (!checkFileContent.equals(generatedFileContent)) { + System.out.println("The file: " + CHECK_FILE_PATH + " needs to be updated, run: " + + "\n\ncp " + generatedFilePath + " " + CHECK_FILE_PATH + "\n"); + System.exit(1); + } + + if (parsedArgs.outputEmptyFile != null) { + try (FileOutputStream outputStream = + new FileOutputStream(parsedArgs.outputEmptyFile)) { + // Do nothing, just create the file. + } + } + } + } +} -- GitLab From dce4f358f76e4166f8f6fa4a2a93c19fac36c514 Mon Sep 17 00:00:00 2001 From: Nathan Harold Date: Wed, 7 Feb 2024 14:53:55 -0800 Subject: [PATCH 330/418] Only check result if getUsageSetting Succeeds Skip checking the result of getUsageSetting if the call to the method returns an error. Bug: 319369513 Test: atest VtsHalRadioTargetTest Change-Id: Ice887a54d029037fa164bb548662dc5b385b3f8d --- radio/aidl/vts/radio_network_test.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/radio/aidl/vts/radio_network_test.cpp b/radio/aidl/vts/radio_network_test.cpp index d95de0d6d3..5cb0158a93 100644 --- a/radio/aidl/vts/radio_network_test.cpp +++ b/radio/aidl/vts/radio_network_test.cpp @@ -237,8 +237,10 @@ TEST_P(RadioNetworkTest, getUsageSetting) { {RadioError::RADIO_NOT_AVAILABLE, RadioError::INVALID_STATE, RadioError::SIM_ABSENT, RadioError::INTERNAL_ERR, RadioError::NONE}); - ASSERT_TRUE(radioRsp_network->usageSetting == UsageSetting::VOICE_CENTRIC || - radioRsp_network->usageSetting == UsageSetting::DATA_CENTRIC); + if (radioRsp_network->rspInfo.error == RadioError::NONE) { + ASSERT_TRUE(radioRsp_network->usageSetting == UsageSetting::VOICE_CENTRIC || + radioRsp_network->usageSetting == UsageSetting::DATA_CENTRIC); + } } void RadioNetworkTest::testSetUsageSetting_InvalidValues(std::vector errors) { -- GitLab From 382b44d40ed1c95abf338e1bdeeefc30881c0571 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 15 Dec 2023 16:05:31 -0800 Subject: [PATCH 331/418] Added seek unit tests for default bcradio HAL Added unit tests for the seek method in the default AIDL broadcast radio HAL implementation. Bug: 316630344 Test: atest DefaultBroadcastRadioHalTestCase Change-Id: Ia82b420f9c1d86125eaf9672715d5391aa14f3e8 --- .../test/DefaultBroadcastRadioHalTest.cpp | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp index 5fce61aa0d..ad4c6ffd5a 100644 --- a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp +++ b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp @@ -337,6 +337,91 @@ TEST_F(DefaultBroadcastRadioHalTest, StepWithoutTunerCallback) { ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); } +TEST_F(DefaultBroadcastRadioHalTest, SeekUpWithoutSkipSubchannel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq1Sel1).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel1); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ true, /* skipSubChannel= */ false); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel2); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekUpWithSkipSubchannel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq1Sel1).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel1); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ true, /* skipSubChannel= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmSel2); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekUpFromLastProgramInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq2Sel1).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq2Sel1); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ true, /* skipSubChannel= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmSel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithoutSkipSubchannel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq1Sel2).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel2); + + auto halResult = + mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ false); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithSkipSubchannel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq1Sel2).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel2); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmSel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithFirstProgramInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq2Sel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekWithoutTunerCallback) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + mBroadcastRadioHal->unsetTunerCallback(); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ true); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); +} + TEST_F(DefaultBroadcastRadioHalTest, Cancel) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); mTunerCallback->reset(); -- GitLab From 4be20f792aaf5152e331598903a6fa08cab9857c Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Thu, 1 Feb 2024 21:39:36 +0000 Subject: [PATCH 332/418] Update bump.py for Trunk Stable The next year's compatbility matrix is added to a conditional statement so it's only available on in-development release configurations. The curent year's compatibility matrix is moved from the conditional statement to always be added to all release configs. The next year's compatibility matrix level is set to the next year's level after copying the current matrix file. Test: ./bump.py Bug: 279809333 Change-Id: Id711ba79110c8775f715eddf37a9bf51b073ec91 --- compatibility_matrices/bump.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/compatibility_matrices/bump.py b/compatibility_matrices/bump.py index 88b7a42013..5cad1e5e31 100755 --- a/compatibility_matrices/bump.py +++ b/compatibility_matrices/bump.py @@ -47,6 +47,7 @@ class Bump(object): self.current_level = cmdline_args.current self.current_module_name = f"framework_compatibility_matrix.{self.current_level}.xml" self.current_xml = self.interfaces_dir / f"compatibility_matrices/compatibility_matrix.{self.current_level}.xml" + self.device_module_name = "framework_compatibility_matrix.device.xml" self.next_level = cmdline_args.next self.next_module_name = f"framework_compatibility_matrix.{self.next_level}.xml" @@ -81,7 +82,8 @@ class Bump(object): ]) def copy_matrix(self): - shutil.copyfile(self.current_xml, self.next_xml) + with open(self.current_xml) as f_current, open(self.next_xml, "w") as f_next: + f_next.write(f_current.read().replace(f"level=\"{self.current_level}\"", f"level=\"{self.next_level}\"")) def edit_android_bp(self): android_bp = self.interfaces_dir / "compatibility_matrices/Android.bp" @@ -124,19 +126,20 @@ class Bump(object): def edit_android_mk(self): android_mk = self.interfaces_dir / "compatibility_matrices/Android.mk" + lines = [] with open(android_mk) as f: if self.next_module_name in f.read(): return f.seek(0) - lines = f.readlines() - current_module_line_number = None - for line_number, line in enumerate(lines): - if self.current_module_name in line: - current_module_line_number = line_number - break - assert current_module_line_number is not None - lines.insert(current_module_line_number + 1, - f" {self.next_module_name} \\\n") + for line in f: + if f" {self.device_module_name} \\\n" in line: + lines.append(f" {self.current_module_name} \\\n") + + if self.current_module_name in line: + lines.append(f" {self.next_module_name} \\\n") + else: + lines.append(line) + with open(android_mk, "w") as f: f.write("".join(lines)) -- GitLab From 0425916b68fef4588cd34ac5c63de61fe1202f0d Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Tue, 6 Feb 2024 22:52:32 +0000 Subject: [PATCH 333/418] bump.py remove Level.h dependency We want to run bump.py during finalization. We don't want to have to update Level.h and the VTS tests that early. So this CL removes the dependency on Level.h and requires the current/next letters of the API levels for the kernerl configs to be passed as arguments. Test: bump.py 202404 202505 v w Bug: 279809333 Change-Id: If8f281eccf62d380949a5ea9f5d0d3bb2d7f19ab --- compatibility_matrices/bump.py | 39 +++++++++++++--------------------- 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/compatibility_matrices/bump.py b/compatibility_matrices/bump.py index 5cad1e5e31..a5a453bdea 100755 --- a/compatibility_matrices/bump.py +++ b/compatibility_matrices/bump.py @@ -16,8 +16,6 @@ # """ Creates the next compatibility matrix. - -Requires libvintf Level.h to be updated before executing this script. """ import argparse @@ -44,41 +42,28 @@ class Bump(object): self.top = pathlib.Path(os.environ["ANDROID_BUILD_TOP"]) self.interfaces_dir = self.top / "hardware/interfaces" - self.current_level = cmdline_args.current + self.current_level = cmdline_args.current_level + self.current_letter = cmdline_args.current_letter self.current_module_name = f"framework_compatibility_matrix.{self.current_level}.xml" self.current_xml = self.interfaces_dir / f"compatibility_matrices/compatibility_matrix.{self.current_level}.xml" self.device_module_name = "framework_compatibility_matrix.device.xml" - self.next_level = cmdline_args.next + self.next_level = cmdline_args.next_level + self.next_letter = cmdline_args.next_letter self.next_module_name = f"framework_compatibility_matrix.{self.next_level}.xml" self.next_xml = self.interfaces_dir / f"compatibility_matrices/compatibility_matrix.{self.next_level}.xml" - self.level_to_letter = self.get_level_to_letter_mapping() - print("Found level mapping in libvintf Level.h:", self.level_to_letter) - def run(self): self.bump_kernel_configs() self.copy_matrix() self.edit_android_bp() self.edit_android_mk() - def get_level_to_letter_mapping(self): - levels_file = self.top / "system/libvintf/include/vintf/Level.h" - with open(levels_file) as f: - lines = f.readlines() - pairs = [ - line.split("=", maxsplit=2) for line in lines if "=" in line - ] - return { - level.strip().removesuffix(","): letter.strip() - for letter, level in pairs - } - def bump_kernel_configs(self): check_call([ self.top / "kernel/configs/tools/bump.py", - self.level_to_letter[self.current_level].lower(), - self.level_to_letter[self.next_level].lower(), + self.current_letter, + self.next_letter, ]) def copy_matrix(self): @@ -102,7 +87,7 @@ class Bump(object): next_kernel_configs = check_output( """grep -rh name: | sed -E 's/^.*"(.*)".*/\\1/g'""", cwd=self.top / "kernel/configs" / - self.level_to_letter[self.next_level].lower(), + self.next_letter, text=True, shell=True, ).splitlines() @@ -146,12 +131,18 @@ class Bump(object): def main(): parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("current", + parser.add_argument("current_level", type=str, help="VINTF level of the current version (e.g. 9)") - parser.add_argument("next", + parser.add_argument("next_level", type=str, help="VINTF level of the next version (e.g. 10)") + parser.add_argument("current_letter", + type=str, + help="Letter of the API level of the current version (e.g. v)") + parser.add_argument("next_letter", + type=str, + help="Letter of the API level of the next version (e.g. w)") cmdline_args = parser.parse_args() Bump(cmdline_args).run() -- GitLab From f094d4e3630c1678301fb9a6cd0f72b9603c32b5 Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Wed, 7 Feb 2024 20:42:23 +0000 Subject: [PATCH 334/418] Remove HIDL media.c2 from the 202404 FCM HIDL is no longer supported in devices targeting 202404 vendor interface. This removes the tmp FCM fragment that was being used to declare the media.c2 HIDL dependency. Test: m && launch_cvd Bug: 218588089 Change-Id: I40973f5cdc9f4c9ca891929c8e8f865119322c17 --- compatibility_matrices/Android.bp | 8 ------- compatibility_matrices/Android.mk | 2 +- .../compatibility_matrix.tmp.xml | 24 ------------------- 3 files changed, 1 insertion(+), 33 deletions(-) delete mode 100644 compatibility_matrices/compatibility_matrix.tmp.xml diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp index b21fe5429b..dd502ba687 100644 --- a/compatibility_matrices/Android.bp +++ b/compatibility_matrices/Android.bp @@ -82,11 +82,3 @@ vintf_compatibility_matrix { "kernel_config_v_6.6", ], } - -vintf_compatibility_matrix { - name: "framework_compatibility_matrix.tmp.xml", - stem: "compatibility_matrix.tmp.xml", - srcs: [ - "compatibility_matrix.tmp.xml", - ], -} diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index 76dbdd6f98..639abf920a 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -112,7 +112,7 @@ my_system_matrix_deps := \ ifeq ($(RELEASE_AIDL_USE_UNFROZEN),true) my_system_matrix_deps += \ framework_compatibility_matrix.202404.xml \ - framework_compatibility_matrix.tmp.xml + endif my_framework_matrix_deps += \ diff --git a/compatibility_matrices/compatibility_matrix.tmp.xml b/compatibility_matrices/compatibility_matrix.tmp.xml deleted file mode 100644 index 85e3c4c2fc..0000000000 --- a/compatibility_matrices/compatibility_matrix.tmp.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - android.hardware.media.c2 - 1.0-2 - - IComponentStore - software - default[0-9]* - vendor[0-9]*_software - - - - android.hardware.media.c2 - 1.0 - - IConfigurable - default - software - - - -- GitLab From 77659428e3ce869bd5c03f64c10b9dd765b09b4a Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Fri, 9 Feb 2024 17:20:54 +0000 Subject: [PATCH 335/418] vibrator HAL bench: Fix broken benchmarks Fixes an issue with the benchmarks, where they would skip unsupported situations by early returning without reaching the measure loop and without notifying the framework. The framework would then retry the exact same scenario indefinitely. To fix, makes sure every early return also calls SkipWithMessage. Fixes: 302845046 Test: adb shell /tmp/foobar/VibratorHalIntegrationBenchmark --v=2 Change-Id: Ib52b8c4d94755a0961bcfb40d508482e5c49cb52 --- vibrator/bench/benchmark.cpp | 39 +++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/vibrator/bench/benchmark.cpp b/vibrator/bench/benchmark.cpp index e19dc6f215..b96e06da5b 100644 --- a/vibrator/bench/benchmark.cpp +++ b/vibrator/bench/benchmark.cpp @@ -118,6 +118,7 @@ class VibratorEffectsBench : public VibratorBench { }); if (!supported) { + state->SkipWithMessage("performApi returned UNSUPPORTED_OPERATION"); return; } @@ -140,16 +141,17 @@ class VibratorEffectsBench : public VibratorBench { } }; -#define BENCHMARK_WRAPPER(fixt, test, code) \ - BENCHMARK_DEFINE_F(fixt, test) \ - /* NOLINTNEXTLINE */ \ - (State & state) { \ - if (!mVibrator) { \ - return; \ - } \ - \ - code \ - } \ +#define BENCHMARK_WRAPPER(fixt, test, code) \ + BENCHMARK_DEFINE_F(fixt, test) \ + /* NOLINTNEXTLINE */ \ + (State & state) { \ + if (!mVibrator) { \ + state.SkipWithMessage("HAL unavailable"); \ + return; \ + } \ + \ + code \ + } \ BENCHMARK_REGISTER_F(fixt, test)->Apply(fixt::DefaultConfig)->Apply(fixt::DefaultArgs) using VibratorBench_V1_0 = VibratorBench; @@ -186,6 +188,7 @@ BENCHMARK_WRAPPER(VibratorBench_V1_0, setAmplitude, { uint8_t amplitude = UINT8_MAX; if (!mVibrator->supportsAmplitudeControl()) { + state.SkipWithMessage("Amplitude control unavailable"); return; } @@ -227,6 +230,7 @@ BENCHMARK_WRAPPER(VibratorBench_V1_3, setExternalControl, { bool enable = true; if (!mVibrator->supportsExternalControl()) { + state.SkipWithMessage("external control unavailable"); return; } @@ -240,6 +244,7 @@ BENCHMARK_WRAPPER(VibratorBench_V1_3, setExternalControl, { BENCHMARK_WRAPPER(VibratorBench_V1_3, supportsExternalAmplitudeControl, { if (!mVibrator->supportsExternalControl()) { + state.SkipWithMessage("external control unavailable"); return; } @@ -256,12 +261,14 @@ BENCHMARK_WRAPPER(VibratorBench_V1_3, setExternalAmplitude, { uint8_t amplitude = UINT8_MAX; if (!mVibrator->supportsExternalControl()) { + state.SkipWithMessage("external control unavailable"); return; } mVibrator->setExternalControl(true); if (!mVibrator->supportsAmplitudeControl()) { + state.SkipWithMessage("amplitude control unavailable"); return; } @@ -328,6 +335,7 @@ BENCHMARK_WRAPPER(VibratorBench_Aidl, setAmplitude, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_AMPLITUDE_CONTROL) == 0) { + state.SkipWithMessage("amplitude control unavailable"); return; } @@ -345,6 +353,7 @@ BENCHMARK_WRAPPER(VibratorBench_Aidl, setExternalControl, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_EXTERNAL_CONTROL) == 0) { + state.SkipWithMessage("external control unavailable"); return; } @@ -361,6 +370,7 @@ BENCHMARK_WRAPPER(VibratorBench_Aidl, setExternalAmplitude, { mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_EXTERNAL_CONTROL) == 0 || (capabilities & Aidl::IVibrator::CAP_EXTERNAL_AMPLITUDE_CONTROL) == 0) { + state.SkipWithMessage("external amplitude control unavailable"); return; } @@ -423,6 +433,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, alwaysOnEnable, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_ALWAYS_ON_CONTROL) == 0) { + state.SkipWithMessage("always on control unavailable"); return; } @@ -433,6 +444,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, alwaysOnEnable, { std::vector supported; mVibrator->getSupportedAlwaysOnEffects(&supported); if (std::find(supported.begin(), supported.end(), effect) == supported.end()) { + state.SkipWithMessage("always on effects unavailable"); return; } @@ -448,6 +460,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, alwaysOnDisable, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_ALWAYS_ON_CONTROL) == 0) { + state.SkipWithMessage("always on control unavailable"); return; } @@ -458,6 +471,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, alwaysOnDisable, { std::vector supported; mVibrator->getSupportedAlwaysOnEffects(&supported); if (std::find(supported.begin(), supported.end(), effect) == supported.end()) { + state.SkipWithMessage("always on effects unavailable"); return; } @@ -481,6 +495,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, perform, { std::vector supported; mVibrator->getSupportedEffects(&supported); if (std::find(supported.begin(), supported.end(), effect) == supported.end()) { + state.SkipWithMessage("effects unavailable"); return; } @@ -527,6 +542,7 @@ BENCHMARK_WRAPPER(VibratorPrimitivesBench_Aidl, getPrimitiveDuration, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_COMPOSE_EFFECTS) == 0) { + state.SkipWithMessage("compose effects unavailable"); return; } @@ -536,6 +552,7 @@ BENCHMARK_WRAPPER(VibratorPrimitivesBench_Aidl, getPrimitiveDuration, { std::vector supported; mVibrator->getSupportedPrimitives(&supported); if (std::find(supported.begin(), supported.end(), primitive) == supported.end()) { + state.SkipWithMessage("supported primitives unavailable"); return; } @@ -548,6 +565,7 @@ BENCHMARK_WRAPPER(VibratorPrimitivesBench_Aidl, compose, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_COMPOSE_EFFECTS) == 0) { + state.SkipWithMessage("compose effects unavailable"); return; } @@ -559,6 +577,7 @@ BENCHMARK_WRAPPER(VibratorPrimitivesBench_Aidl, compose, { std::vector supported; mVibrator->getSupportedPrimitives(&supported); if (std::find(supported.begin(), supported.end(), effect.primitive) == supported.end()) { + state.SkipWithMessage("supported primitives unavailable"); return; } -- GitLab From 38d054e4ae17e22ca692ede83bee48af879526fd Mon Sep 17 00:00:00 2001 From: Lais Andrade Date: Fri, 9 Feb 2024 12:42:09 +0000 Subject: [PATCH 336/418] Fix vibrator compose VTS tests Add TearDown method to reset the vibrator state between tests to avoid illegal state errors caused by unrelated tests. Add calls to vibrator->off between vibrator->compose invocations within the same test, so calls are tested individually. Test runs with this change on failing targets: Bug: 323087313 Test: atest VtsHalVibratorTargetTest Change-Id: I1e9aa243da07040b33df2474977fc8becac440a5 --- .../aidl/vts/VtsHalVibratorTargetTest.cpp | 258 +++++++++--------- 1 file changed, 135 insertions(+), 123 deletions(-) diff --git a/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp b/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp index c88cb594f9..2c6add1253 100644 --- a/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp +++ b/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp @@ -109,6 +109,11 @@ class VibratorAidl : public testing::TestWithParam> ASSERT_TRUE(vibrator->getCapabilities(&capabilities).isOk()); } + virtual void TearDown() override { + // Reset vibrator state between tests. + EXPECT_TRUE(vibrator->off().isOk()); + } + sp vibrator; int32_t capabilities; }; @@ -429,189 +434,196 @@ TEST_P(VibratorAidl, GetPrimitiveDuration) { } TEST_P(VibratorAidl, ComposeValidPrimitives) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - std::vector supported; - int32_t maxDelay, maxSize; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); - EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); - EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionSizeMax(&maxSize).exceptionCode()); + std::vector supported; + int32_t maxDelay, maxSize; - std::vector composite; + ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); + EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); + EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionSizeMax(&maxSize).exceptionCode()); - for (auto primitive : supported) { - CompositeEffect effect; + std::vector composite; - effect.delayMs = std::rand() % (maxDelay + 1); - effect.primitive = primitive; - effect.scale = static_cast(std::rand()) / static_cast(RAND_MAX); - composite.emplace_back(effect); + for (auto primitive : supported) { + CompositeEffect effect; - if (composite.size() == maxSize) { - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); - composite.clear(); - vibrator->off(); - } - } + effect.delayMs = std::rand() % (maxDelay + 1); + effect.primitive = primitive; + effect.scale = static_cast(std::rand()) / static_cast(RAND_MAX); + composite.emplace_back(effect); - if (composite.size() != 0) { - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); - vibrator->off(); + if (composite.size() == maxSize) { + break; } } + + if (composite.size() != 0) { + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); + } } TEST_P(VibratorAidl, ComposeUnsupportedPrimitives) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - auto unsupported = kInvalidPrimitives; - std::vector supported; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); + auto unsupported = kInvalidPrimitives; + std::vector supported; - for (auto primitive : kCompositePrimitives) { - bool isPrimitiveSupported = + ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); + + for (auto primitive : kCompositePrimitives) { + bool isPrimitiveSupported = std::find(supported.begin(), supported.end(), primitive) != supported.end(); - if (!isPrimitiveSupported) { - unsupported.push_back(primitive); - } + if (!isPrimitiveSupported) { + unsupported.push_back(primitive); } + } - for (auto primitive : unsupported) { - std::vector composite(1); + for (auto primitive : unsupported) { + std::vector composite(1); - for (auto &effect : composite) { - effect.delayMs = 0; - effect.primitive = primitive; - effect.scale = 1.0f; - } - Status status = vibrator->compose(composite, nullptr); - EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; - vibrator->off(); + for (auto& effect : composite) { + effect.delayMs = 0; + effect.primitive = primitive; + effect.scale = 1.0f; } + Status status = vibrator->compose(composite, nullptr); + EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; } } TEST_P(VibratorAidl, ComposeScaleBoundary) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - std::vector composite(1); - CompositeEffect &effect = composite[0]; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - effect.delayMs = 0; - effect.primitive = CompositePrimitive::CLICK; + std::vector composite(1); + CompositeEffect& effect = composite[0]; - effect.scale = std::nextafter(0.0f, -1.0f); - EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, - vibrator->compose(composite, nullptr).exceptionCode()); + effect.delayMs = 0; + effect.primitive = CompositePrimitive::CLICK; - effect.scale = 0.0f; - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + effect.scale = std::nextafter(0.0f, -1.0f); + EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); - effect.scale = 1.0f; - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + effect.scale = 0.0f; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); - effect.scale = std::nextafter(1.0f, 2.0f); - EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, - vibrator->compose(composite, nullptr).exceptionCode()); + effect.scale = 1.0f; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); - vibrator->off(); - } + effect.scale = std::nextafter(1.0f, 2.0f); + EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); } TEST_P(VibratorAidl, ComposeDelayBoundary) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - int32_t maxDelay; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); + int32_t maxDelay; - std::vector composite(1); - CompositeEffect effect; + EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); - effect.delayMs = 1; - effect.primitive = CompositePrimitive::CLICK; - effect.scale = 1.0f; + std::vector composite(1); + CompositeEffect effect; - std::fill(composite.begin(), composite.end(), effect); - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + effect.delayMs = 1; + effect.primitive = CompositePrimitive::CLICK; + effect.scale = 1.0f; - effect.delayMs = maxDelay + 1; + std::fill(composite.begin(), composite.end(), effect); + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); - std::fill(composite.begin(), composite.end(), effect); - EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, - vibrator->compose(composite, nullptr).exceptionCode()); - vibrator->off(); - } + effect.delayMs = maxDelay + 1; + + std::fill(composite.begin(), composite.end(), effect); + EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); } TEST_P(VibratorAidl, ComposeSizeBoundary) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - int32_t maxSize; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionSizeMax(&maxSize).exceptionCode()); + int32_t maxSize; - std::vector composite(maxSize); - CompositeEffect effect; + EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionSizeMax(&maxSize).exceptionCode()); - effect.delayMs = 1; - effect.primitive = CompositePrimitive::CLICK; - effect.scale = 1.0f; + std::vector composite(maxSize); + CompositeEffect effect; - std::fill(composite.begin(), composite.end(), effect); - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + effect.delayMs = 1; + effect.primitive = CompositePrimitive::CLICK; + effect.scale = 1.0f; - composite.emplace_back(effect); - EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, - vibrator->compose(composite, nullptr).exceptionCode()); - vibrator->off(); - } + std::fill(composite.begin(), composite.end(), effect); + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); + + composite.emplace_back(effect); + EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); } TEST_P(VibratorAidl, ComposeCallback) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - std::vector supported; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); + std::vector supported; - for (auto primitive : supported) { - if (primitive == CompositePrimitive::NOOP) { - continue; - } + ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); - std::promise completionPromise; - std::future completionFuture{completionPromise.get_future()}; - sp callback = + for (auto primitive : supported) { + if (primitive == CompositePrimitive::NOOP) { + continue; + } + + std::promise completionPromise; + std::future completionFuture{completionPromise.get_future()}; + sp callback = new CompletionCallback([&completionPromise] { completionPromise.set_value(); }); - CompositeEffect effect; - std::vector composite; - int32_t durationMs; - std::chrono::milliseconds duration; - std::chrono::time_point start, end; - std::chrono::milliseconds elapsed; + CompositeEffect effect; + std::vector composite; + int32_t durationMs; + std::chrono::milliseconds duration; + std::chrono::time_point start, end; + std::chrono::milliseconds elapsed; - effect.delayMs = 0; - effect.primitive = primitive; - effect.scale = 1.0f; - composite.emplace_back(effect); + effect.delayMs = 0; + effect.primitive = primitive; + effect.scale = 1.0f; + composite.emplace_back(effect); - EXPECT_EQ(Status::EX_NONE, - vibrator->getPrimitiveDuration(primitive, &durationMs).exceptionCode()) + EXPECT_EQ(Status::EX_NONE, + vibrator->getPrimitiveDuration(primitive, &durationMs).exceptionCode()) << toString(primitive); - duration = std::chrono::milliseconds(durationMs); + duration = std::chrono::milliseconds(durationMs); - start = high_resolution_clock::now(); - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, callback).exceptionCode()) + start = high_resolution_clock::now(); + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, callback).exceptionCode()) << toString(primitive); - // TODO(b/261130361): Investigate why latency from driver and hardware will cause test - // to fail when wait duration is ~40ms or less. - EXPECT_EQ(completionFuture.wait_for(duration + std::chrono::milliseconds(50)), - std::future_status::ready) - << toString(primitive); - end = high_resolution_clock::now(); + // TODO(b/261130361): Investigate why latency from driver and hardware will cause test + // to fail when wait duration is ~40ms or less. + EXPECT_EQ(completionFuture.wait_for(duration + std::chrono::milliseconds(50)), + std::future_status::ready) + << toString(primitive); + end = high_resolution_clock::now(); - elapsed = std::chrono::duration_cast(end - start); - EXPECT_GE(elapsed.count(), duration.count()) << toString(primitive); - } + elapsed = std::chrono::duration_cast(end - start); + EXPECT_GE(elapsed.count(), duration.count()) << toString(primitive); + + EXPECT_TRUE(vibrator->off().isOk()); } } -- GitLab From e1560216fe561de7710ff7de66ee7d87de4d8979 Mon Sep 17 00:00:00 2001 From: Subrahmanyaman Date: Tue, 9 May 2023 04:40:33 +0000 Subject: [PATCH 337/418] Test to validate a range of certificate validity times. Bug: 280624515 Test: run VtsAidlKeyMintTarget Change-Id: Id315c28e2ea114c5c39e235d3ee6be2a0d8bfa71 --- .../aidl/vts/functional/KeyMintTest.cpp | 67 ++++++++++++------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index e098aca8c4..0b7627c5b2 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -1064,32 +1064,53 @@ TEST_P(NewKeyGenerationTest, RsaWithMissingValidity) { TEST_P(NewKeyGenerationTest, RsaWithSpecifiedValidity) { vector key_blob; vector key_characteristics; - ASSERT_EQ(ErrorCode::OK, - GenerateKey(AuthorizationSetBuilder() - .RsaSigningKey(2048, 65537) - .Digest(Digest::NONE) - .Padding(PaddingMode::NONE) - .Authorization(TAG_CERTIFICATE_NOT_BEFORE, - 1183806000000 /* 2007-07-07T11:00:00Z */) - .Authorization(TAG_CERTIFICATE_NOT_AFTER, - 1916049600000 /* 2030-09-19T12:00:00Z */), - &key_blob, &key_characteristics)); - ASSERT_GT(cert_chain_.size(), 0); + vector test_vector_not_before_millis = { + 458046000000, /* 1984-07-07T11:00:00Z */ + 1183806000000, /* 2007-07-07T11:00:00Z */ + 1924991999000, /* 2030-12-31T23:59:59Z */ + 3723753599000, /* 2087-12-31T23:59:59Z */ + 26223868799000, /* 2800-12-31T23:59:59Z */ + 45157996799000, /* 3400-12-31T23:59:59Z */ + 60719587199000, /* 3894-02-15T23:59:59Z */ + 95302051199000, /* 4989-12-31T23:59:59Z */ + 86182012799000, /* 4700-12-31T23:59:59Z */ + 111427574399000, /* 5500-12-31T23:59:59Z */ + 136988668799000, /* 6310-12-31T23:59:59Z */ + 139828895999000, /* 6400-12-31T23:59:59Z */ + 169839503999000, /* 7351-12-31T23:59:59Z */ + 171385804799000, /* 7400-12-31T23:59:59Z */ + 190320019199000, /* 8000-12-31T23:59:59Z */ + 193475692799000, /* 8100-12-31T23:59:59Z */ + 242515209599000, /* 9654-12-31T23:59:59Z */ + 250219065599000, /* 9899-02-15T23:59:59Z */ + }; + for (auto notBefore : test_vector_not_before_millis) { + uint64_t notAfter = notBefore + 378691200000 /* 12 years milliseconds*/; + ASSERT_EQ(ErrorCode::OK, + GenerateKey(AuthorizationSetBuilder() + .RsaSigningKey(2048, 65537) + .Digest(Digest::NONE) + .Padding(PaddingMode::NONE) + .Authorization(TAG_CERTIFICATE_NOT_BEFORE, notBefore) + .Authorization(TAG_CERTIFICATE_NOT_AFTER, notAfter), + &key_blob, &key_characteristics)); + ASSERT_GT(cert_chain_.size(), 0); - X509_Ptr cert(parse_cert_blob(cert_chain_[0].encodedCertificate)); - ASSERT_TRUE(!!cert.get()); + X509_Ptr cert(parse_cert_blob(cert_chain_[0].encodedCertificate)); + ASSERT_TRUE(!!cert.get()); - const ASN1_TIME* not_before = X509_get0_notBefore(cert.get()); - ASSERT_NE(not_before, nullptr); - time_t not_before_time; - ASSERT_EQ(ASN1_TIME_to_time_t(not_before, ¬_before_time), 1); - EXPECT_EQ(not_before_time, 1183806000); + const ASN1_TIME* not_before = X509_get0_notBefore(cert.get()); + ASSERT_NE(not_before, nullptr); + time_t not_before_time; + ASSERT_EQ(ASN1_TIME_to_time_t(not_before, ¬_before_time), 1); + EXPECT_EQ(not_before_time, (notBefore / 1000)); - const ASN1_TIME* not_after = X509_get0_notAfter(cert.get()); - ASSERT_NE(not_after, nullptr); - time_t not_after_time; - ASSERT_EQ(ASN1_TIME_to_time_t(not_after, ¬_after_time), 1); - EXPECT_EQ(not_after_time, 1916049600); + const ASN1_TIME* not_after = X509_get0_notAfter(cert.get()); + ASSERT_NE(not_after, nullptr); + time_t not_after_time; + ASSERT_EQ(ASN1_TIME_to_time_t(not_after, ¬_after_time), 1); + EXPECT_EQ(not_after_time, (notAfter / 1000)); + } } /* -- GitLab From 661481edf1f2fb4d84b29b1ab3781a211683c4b5 Mon Sep 17 00:00:00 2001 From: Lais Andrade Date: Mon, 12 Feb 2024 10:33:09 +0000 Subject: [PATCH 338/418] Remove uses of std::rand() from vibrator VTS tests Make vibrator VTS tests deterministic by removing all uses of std::rand() from HAL input values used in test. Rely on max supported values instead. Fix: 324840028 Test: atest VtsHalVibratorTargetTest Change-Id: Id40fb5a86238226feec9affff631bab37383f26b --- .../aidl/vts/VtsHalVibratorTargetTest.cpp | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp b/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp index 2c6add1253..6c6846f636 100644 --- a/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp +++ b/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp @@ -447,13 +447,14 @@ TEST_P(VibratorAidl, ComposeValidPrimitives) { std::vector composite; - for (auto primitive : supported) { + for (int i = 0; i < supported.size(); i++) { + auto primitive = supported[i]; + float t = static_cast(i + 1) / supported.size(); CompositeEffect effect; - effect.delayMs = std::rand() % (maxDelay + 1); + effect.delayMs = maxDelay * t; effect.primitive = primitive; - effect.scale = static_cast(std::rand()) / static_cast(RAND_MAX); - composite.emplace_back(effect); + effect.scale = t; if (composite.size() == maxSize) { break; @@ -534,19 +535,24 @@ TEST_P(VibratorAidl, ComposeDelayBoundary) { EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); std::vector composite(1); - CompositeEffect effect; + CompositeEffect& effect = composite[0]; - effect.delayMs = 1; effect.primitive = CompositePrimitive::CLICK; effect.scale = 1.0f; - std::fill(composite.begin(), composite.end(), effect); + effect.delayMs = 0; EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); EXPECT_TRUE(vibrator->off().isOk()); - effect.delayMs = maxDelay + 1; + effect.delayMs = 1; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); - std::fill(composite.begin(), composite.end(), effect); + effect.delayMs = maxDelay; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); + + effect.delayMs = maxDelay + 1; EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); } -- GitLab From 7f9c47a388b605fca92f5a1798e00c8e2af5db24 Mon Sep 17 00:00:00 2001 From: Henri Chataing Date: Fri, 9 Feb 2024 18:20:50 +0000 Subject: [PATCH 339/418] blueooth/audio/aidl/default: Disable GetProviderInfo This implementation of the HAL is used by pixel devices. The implementation of GetProviderInfo is test only Bug: 324570010 Test: TreeHugger Change-Id: I67d17fb07c1288317290a0b1c4b07cd3be1e48c6 --- .../aidl/default/A2dpOffloadAudioProvider.cpp | 12 ++++++++++++ .../audio/aidl/default/BluetoothAudioProvider.h | 17 +++++++++++++++++ .../default/BluetoothAudioProviderFactory.cpp | 6 ++++++ 3 files changed, 35 insertions(+) diff --git a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp index c7761c5e76..1eb6a6d610 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp @@ -120,6 +120,12 @@ ndk::ScopedAStatus A2dpOffloadAudioProvider::onSessionReady( ndk::ScopedAStatus A2dpOffloadAudioProvider::parseA2dpConfiguration( const CodecId& codec_id, const std::vector& configuration, CodecParameters* codec_parameters, A2dpStatus* _aidl_return) { + if (!kEnableA2dpCodecExtensibility) { + // parseA2dpConfiguration must not be implemented if A2dp codec + // extensibility is not supported. + return ndk::ScopedAStatus::fromStatus(STATUS_UNKNOWN_TRANSACTION); + } + auto codec = codec_factory_.GetCodec(codec_id); if (!codec) { LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_) @@ -136,6 +142,12 @@ ndk::ScopedAStatus A2dpOffloadAudioProvider::getA2dpConfiguration( const std::vector& remote_a2dp_capabilities, const A2dpConfigurationHint& hint, std::optional* _aidl_return) { + if (!kEnableA2dpCodecExtensibility) { + // getA2dpConfiguration must not be implemented if A2dp codec + // extensibility is not supported. + return ndk::ScopedAStatus::fromStatus(STATUS_UNKNOWN_TRANSACTION); + } + *_aidl_return = std::nullopt; A2dpConfiguration avdtp_configuration; diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProvider.h b/bluetooth/audio/aidl/default/BluetoothAudioProvider.h index 2c21440ab2..866eaebad6 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProvider.h +++ b/bluetooth/audio/aidl/default/BluetoothAudioProvider.h @@ -35,6 +35,23 @@ namespace hardware { namespace bluetooth { namespace audio { +/// Enable flag for the reference implementation for A2dp Codec +/// Extensibility. +/// +/// A2dp Codec extensibility cannot be enabled until the following +/// requirements are fulfilled. +/// +/// 1. The Bluetooth controller must support the HCI Requirements +/// v1.04 or later, and must support the vendor HCI command +/// A2DP Offload Start (v2), A2DP Offload Stop (v2) as indicated +/// by the field a2dp_offload_v2 of the vendor capabilities. +/// +/// 2. The implementation of the provider must be completed with +/// DSP configuration for streaming. +enum : bool { + kEnableA2dpCodecExtensibility = false, +}; + class BluetoothAudioProvider : public BnBluetoothAudioProvider { public: BluetoothAudioProvider(); diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp index c7c6e6d6fc..584640b232 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp +++ b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp @@ -159,6 +159,12 @@ ndk::ScopedAStatus BluetoothAudioProviderFactory::getProviderInfo( if (session_type == SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH || session_type == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH) { + if (!kEnableA2dpCodecExtensibility) { + // Implementing getProviderInfo equates supporting + // A2dp codec extensibility. + return ndk::ScopedAStatus::fromStatus(STATUS_UNKNOWN_TRANSACTION); + } + auto& provider_info = _aidl_return->emplace(); provider_info.name = a2dp_offload_codec_factory_.name; -- GitLab From a4a73461c2e5244b701cd0ba1ce959d2ed0dc95d Mon Sep 17 00:00:00 2001 From: Pawan Wagh Date: Fri, 9 Feb 2024 23:44:17 +0000 Subject: [PATCH 340/418] Downgrade fatal log on host to error Fuzzer is breaking due to fatal log for host. Downgrade it to error. Test: m android.hardware.neuralnetworks-service.example_fuzzer && out/host/linux-x86/fuzz/x86_64/android.hardware.neuralnetworks-service.example_fuzzer/android.hardware.neuralnetworks-service.example_fuzzer Bug: 312902296 Change-Id: I7013ed14f6644d0459929380202de45f92575cf9 --- neuralnetworks/aidl/utils/src/Conversions.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/neuralnetworks/aidl/utils/src/Conversions.cpp b/neuralnetworks/aidl/utils/src/Conversions.cpp index 47c72b47af..9f920bb122 100644 --- a/neuralnetworks/aidl/utils/src/Conversions.cpp +++ b/neuralnetworks/aidl/utils/src/Conversions.cpp @@ -421,7 +421,7 @@ GeneralResult unvalidatedConvert(const aidl_hal::Memory& memory) { return createSharedMemoryFromAHWB(ahwb, /*takeOwnership=*/true); #else // __ANDROID__ - LOG(FATAL) << "GeneralResult unvalidatedConvert(const aidl_hal::Memory& " + LOG(ERROR) << "GeneralResult unvalidatedConvert(const aidl_hal::Memory& " "memory): Not Available on Host Build"; return NN_ERROR() << "createFromHandle failed"; #endif // __ANDROID__ @@ -732,7 +732,7 @@ nn::GeneralResult unvalidatedConvert(const nn::Memory::HardwareBuffer& m }; return Memory::make(std::move(hardwareBuffer)); #else // __ANDROID__ - LOG(FATAL) << "nn::GeneralResult unvalidatedConvert(const nn::Memory::HardwareBuffer& " + LOG(ERROR) << "nn::GeneralResult unvalidatedConvert(const nn::Memory::HardwareBuffer& " "memory): Not Available on Host Build"; (void)memory; return (NN_ERROR() << "unvalidatedConvert failed").operator nn::GeneralResult(); -- GitLab From c3c7cf4a654414f8b29970b9cdbfbf85be046183 Mon Sep 17 00:00:00 2001 From: Sunil Ravi Date: Mon, 12 Feb 2024 18:57:22 +0000 Subject: [PATCH 341/418] Add VTS test for addGroupWithConfigurationParams Bug: 322815584 Test: atest VtsHalWifiSupplicantP2pIfaceTargetTest Change-Id: I288439d461fe0d710489d16daf5e888d0f00f71f --- .../supplicant_p2p_iface_aidl_test.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp index 69a8919ac1..82e31282eb 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp @@ -35,6 +35,7 @@ using aidl::android::hardware::wifi::supplicant::IfaceType; using aidl::android::hardware::wifi::supplicant::ISupplicant; using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface; using aidl::android::hardware::wifi::supplicant::MiracastMode; +using aidl::android::hardware::wifi::supplicant::P2pAddGroupConfigurationParams; using aidl::android::hardware::wifi::supplicant::P2pConnectInfo; using aidl::android::hardware::wifi::supplicant::P2pCreateGroupOwnerInfo; using aidl::android::hardware::wifi::supplicant::P2pDeviceFoundEventParams; @@ -552,6 +553,27 @@ TEST_P(SupplicantP2pIfaceAidlTest, CreateGroupOwner) { EXPECT_TRUE(p2p_iface_->createGroupOwner(info).isOk()); } +/* + * AddGroupWithConfigurationParams + */ +TEST_P(SupplicantP2pIfaceAidlTest, AddGroupWithConfigurationParams) { + if (interface_version_ < 3) { + GTEST_SKIP() << "addGroupWithConfigurationParams is available as of Supplicant V3"; + } + + P2pAddGroupConfigurationParams params; + params.ssid = kTestSsid; + params.passphrase = kTestPassphrase; + params.isPersistent = kTestGroupPersistent; + params.frequencyMHzOrBand = kTestGroupFreq; + params.goInterfaceAddress = vecToArrayMacAddr(kTestZeroMacAddr); + params.joinExistingGroup = kTestGroupIsJoin; + params.keyMgmtMask = 0; + params.vendorData = kTestVendorDataOptional; + + EXPECT_TRUE(p2p_iface_->addGroupWithConfigurationParams(params).isOk()); +} + /* * Find */ -- GitLab From ed44150e862fd92823f72dc6045c8bd254899208 Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 15 Dec 2023 16:05:31 -0800 Subject: [PATCH 342/418] Add program list test for default bcradio HAL Added unit tests for methods related to program list updates in the default AIDL broadcast radio HAL implementation and the corresponding mock tuner callback methods. Bug: 316630344 Test: atest DefaultBroadcastRadioHalTestCase Change-Id: I0bde2b9cc376315320521a1d13ec521781a77cca --- .../test/DefaultBroadcastRadioHalTest.cpp | 73 ++++++++++++++++--- .../test/MockBroadcastRadioCallback.cpp | 22 +++++- .../default/test/MockBroadcastRadioCallback.h | 3 + 3 files changed, 84 insertions(+), 14 deletions(-) diff --git a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp index ad4c6ffd5a..cca4b8c586 100644 --- a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp +++ b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp @@ -132,6 +132,37 @@ class DefaultBroadcastRadioHalTest : public testing::Test { return false; } + std::optional getProgramList() { + ProgramFilter emptyFilter = {}; + return getProgramList(emptyFilter); + } + + std::optional getProgramList(const ProgramFilter& filter) { + mTunerCallback->reset(); + + auto startResult = mBroadcastRadioHal->startProgramListUpdates(filter); + + EXPECT_TRUE(startResult.isOk()); + + if (!startResult.isOk()) { + return std::nullopt; + } + EXPECT_TRUE(mTunerCallback->waitProgramReady()); + + auto stopResult = mBroadcastRadioHal->stopProgramListUpdates(); + + EXPECT_TRUE(stopResult.isOk()); + + return mTunerCallback->getProgramList(); + } + + void switchToFmBand() { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + } + std::shared_ptr mBroadcastRadioHal; std::shared_ptr mTunerCallback; }; @@ -326,10 +357,7 @@ TEST_F(DefaultBroadcastRadioHalTest, StepDownFromLowerBound) { } TEST_F(DefaultBroadcastRadioHalTest, StepWithoutTunerCallback) { - ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); - mTunerCallback->reset(); - ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); - verifyUpdatedProgramInfo(kFmSel1); + switchToFmBand(); mBroadcastRadioHal->unsetTunerCallback(); auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false); @@ -399,10 +427,7 @@ TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithSkipSubchannel) { } TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithFirstProgramInProgramList) { - ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); - mTunerCallback->reset(); - ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); - verifyUpdatedProgramInfo(kFmSel1); + switchToFmBand(); auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ true); @@ -411,10 +436,7 @@ TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithFirstProgramInProgramList) { } TEST_F(DefaultBroadcastRadioHalTest, SeekWithoutTunerCallback) { - ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); - mTunerCallback->reset(); - ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); - verifyUpdatedProgramInfo(kFmSel1); + switchToFmBand(); mBroadcastRadioHal->unsetTunerCallback(); auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ true); @@ -433,4 +455,31 @@ TEST_F(DefaultBroadcastRadioHalTest, Cancel) { mTunerCallback->reset(); } +TEST_F(DefaultBroadcastRadioHalTest, StartProgramListUpdatesWithEmptyFilter) { + switchToFmBand(); + + auto programList = getProgramList(); + + ASSERT_TRUE(programList.has_value()); + for (auto it = programList->begin(); it != programList->end(); it++) { + EXPECT_EQ(utils::getBand(utils::getAmFmFrequency(it->selector)), utils::FrequencyBand::FM); + } +} + +TEST_F(DefaultBroadcastRadioHalTest, StartProgramListUpdatesWithAmFmFilter) { + ProgramFilter amFmFilter = {.identifierTypes = {IdentifierType::AMFM_FREQUENCY_KHZ}, + .identifiers = {}, + .includeCategories = false, + .excludeModifications = false}; + switchToFmBand(); + + auto programList = getProgramList(amFmFilter); + + ASSERT_TRUE(programList.has_value()); + for (auto it = programList->begin(); it != programList->end(); it++) { + EXPECT_TRUE(utils::hasId(it->selector, IdentifierType::AMFM_FREQUENCY_KHZ)); + EXPECT_EQ(utils::getBand(utils::getAmFmFrequency(it->selector)), utils::FrequencyBand::FM); + } +} + } // namespace aidl::android::hardware::broadcastradio diff --git a/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp index 48f65fc9d8..963f8bf322 100644 --- a/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp +++ b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp @@ -49,8 +49,16 @@ ScopedAStatus MockBroadcastRadioCallback::onCurrentProgramInfoChanged(const Prog return ndk::ScopedAStatus::ok(); } -ScopedAStatus MockBroadcastRadioCallback::onProgramListUpdated( - [[maybe_unused]] const ProgramListChunk& chunk) { +ScopedAStatus MockBroadcastRadioCallback::onProgramListUpdated(const ProgramListChunk& chunk) { + { + std::lock_guard lk(mLock); + updateProgramList(chunk, &mProgramList); + } + + if (chunk.complete) { + mOnProgramListReadyFlag.notify(); + } + return ndk::ScopedAStatus::ok(); } @@ -76,8 +84,13 @@ bool MockBroadcastRadioCallback::waitOnCurrentProgramInfoChangedCallback() { return mOnCurrentProgramInfoChangedFlag.wait(); } +bool MockBroadcastRadioCallback::waitProgramReady() { + return mOnProgramListReadyFlag.wait(); +} + void MockBroadcastRadioCallback::reset() { mOnCurrentProgramInfoChangedFlag.reset(); + mOnProgramListReadyFlag.reset(); } bool MockBroadcastRadioCallback::isTunerFailed() { @@ -90,4 +103,9 @@ ProgramInfo MockBroadcastRadioCallback::getCurrentProgramInfo() { return mCurrentProgramInfo; } +utils::ProgramInfoSet MockBroadcastRadioCallback::getProgramList() { + std::lock_guard lk(mLock); + return mProgramList; +} + } // namespace aidl::android::hardware::broadcastradio diff --git a/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h index 2ae03e3f16..4415842a9e 100644 --- a/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h +++ b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h @@ -49,10 +49,12 @@ class MockBroadcastRadioCallback final : public BnTunerCallback { ScopedAStatus onConfigFlagUpdated(ConfigFlag in_flag, bool in_value) override; bool waitOnCurrentProgramInfoChangedCallback(); + bool waitProgramReady(); bool isTunerFailed(); void reset(); ProgramInfo getCurrentProgramInfo(); + utils::ProgramInfoSet getProgramList(); private: class CallbackFlag final { @@ -98,6 +100,7 @@ class MockBroadcastRadioCallback final : public BnTunerCallback { ProgramInfo mCurrentProgramInfo GUARDED_BY(mLock); utils::ProgramInfoSet mProgramList GUARDED_BY(mLock); CallbackFlag mOnCurrentProgramInfoChangedFlag = CallbackFlag(IBroadcastRadio::TUNER_TIMEOUT_MS); + CallbackFlag mOnProgramListReadyFlag = CallbackFlag(IBroadcastRadio::LIST_COMPLETE_TIMEOUT_MS); }; } // namespace aidl::android::hardware::broadcastradio -- GitLab From c7f5c2dd8389ddf84cb4836ae70038d1208a6289 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Tue, 13 Feb 2024 01:59:55 +0000 Subject: [PATCH 343/418] Effect AIDL: add Spatializer default implementation to Cuttlefish Bug: 273373363 Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit Change-Id: Ib49d62c61de831c8147c935799d22be78950488f --- audio/aidl/default/apex/com.android.hardware.audio/Android.bp | 1 + audio/aidl/default/spatializer/Android.bp | 2 +- audio/aidl/default/spatializer/SpatializerSw.cpp | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp index 9c91e27220..2ece7a1929 100644 --- a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp +++ b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp @@ -38,6 +38,7 @@ apex { "libpreprocessingaidl", "libpresetreverbsw", "libreverbaidl", + "libspatializersw", "libvirtualizersw", "libvisualizeraidl", "libvolumesw", diff --git a/audio/aidl/default/spatializer/Android.bp b/audio/aidl/default/spatializer/Android.bp index 400629eb9b..2c229fe363 100644 --- a/audio/aidl/default/spatializer/Android.bp +++ b/audio/aidl/default/spatializer/Android.bp @@ -35,6 +35,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/spatializer/SpatializerSw.cpp b/audio/aidl/default/spatializer/SpatializerSw.cpp index 6d3c4bd16e..ef86ddb2a1 100644 --- a/audio/aidl/default/spatializer/SpatializerSw.cpp +++ b/audio/aidl/default/spatializer/SpatializerSw.cpp @@ -108,6 +108,8 @@ ndk::ScopedAStatus SpatializerSw::setParameterSpecific(const Parameter::Specific ndk::ScopedAStatus SpatializerSw::getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) { + RETURN_IF(!mContext, EX_NULL_POINTER, "nullContext"); + auto tag = id.getTag(); RETURN_IF(Parameter::Id::spatializerTag != tag, EX_ILLEGAL_ARGUMENT, "wrongIdTag"); auto spatializerId = id.get(); -- GitLab From aecb0333b03b6235f4c97d111bcc219f1adddfb1 Mon Sep 17 00:00:00 2001 From: Ryan Prichard Date: Mon, 12 Feb 2024 20:15:42 -0800 Subject: [PATCH 344/418] Replace std::basic_string with std::vector In newer versions of libc++, std::char_traits is no longer defined for non-character types, and a result, std::basic_string is also no longer defined. See https://discourse.llvm.org/t/deprecating-std-string-t-for-non-character-t/66779. Bug: 175635923 Test: make checkbuild Change-Id: Icb3937d8b1ff6dbe7e35e62f2e6cc1e2eb789121 --- keymaster/4.0/vts/functional/HmacKeySharingTest.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp b/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp index 1bff076859..a076438000 100644 --- a/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp +++ b/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp @@ -51,7 +51,7 @@ class HmacKeySharingTest : public KeymasterHidlTest { }; using KeymasterVec = std::vector>; - using ByteString = std::basic_string; + using ByteString = std::vector; // using NonceVec = std::vector; GetParamsResult getHmacSharingParameters(IKeymasterDevice& keymaster) { @@ -98,7 +98,7 @@ class HmacKeySharingTest : public KeymasterHidlTest { std::vector copyNonces(const hidl_vec& paramsVec) { std::vector nonces; for (auto& param : paramsVec) { - nonces.emplace_back(param.nonce.data(), param.nonce.size()); + nonces.emplace_back(param.nonce.data(), param.nonce.data() + param.nonce.size()); } return nonces; } -- GitLab From 01cf20d711da2c9060d85945d25bb8ae99c6b7e0 Mon Sep 17 00:00:00 2001 From: Ryan Prichard Date: Mon, 12 Feb 2024 20:31:10 -0800 Subject: [PATCH 345/418] Replace std::basic_string_view with std::span In newer versions of libc++, std::char_traits is no longer defined for non-character types, and a result, std::basic_string_view is also no longer defined. See https://discourse.llvm.org/t/deprecating-std-string-t-for-non-character-t/66779. Bug: 175635923 Test: libkeymint_remote_prov_support_test Change-Id: Ic373e0a3c081b996d4c81a9783103ae6406833f7 --- .../keymint/support/remote_prov_utils_test.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/security/keymint/support/remote_prov_utils_test.cpp b/security/keymint/support/remote_prov_utils_test.cpp index 630f7bba56..89469f11ad 100644 --- a/security/keymint/support/remote_prov_utils_test.cpp +++ b/security/keymint/support/remote_prov_utils_test.cpp @@ -14,20 +14,23 @@ * limitations under the License. */ -#include "cppbor.h" -#include "keymaster/cppcose/cppcose.h" #include #include +#include #include -#include #include #include #include +#include #include #include #include #include +#include +#include +#include + namespace aidl::android::hardware::security::keymint::remote_prov { namespace { @@ -36,7 +39,11 @@ using ::keymaster::kStatusFailed; using ::keymaster::kStatusInvalidEek; using ::keymaster::StatusOr; using ::testing::ElementsAreArray; -using byte_view = std::basic_string_view; +using byte_view = std::span; + +inline bool equal_byte_views(const byte_view& view1, const byte_view& view2) { + return std::equal(view1.begin(), view1.end(), view2.begin(), view2.end()); +} struct KeyInfoEcdsa { CoseKeyCurve curve; @@ -44,7 +51,8 @@ struct KeyInfoEcdsa { byte_view pubKeyY; bool operator==(const KeyInfoEcdsa& other) const { - return curve == other.curve && pubKeyX == other.pubKeyX && pubKeyY == other.pubKeyY; + return curve == other.curve && equal_byte_views(pubKeyX, other.pubKeyX) && + equal_byte_views(pubKeyY, other.pubKeyY); } }; -- GitLab From 042570413337de3d59968fe746bf86d640db13e5 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Tue, 13 Feb 2024 21:36:10 +0900 Subject: [PATCH 346/418] Use new API to load mapper AServiceManager_getDeclaredPassthroughHal() can replace android_load_sphal_library(). Bug: 325018681 Test: VtsHalGraphicsMapperStableC_TargetTest Change-Id: I004355a9df8bd1ba4f9fb00149d7fddb9ac9f499 --- .../stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp b/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp index b329de26a3..1e0c427715 100644 --- a/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp +++ b/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp @@ -166,7 +166,8 @@ class GraphicsTestsBase { auto status = mAllocator->getIMapperLibrarySuffix(&mapperSuffix); ASSERT_TRUE(status.isOk()) << "Failed to get IMapper library suffix"; std::string lib_name = "mapper." + mapperSuffix + ".so"; - void* so = android_load_sphal_library(lib_name.c_str(), RTLD_LOCAL | RTLD_NOW); + void* so = AServiceManager_openDeclaredPassthroughHal("mapper", mapperSuffix.c_str(), + RTLD_LOCAL | RTLD_NOW); ASSERT_NE(nullptr, so) << "Failed to load " << lib_name; mIMapperLoader = (AIMapper_loadIMapperFn)dlsym(so, "AIMapper_loadIMapper"); ASSERT_NE(nullptr, mIMapperLoader) << "AIMapper_locaIMapper missing from " << lib_name; -- GitLab From 942eb1cdadd57d5cd9ee75cd54c56866f8689d8f Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Tue, 13 Feb 2024 11:58:57 -0800 Subject: [PATCH 347/418] Migrate bcradio HAL test to new test owner model Bug: 324978397 Test: build okay Change-Id: I9c62d40c590f7c81381cfa9668ae34525308dc1f --- broadcastradio/aidl/default/test/Android.bp | 1 + broadcastradio/common/utilsaidl/Android.bp | 1 + 2 files changed, 2 insertions(+) diff --git a/broadcastradio/aidl/default/test/Android.bp b/broadcastradio/aidl/default/test/Android.bp index 9e1b89dbab..a33fb70388 100644 --- a/broadcastradio/aidl/default/test/Android.bp +++ b/broadcastradio/aidl/default/test/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_aaos_framework", default_applicable_licenses: ["Android-Apache-2.0"], } diff --git a/broadcastradio/common/utilsaidl/Android.bp b/broadcastradio/common/utilsaidl/Android.bp index 4814778cd6..e3bdfdda22 100644 --- a/broadcastradio/common/utilsaidl/Android.bp +++ b/broadcastradio/common/utilsaidl/Android.bp @@ -20,6 +20,7 @@ package { // all of the 'license_kinds' from "hardware_interfaces_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 + default_team: "trendy_team_aaos_framework", default_applicable_licenses: ["hardware_interfaces_license"], } -- GitLab From 9f215110bf524e3bf1d2fb591a724623e11423bc Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Mon, 12 Feb 2024 19:56:37 +0900 Subject: [PATCH 348/418] Update VTS to exempt low-power TVs from APF This change updates the VTS to exempt TV devices that consume <= 2W of standby power from APF requirements. This update aligns with latest GTVS policy. Bug: 306587099 Test: TH Change-Id: Ifec617520db20d1ef61f1eca63b7160d9191f446 --- .../functional/wifi_sta_iface_aidl_test.cpp | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) 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 fa7149ff55..e456e498c2 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -74,7 +74,17 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { return testing::deviceSupportsFeature("com.google.android.tv.mdns_offload"); } - // Detected panel TV device by using ro.oem.key1 property. + bool doesDeviceSupportFullNetworkingUnder2w() { + return testing::deviceSupportsFeature("com.google.android.tv.full_networking_under_2w"); + } + + // Detect TV devices. + bool isTvDevice() { + return testing::deviceSupportsFeature("android.software.leanback") || + testing::deviceSupportsFeature("android.hardware.type.television"); + } + + // Detect Panel TV devices by using ro.oem.key1 property. // https://docs.partner.android.com/tv/build/platform/props-vars/ro-oem-key1 bool isPanelTvDevice() { const std::string oem_key1 = getPropertyString("ro.oem.key1"); @@ -135,10 +145,23 @@ TEST_P(WifiStaIfaceAidlTest, GetFeatureSet) { */ // @VsrTest = 5.3.12 TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { - // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi - // chipset does not have sufficient RAM to do so. - if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { - GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; + const std::string oem_key1 = getPropertyString("ro.oem.key1"); + if (isTvDevice()) { + // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi + // chipset does not have sufficient RAM to do so. + if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { + GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; + } + // For TV devices declaring the + // com.google.android.tv.full_networking_under_2w feature, this indicates + // the device can meet the <= 2W standby power requirement while + // continuously processing network packets on the CPU, even in standby mode. + // In these cases, APF support is strongly recommended rather than being + // mandatory. + if (doesDeviceSupportFullNetworkingUnder2w()) { + GTEST_SKIP() << "TV Device meets the <= 2W standby power demand requirement. It is not " + "required to support APF."; + } } int vendor_api_level = property_get_int32("ro.vendor.api_level", 0); // Before VSR 14, APF support is optional. -- GitLab From 4784c0b0b3a98c302f9ca964f1d2c00d40762c0b Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Wed, 14 Feb 2024 09:48:00 +0900 Subject: [PATCH 349/418] Use new API to load mapper AServiceManager_getDeclaredPassthroughHal() can replace android_load_sphal_library(). Bug: 316051788 Test: VtsHalGraphicsAllocatorAidl_TargetTest Change-Id: I50021790693c3ec2bce8cb4af96b0d6ee276b2e7 --- .../aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/graphics/allocator/aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp b/graphics/allocator/aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp index 4778020c6e..0430ea7264 100644 --- a/graphics/allocator/aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp +++ b/graphics/allocator/aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp @@ -144,7 +144,8 @@ class GraphicsTestsBase { auto status = mAllocator->getIMapperLibrarySuffix(&mapperSuffix); ASSERT_TRUE(status.isOk()); std::string lib_name = "mapper." + mapperSuffix + ".so"; - void* so = android_load_sphal_library(lib_name.c_str(), RTLD_LOCAL | RTLD_NOW); + void* so = AServiceManager_openDeclaredPassthroughHal("mapper", mapperSuffix.c_str(), + RTLD_LOCAL | RTLD_NOW); ASSERT_NE(nullptr, so) << "Failed to load " << lib_name; auto loadIMapper = (AIMapper_loadIMapperFn)dlsym(so, "AIMapper_loadIMapper"); ASSERT_NE(nullptr, loadIMapper) << "AIMapper_locaIMapper missing from " << lib_name; -- GitLab From e9712ac7f1b8e6263d589ad52bf68c3e041c1a88 Mon Sep 17 00:00:00 2001 From: Ronish Kalia Date: Wed, 14 Feb 2024 14:23:20 +0000 Subject: [PATCH 350/418] [DON'T BLOCK] Test ownership migration rules This CL is created as a best effort to migrate test targets to the new android ownership model. If you find incorrect or unnecessary attribution in this CL, please create a separate CL to fix that. For more details please refer to the link below, Bug: 304529413 Test: N/A Change-Id: Ia656d4d37c9219c4ef25fb6739c7410a0ded216b --- wifi/common/aidl/Android.bp | 1 + 1 file changed, 1 insertion(+) diff --git a/wifi/common/aidl/Android.bp b/wifi/common/aidl/Android.bp index 11acb4ff58..a9418691cd 100644 --- a/wifi/common/aidl/Android.bp +++ b/wifi/common/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" -- GitLab From 1d762b4e8661aae603077d17bdfa958c84c91e8c Mon Sep 17 00:00:00 2001 From: John Reck Date: Wed, 7 Feb 2024 14:43:22 -0500 Subject: [PATCH 351/418] Fix VENDOR_MASK constant It's not supposed to be sign-extended as that blocks off the entire 28-64 bit range instead of the 28-31 bit range as indicated in the comment As this value is correct in HIDL and in the docs, do a history re-write of the AIDL value to match the intended (and previous) values. Test: make Bug: 323484008 Change-Id: I0b373576a366c853c87109a9b24ec9f8d9cbdb4d --- .../aidl/aidl_api/android.hardware.graphics.common/1/.hash | 1 + .../1/android/hardware/graphics/common/BufferUsage.aidl | 2 +- .../aidl/aidl_api/android.hardware.graphics.common/2/.hash | 1 + .../2/android/hardware/graphics/common/BufferUsage.aidl | 2 +- .../aidl/aidl_api/android.hardware.graphics.common/3/.hash | 1 + .../3/android/hardware/graphics/common/BufferUsage.aidl | 2 +- .../aidl/aidl_api/android.hardware.graphics.common/4/.hash | 1 + .../4/android/hardware/graphics/common/BufferUsage.aidl | 2 +- .../current/android/hardware/graphics/common/BufferUsage.aidl | 2 +- .../aidl/android/hardware/graphics/common/BufferUsage.aidl | 2 +- 10 files changed, 10 insertions(+), 6 deletions(-) diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/.hash index 66b5d134c5..babbf247ec 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/.hash +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/.hash @@ -1 +1,2 @@ f5bdf5724a941dc7e5e7d0ebe9dfe028f7bcc25f +71da13748094aa53237dd6eeac04f0f9add80aa1 diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/android/hardware/graphics/common/BufferUsage.aidl index 58eefc4e2c..cb5bc9effa 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/android/hardware/graphics/common/BufferUsage.aidl @@ -42,6 +42,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = 67108864, HW_IMAGE_ENCODER = 134217728, GPU_DATA_BUFFER = 16777216, - VENDOR_MASK = -268435456, + VENDOR_MASK = 4026531840, VENDOR_MASK_HI = -281474976710656, } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/.hash index 167ed0e300..54f8f32717 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/.hash +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/.hash @@ -1 +1,2 @@ bd2f5e2ab1d5112dfe982f64012e425f544c9d60 +4279f88ef38c8fdeea6797410b464ae29df34e72 diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/android/hardware/graphics/common/BufferUsage.aidl index b4ef4515c7..5e23bcc905 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/android/hardware/graphics/common/BufferUsage.aidl @@ -58,6 +58,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = 67108864, HW_IMAGE_ENCODER = 134217728, GPU_DATA_BUFFER = 16777216, - VENDOR_MASK = -268435456, + VENDOR_MASK = 4026531840, VENDOR_MASK_HI = -281474976710656, } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/.hash index dfda68f42d..53eb6bd996 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/.hash +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/.hash @@ -1 +1,2 @@ e7e8b0bd7cd27ab4f1998700ef19ebc82e022d87 +37aa15ac89ae27f3f89099d79609f5aaa1717de5 diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/android/hardware/graphics/common/BufferUsage.aidl index d3ab44f2ce..f91625f07d 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/android/hardware/graphics/common/BufferUsage.aidl @@ -60,6 +60,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = 67108864, HW_IMAGE_ENCODER = 134217728, FRONT_BUFFER = 4294967296, - VENDOR_MASK = -268435456, + VENDOR_MASK = 4026531840, VENDOR_MASK_HI = -281474976710656, } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/.hash index ef17b34926..fe20ff9d70 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/.hash +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/.hash @@ -1 +1,2 @@ 9bcf4b83485ce912dc39108201504f77b8c96cef +adb71c34ba271f87c6431845b310777c1e611ebf diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/android/hardware/graphics/common/BufferUsage.aidl index d42a6d57b8..52b2a56cb7 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/android/hardware/graphics/common/BufferUsage.aidl @@ -60,6 +60,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = (1 << 26) /* 67108864 */, HW_IMAGE_ENCODER = (1 << 27) /* 134217728 */, FRONT_BUFFER = (1L << 32) /* 4294967296 */, - VENDOR_MASK = (0xf << 28) /* -268435456 */, + VENDOR_MASK = (0xfL << 28) /* 4026531840 */, VENDOR_MASK_HI = ((1L * 0xffff) << 48) /* -281474976710656 */, } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/current/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/current/android/hardware/graphics/common/BufferUsage.aidl index d42a6d57b8..52b2a56cb7 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/current/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/current/android/hardware/graphics/common/BufferUsage.aidl @@ -60,6 +60,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = (1 << 26) /* 67108864 */, HW_IMAGE_ENCODER = (1 << 27) /* 134217728 */, FRONT_BUFFER = (1L << 32) /* 4294967296 */, - VENDOR_MASK = (0xf << 28) /* -268435456 */, + VENDOR_MASK = (0xfL << 28) /* 4026531840 */, VENDOR_MASK_HI = ((1L * 0xffff) << 48) /* -281474976710656 */, } diff --git a/graphics/common/aidl/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/android/hardware/graphics/common/BufferUsage.aidl index 0d1a094b36..7d39d95753 100644 --- a/graphics/common/aidl/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/android/hardware/graphics/common/BufferUsage.aidl @@ -150,7 +150,7 @@ enum BufferUsage { FRONT_BUFFER = 1L << 32, /** bits 28-31 are reserved for vendor extensions */ - VENDOR_MASK = 0xf << 28, + VENDOR_MASK = 0xfL << 28, /** bits 33-47 must be zero and are reserved for future versions */ /** bits 48-63 are reserved for vendor extensions */ -- GitLab From b8d8740cdf6b7216eda0ede4df2e84186d3a8973 Mon Sep 17 00:00:00 2001 From: Weston Carvalho Date: Wed, 10 May 2023 15:44:06 -0500 Subject: [PATCH 352/418] Create Secure Storage AIDL interface Test: mmm hardware/interfaces/staging/security/see/storage/aidl/ Bug: 278779487 Change-Id: I1aceb7fffcd9e8b60228d232cf1b610a07754ac0 --- staging/security/see/storage/aidl/Android.bp | 26 ++++ .../security/see/storage/CreationMode.aidl | 27 ++++ .../security/see/storage/DeleteOptions.aidl | 37 +++++ .../see/storage/FileAvailability.aidl | 25 ++++ .../security/see/storage/FileIntegrity.aidl | 33 +++++ .../security/see/storage/FileMode.aidl | 27 ++++ .../security/see/storage/FileProperties.aidl | 27 ++++ .../hardware/security/see/storage/IDir.aidl | 40 ++++++ .../hardware/security/see/storage/IFile.aidl | 95 +++++++++++++ .../security/see/storage/ISecureStorage.aidl | 47 +++++++ .../security/see/storage/IStorageSession.aidl | 129 ++++++++++++++++++ .../security/see/storage/OpenOptions.aidl | 51 +++++++ .../security/see/storage/ReadIntegrity.aidl | 41 ++++++ .../security/see/storage/RenameOptions.aidl | 41 ++++++ .../hardware/security/see/storage/Tamper.aidl | 28 ++++ 15 files changed, 674 insertions(+) create mode 100644 staging/security/see/storage/aidl/Android.bp create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/CreationMode.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/DeleteOptions.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/FileAvailability.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/FileIntegrity.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/FileMode.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/FileProperties.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/IDir.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/IFile.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/IStorageSession.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/OpenOptions.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/ReadIntegrity.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/RenameOptions.aidl create mode 100644 staging/security/see/storage/aidl/android/hardware/security/see/storage/Tamper.aidl diff --git a/staging/security/see/storage/aidl/Android.bp b/staging/security/see/storage/aidl/Android.bp new file mode 100644 index 0000000000..f669be820a --- /dev/null +++ b/staging/security/see/storage/aidl/Android.bp @@ -0,0 +1,26 @@ +package { + default_applicable_licenses: ["hardware_interfaces_license"], +} + +aidl_interface { + name: "android.hardware.security.see.storage", + unstable: true, + host_supported: true, + srcs: [ + "android/hardware/security/see/storage/*.aidl", + ], + backend: { + java: { + enabled: false, + }, + cpp: { + enabled: true, + }, + ndk: { + enabled: true, + }, + rust: { + enabled: true, + }, + }, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/CreationMode.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/CreationMode.aidl new file mode 100644 index 0000000000..1c65038745 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/CreationMode.aidl @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +enum CreationMode { + /** Returns an error if the file does not already exist. */ + NO_CREATE, + + /** Creates the file or returns an error if it already exists. */ + CREATE_EXCLUSIVE, + + /** Creates the file if it does not already exist. */ + CREATE, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/DeleteOptions.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/DeleteOptions.aidl new file mode 100644 index 0000000000..1a94eb293e --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/DeleteOptions.aidl @@ -0,0 +1,37 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.ReadIntegrity; + +parcelable DeleteOptions { + /** + * Set to acknowledge possible files tampering. + * + * If unacknowledged tampering is detected, the operation will fail with an ERR_FS_* + * service-specific code. + */ + ReadIntegrity readIntegrity = ReadIntegrity.NO_TAMPER; + + /** + * Allow writes to succeed while the filesystem is in the middle of an A/B update. + * + * If the A/B update fails, the operation will be rolled back. This rollback will not + * cause subsequent operations fail with any ERR_FS_* code nor will need to be + * acknowledged by setting the `readIntegrity`. + */ + boolean allowWritesDuringAbUpdate = false; +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileAvailability.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileAvailability.aidl new file mode 100644 index 0000000000..d33917090f --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileAvailability.aidl @@ -0,0 +1,25 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +/** Determines how early during the boot process file is able to be accessed. */ +enum FileAvailability { + /** Available before userdata is mounted, but after android has booted. */ + BEFORE_USERDATA, + + /** Available after userdata is mounted. */ + AFTER_USERDATA, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileIntegrity.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileIntegrity.aidl new file mode 100644 index 0000000000..1879b1680d --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileIntegrity.aidl @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +enum FileIntegrity { + /** REE may prevent operations, but cannot alter data once written. */ + TAMPER_PROOF_AT_REST, + + /** + * REE may alter written data, but changes will be detected and reported as + * an error on read. + */ + TAMPER_DETECT, + + /** + * REE may alter written data. Changes other than full filesystem resets will be detected and + * reported. + */ + TAMPER_DETECT_IGNORE_RESET, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileMode.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileMode.aidl new file mode 100644 index 0000000000..18a2eae3c8 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileMode.aidl @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +enum FileMode { + /** The file may only be read from. */ + READ_ONLY, + + /** The file may only be written to. */ + WRITE_ONLY, + + /** The file may be both read from and written to. */ + READ_WRITE, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileProperties.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileProperties.aidl new file mode 100644 index 0000000000..733b5b06fa --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileProperties.aidl @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.FileAvailability; +import android.hardware.security.see.storage.FileIntegrity; + +parcelable FileProperties { + FileIntegrity integrity = FileIntegrity.TAMPER_PROOF_AT_REST; + FileAvailability availability = FileAvailability.BEFORE_USERDATA; + + /** Whether the file is reset when user data is wiped. */ + boolean persistent; +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/IDir.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IDir.aidl new file mode 100644 index 0000000000..a0a9f3d25b --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IDir.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +/** The interface for an open directory */ +interface IDir { + /** + * Gets the next batch of filenames in this directory. + * + * Calling multiple times will return different results as the IDir iterates through all the + * files it contains. When all filenames have been returned, all successive calls will return an + * empty list. + * + * @maxCount: + * the maximum number of filenames to return. A @maxCount of 0 signifies no limit on the + * number of filenames returned. + * + * Returns: + * An ordered list of filenames. If @maxCount > 0, the length of the returned list will be + * less than or equal to @maxCount. + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * dir was opened with does not acknowledge + */ + @utf8InCpp String[] readNextFilenames(int maxCount); +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/IFile.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IFile.aidl new file mode 100644 index 0000000000..ff26aa4d01 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IFile.aidl @@ -0,0 +1,95 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.CreationMode; + +/** The interface for an open file */ +interface IFile { + /** + * Read bytes from this file. + * + * @size: + * the size (in bytes) of the segment to read. If @size is larger than the service's maximum + * read size, the call will return an error (EX_ILLEGAL_ARGUMENT). + * @offset: + * the offset (in bytes) at which to start reading + * + * Return: + * the sequence of bytes at [offset, offset + size) in the file + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + byte[] read(long size, long offset); + + /** + * Write the bytes in `buffer` to this file. + * + * @offset: + * the offset (in bytes) at which to start writing + * + * Return: + * the number of bytes written successfully + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + long write(long offset, in byte[] buffer); + + /** + * Reads this file's size. + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + long getSize(); + + /** + * Sets this file's size. + * + * Truncates the file if `new_size` is less than the current size. If `new_size` is greater than + * the current size, the file will be extended with zeroed data. + * + * @newSize: + * the file's new size + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + void setSize(long newSize); + + /** + * Renames this file. + * + * @destPath: + * the file's new path, relative to filesystem root + * @destCreateMode: + * controls creation behavior of the dest file + * + * May return service-specific errors: + * - ERR_NOT_FOUND if no file exists at @destPath and @destCreateMode is `NO_CREATE` + * - ERR_ALREADY_EXISTS if a file already exists at @destPath and @destCreateMode is + * `CREATE_EXCLUSIVE` + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + void rename(in @utf8InCpp String destPath, in CreationMode destCreateMode); +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl new file mode 100644 index 0000000000..be3c045522 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.FileProperties; +import android.hardware.security.see.storage.IStorageSession; + +/** + * Interface for the Secure Storage HAL + * + * Creates sessions which can be used to access storage. + */ +interface ISecureStorage { + const int ERR_UNSUPPORTED_PROPERTIES = 1; + const int ERR_NOT_FOUND = 2; + const int ERR_ALREADY_EXISTS = 3; + const int ERR_BAD_TRANSACTION = 4; + + const int ERR_FS_RESET = 5; + const int ERR_FS_ROLLED_BACK = 6; + const int ERR_FS_TAMPERED = 7; + + /** + * Starts a storage session for a filesystem. + * + * @properties: + * the minimum filesystem properties requested for the session. + * + * May return service-specific errors: + * - ERR_UNSUPPORTED_PROPERTIES if no filesystems exist which meet the minimum requested + * requirements + */ + IStorageSession startSession(in FileProperties properties); +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/IStorageSession.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IStorageSession.aidl new file mode 100644 index 0000000000..cd126b8a02 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IStorageSession.aidl @@ -0,0 +1,129 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.DeleteOptions; +import android.hardware.security.see.storage.IDir; +import android.hardware.security.see.storage.IFile; +import android.hardware.security.see.storage.OpenOptions; +import android.hardware.security.see.storage.ReadIntegrity; +import android.hardware.security.see.storage.RenameOptions; + +/** + * Interface for a Secure Storage session + * + * When the connection is opened, it will start a transaction and any changes made through this + * session or the interfaces this session returns will be added to this transaction's pending + * changes. Calling `CommitChanges`/`AbandonChanges` will commit/abandon these pending changes, and + * start a new, empty transaction. The interfaces this session returns _remain_ valid across + * transactions; it is not necessary, for example, to reopen a file after a commit. + * + * Any changes still pending when the session is dropped will be abandoned. + */ +interface IStorageSession { + /** + * Commits any pending changes made through this session to storage. + * + * The session will no longer have pending changes after this call returns. Files may then still + * be modified through this session to create another commit. + * + * May return service-specific errors: + * - ERR_BAD_TRANSACTION + */ + void commitChanges(); + + /** + * Abandons any pending changes made through this session. + * + * The session can then be reused to make new changes. + */ + void abandonChanges(); + + /** + * Opens a secure file for writing and/or reading. + * + * Changes made to the file are part of the current transaction. Dropping this session + * invalidates the returned `IFile` interface + * + * @filePath: + * path to the file, relative to filesystem root + * @options: + * options controlling opening behavior + * + * May return service-specific errors: + * - ERR_NOT_FOUND + * - ERR_ALREADY_EXISTS + * - ERR_FS_* if the filesystem has been tampered with in a way that @options.readIntegrity + * does not acknowledge + */ + IFile openFile(in @utf8InCpp String filePath, in OpenOptions options); + + /** + * Delete a file. + * + * @filePath: + * path to the file, relative to filesystem root + * @options: + * options controlling deletion behavior + * + * May return service-specific errors: + * - ERR_NOT_FOUND + * - ERR_FS_* if the filesystem has been tampered with in a way that @options.readIntegrity + * does not acknowledge + */ + void deleteFile(in @utf8InCpp String filePath, in DeleteOptions options); + + /** + * Renames an existing file. + * + * The file must not already be opened. (If it is, use `IFile::rename`.) + * + * @currentPath: + * path to the file, relative to filesystem root + * @destPath: + * the file's new path, relative to filesystem root + * @options: + * options controlling rename behavior + * + * May return service-specific errors: + * - ERR_NOT_FOUND if no file exists at @currentPath, or if @options.destCreateMode is + * `NO_CREATE` and no file exists at @destPath + * - ERR_ALREADY_EXISTS if @options.destCreateMode is `CREATE_EXCLUSIVE` and a file exists at + * @destPath + * - ERR_FS_* if the filesystem has been tampered with in a way that @options.readIntegrity + * does not acknowledge + */ + void renameFile(in @utf8InCpp String currentPath, in @utf8InCpp String destPath, + in RenameOptions options); + + /** + * Opens a directory from a filesystem with the given properties. + * + * Dropping this session invalidates the returned `IDir` interface. + * + * @path: + * path to the directory, relative to filesystem root + * @readIntegrity: + * allow opening (and subsequent read/write operations) despite possible tampering for the + * directory + * + * May return service-specific errors: + * - ERR_NOT_FOUND + * - ERR_FS_* if the filesystem has been tampered with in a way that @readIntegrity does not + * acknowledge + */ + IDir openDir(in @utf8InCpp String path, in ReadIntegrity readIntegrity); +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/OpenOptions.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/OpenOptions.aidl new file mode 100644 index 0000000000..997ca62e60 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/OpenOptions.aidl @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.CreationMode; +import android.hardware.security.see.storage.FileMode; +import android.hardware.security.see.storage.ReadIntegrity; + +parcelable OpenOptions { + /** Controls creation behavior of the to-be-opened file. See `CreationMode` docs for details. */ + CreationMode createMode = CreationMode.NO_CREATE; + + /** Controls access behavior of the to-be-opened file. See `FileMode` docs for details. */ + FileMode accessMode = FileMode.READ_WRITE; + + /** + * Set to acknowledge possible files tampering. + * + * If unacknowledged tampering is detected, the operation will fail with an ERR_FS_* + * service-specific code. + */ + ReadIntegrity readIntegrity = ReadIntegrity.NO_TAMPER; + + /** + * If this file already exists, discard existing content and open + * it as a new file. No semantic change if the file does not exist. + */ + boolean truncateOnOpen; + + /** + * Allow writes to succeed while the filesystem is in the middle of an A/B update. + * + * If the A/B update fails, the operation will be rolled back. This rollback will not + * cause subsequent operations fail with any ERR_FS_* code nor will need to be + * acknowledged by setting the `readIntegrity`. + */ + boolean allowWritesDuringAbUpdate = false; +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/ReadIntegrity.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ReadIntegrity.aidl new file mode 100644 index 0000000000..cc0e4f998d --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ReadIntegrity.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +enum ReadIntegrity { + /** + * Return an error on reads if any REE alteration of the written data + * has been detected. + */ + NO_TAMPER, + + /** + * Return an error on reads if any REE alteration other than a reset + * has been detected. + */ + IGNORE_RESET, + + /** + * Return an error if any REE alteration other than a rollback to a + * valid checkpoint has been detected. (What makes a checkpoint valid is + * implementation defined; an implementation might take a checkpoint on its + * first post-factory boot. A reset is a rollback to the initial state.) + */ + IGNORE_ROLLBACK, + + // There's no `IGNORE_ALL` because if REE has done any alteration other + // than a rollback, the file contents will be known-bad data. +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/RenameOptions.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/RenameOptions.aidl new file mode 100644 index 0000000000..f55ea7f60e --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/RenameOptions.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.CreationMode; +import android.hardware.security.see.storage.ReadIntegrity; + +parcelable RenameOptions { + /** Controls creation behavior of the dest file. See `CreationMode` docs for details. */ + CreationMode destCreateMode = CreationMode.CREATE_EXCLUSIVE; + + /** + * Set to acknowledge possible files tampering. + * + * If unacknowledged tampering is detected, the operation will fail with an ERR_FS_* + * service-specific code. + */ + ReadIntegrity readIntegrity = ReadIntegrity.NO_TAMPER; + + /** + * Allow writes to succeed while the filesystem is in the middle of an A/B update. + * + * If the A/B update fails, the operation will be rolled back. This rollback will not + * cause subsequent operations fail with any ERR_FS_* code nor will need to be + * acknowledged by setting the `readIntegrity`. + */ + boolean allowWritesDuringAbUpdate = false; +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/Tamper.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/Tamper.aidl new file mode 100644 index 0000000000..0a39fdd371 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/Tamper.aidl @@ -0,0 +1,28 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +/** Specifies types of REE tampering the filesystem may detect */ +enum Tamper { + /** REE has reset this file or the containing file system. */ + RESET, + + /** REE has rolled back this file or the containing file system to a previous state. */ + ROLLBACK, + + /** REE has made some other modification to the file. */ + OTHER, +} -- GitLab From f6a462d9fa5d191f1d456986eeaf503e491c140a Mon Sep 17 00:00:00 2001 From: Weilin Xu Date: Fri, 15 Dec 2023 16:05:31 -0800 Subject: [PATCH 353/418] Added config flag test for default bcradio HAL Added unit tests for methods related to config flag in the default AIDL broadcast radio HAL implementation. Bug: 316630344 Test: atest DefaultBroadcastRadioHalTestCase Change-Id: Id42915613f931ebcd40ca05d9534dc087e479461 --- .../test/DefaultBroadcastRadioHalTest.cpp | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp index cca4b8c586..78fcf27094 100644 --- a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp +++ b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp @@ -455,6 +455,25 @@ TEST_F(DefaultBroadcastRadioHalTest, Cancel) { mTunerCallback->reset(); } +TEST_F(DefaultBroadcastRadioHalTest, SetConfigFlag) { + ConfigFlag flag = ConfigFlag::FORCE_MONO; + + auto setResult = mBroadcastRadioHal->setConfigFlag(flag, /* value= */ true); + + ASSERT_TRUE(setResult.isOk()); +} + +TEST_F(DefaultBroadcastRadioHalTest, GetConfigFlag) { + bool gotValue = false; + ConfigFlag flag = ConfigFlag::FORCE_MONO; + mBroadcastRadioHal->setConfigFlag(flag, /* value= */ true); + + auto getResult = mBroadcastRadioHal->isConfigFlagSet(flag, &gotValue); + + ASSERT_TRUE(getResult.isOk()); + ASSERT_TRUE(gotValue); +} + TEST_F(DefaultBroadcastRadioHalTest, StartProgramListUpdatesWithEmptyFilter) { switchToFmBand(); @@ -482,4 +501,17 @@ TEST_F(DefaultBroadcastRadioHalTest, StartProgramListUpdatesWithAmFmFilter) { } } +TEST_F(DefaultBroadcastRadioHalTest, StartProgramListUpdatesWhenHdIsDisabled) { + switchToFmBand(); + mBroadcastRadioHal->setConfigFlag(ConfigFlag::FORCE_ANALOG_FM, /* value= */ true); + + auto programList = getProgramList(); + + ASSERT_TRUE(programList.has_value()); + for (auto it = programList->begin(); it != programList->end(); it++) { + EXPECT_FALSE(utils::hasId(it->selector, IdentifierType::HD_STATION_ID_EXT)); + EXPECT_EQ(utils::getBand(utils::getAmFmFrequency(it->selector)), utils::FrequencyBand::FM); + } +} + } // namespace aidl::android::hardware::broadcastradio -- GitLab From 3344506a78e316fc14bcd4386b3a571813ae1471 Mon Sep 17 00:00:00 2001 From: Yu-Han Yang Date: Wed, 14 Feb 2024 22:11:21 +0000 Subject: [PATCH 354/418] Allow multiple registered GNSS HALs Bug: 325210998 Change-Id: I1c5e4e37059b6159ffaff310d2d0dd588d35fd7c Test: atest VtsHalGnssV1_1TargetTest --- gnss/1.1/vts/functional/gnss_hal_test.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnss/1.1/vts/functional/gnss_hal_test.cpp b/gnss/1.1/vts/functional/gnss_hal_test.cpp index 6663a19abf..5ec980699f 100644 --- a/gnss/1.1/vts/functional/gnss_hal_test.cpp +++ b/gnss/1.1/vts/functional/gnss_hal_test.cpp @@ -168,8 +168,7 @@ bool GnssHalTest::IsGnssHalVersion_1_1() const { manager->listManifestByInterface( "android.hardware.gnss@1.1::IGnss", [&hasGnssHalVersion_1_1](const hidl_vec& registered) { - ASSERT_EQ(1, registered.size()); - hasGnssHalVersion_1_1 = true; + hasGnssHalVersion_1_1 = registered.size() != 0; }); bool hasGnssHalVersion_2_0 = false; -- GitLab From f1a5918bfcd6a42deca23eae38641aa1f1704405 Mon Sep 17 00:00:00 2001 From: Yahav Nussbaum Date: Thu, 15 Feb 2024 16:20:48 +0000 Subject: [PATCH 355/418] Baseline NewApi issues Bug: 268261262 Test: m android.hardware.bluetooth.finder-V1-java-lint Change-Id: I387f30922debe42cd5980f5e1bbe6fd3cf01b7d9 --- bluetooth/finder/aidl/Android.bp | 3 ++ bluetooth/finder/aidl/lint-baseline.xml | 37 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 bluetooth/finder/aidl/lint-baseline.xml diff --git a/bluetooth/finder/aidl/Android.bp b/bluetooth/finder/aidl/Android.bp index 24f5ca5fbc..25c12877e4 100644 --- a/bluetooth/finder/aidl/Android.bp +++ b/bluetooth/finder/aidl/Android.bp @@ -33,6 +33,9 @@ aidl_interface { apex_available: [ "com.android.tethering", ], + lint: { + baseline_filename: "lint-baseline.xml", + }, }, }, } diff --git a/bluetooth/finder/aidl/lint-baseline.xml b/bluetooth/finder/aidl/lint-baseline.xml new file mode 100644 index 0000000000..e0570f6bd9 --- /dev/null +++ b/bluetooth/finder/aidl/lint-baseline.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + -- GitLab From 7cc8453ed4268fd3ca50b5c16be66860297e5196 Mon Sep 17 00:00:00 2001 From: Changyeon Jo Date: Wed, 14 Feb 2024 17:39:41 -0800 Subject: [PATCH 356/418] Introduce CAMERA_SERVICE_CURRENT_STATE VHAL property CarEvsService shares state changes of its service types via this new VHAL property. Bug: 325317031 Test: atest VtsHalAutomotiveVehicle_TargetTest Change-Id: I50f8523aea6a2b5ccb55db9ca620e64e1cada8ee --- ...ardware.automotive.vehicle-types-meta.json | 30 ++++++++++++ .../cpp/AccessForVehicleProperty.h | 1 + .../cpp/ChangeModeForVehicleProperty.h | 1 + .../cpp/VersionForVehicleProperty.h | 1 + .../java/AccessForVehicleProperty.java | 1 + .../java/ChangeModeForVehicleProperty.java | 1 + .../java/EnumForVehicleProperty.java | 1 + .../JsonConfigLoader/src/JsonConfigLoader.cpp | 3 ++ .../config/DefaultProperties.json | 15 ++++++ .../utils/common/include/VehicleHalTypes.h | 1 + .../vehicle/CameraServiceState.aidl | 41 ++++++++++++++++ .../automotive/vehicle/VehicleProperty.aidl | 1 + .../vehicle/CameraServiceState.aidl | 48 +++++++++++++++++++ .../automotive/vehicle/VehicleProperty.aidl | 24 ++++++++++ .../VtsHalAutomotiveVehicle_TargetTest.cpp | 6 +++ 15 files changed, 175 insertions(+) create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/CameraServiceState.aidl create mode 100644 automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/CameraServiceState.aidl diff --git a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json index c00e64cc74..df0f51c7a1 100644 --- a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json +++ b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json @@ -1128,6 +1128,14 @@ ], "data_enum": "VehicleAutonomousState" }, + { + "name": "CAMERA_SERVICE_CURRENT_STATE", + "value": 289476429, + "data_enums": [ + "CameraServiceState" + ], + "data_enum": "CameraServiceState" + }, { "name": "AUTOMATIC_EMERGENCY_BRAKING_ENABLED", "value": 287313920 @@ -2818,6 +2826,28 @@ } ] }, + { + "name": "CameraServiceState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNAVAILABLE", + "value": 0 + }, + { + "name": "INACTIVE", + "value": 1 + }, + { + "name": "REQUESTED", + "value": 2 + }, + { + "name": "ACTIVE", + "value": 3 + } + ] + }, { "name": "GsrComplianceRequirementType", "package": "android.hardware.automotive.vehicle", diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h index 15056e2436..51a3025740 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h @@ -262,6 +262,7 @@ std::unordered_map AccessForVehiclePrope {VehicleProperty::VEHICLE_IN_USE, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::CLUSTER_HEARTBEAT, VehiclePropertyAccess::WRITE}, {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, VehiclePropertyAccess::READ}, + {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyAccess::WRITE}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess::READ}, {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, VehiclePropertyAccess::READ_WRITE}, diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h index d3f97e313e..60e9a72138 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h @@ -262,6 +262,7 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::VEHICLE_IN_USE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::CLUSTER_HEARTBEAT, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, VehiclePropertyChangeMode::ON_CHANGE}, + {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, diff --git a/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h index 70c914da7a..1c1035ddb3 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h @@ -261,6 +261,7 @@ std::unordered_map VersionForVehicleProperty = { {VehicleProperty::VEHICLE_IN_USE, 2}, {VehicleProperty::CLUSTER_HEARTBEAT, 3}, {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, 3}, + {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, 3}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, 2}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, 2}, {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, 2}, diff --git a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java index e55f4dc811..afb6cab547 100644 --- a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java @@ -255,6 +255,7 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.VEHICLE_IN_USE, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.CLUSTER_HEARTBEAT, VehiclePropertyAccess.WRITE), Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, VehiclePropertyAccess.READ), + Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyAccess.WRITE), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_ENABLED, VehiclePropertyAccess.READ_WRITE), diff --git a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java index e351a3fad8..12aff40b34 100644 --- a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java @@ -255,6 +255,7 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.VEHICLE_IN_USE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.CLUSTER_HEARTBEAT, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, VehiclePropertyChangeMode.ON_CHANGE), + Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), diff --git a/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java index 4b8060fbb0..0f86bfa14d 100644 --- a/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java @@ -85,6 +85,7 @@ public final class EnumForVehicleProperty { Map.entry(VehicleProperty.GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, List.of(GsrComplianceRequirementType.class)), Map.entry(VehicleProperty.SHUTDOWN_REQUEST, List.of(VehicleApPowerStateShutdownParam.class)), Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, List.of(VehicleAutonomousState.class)), + Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, List.of(CameraServiceState.class)), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, List.of(AutomaticEmergencyBrakingState.class, ErrorState.class)), Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_STATE, List.of(ForwardCollisionWarningState.class, ErrorState.class)), Map.entry(VehicleProperty.BLIND_SPOT_WARNING_STATE, List.of(BlindSpotWarningState.class, ErrorState.class)), diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp index 76db891a5b..2a7ac96848 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp @@ -37,6 +37,7 @@ 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; using ::aidl::android::hardware::automotive::vehicle::ChangeModeForVehicleProperty; using ::aidl::android::hardware::automotive::vehicle::CrossTrafficMonitoringWarningState; using ::aidl::android::hardware::automotive::vehicle::CruiseControlCommand; @@ -259,6 +260,8 @@ JsonValueParser::JsonValueParser() { std::make_unique>(); mConstantParsersByType["EmergencyLaneKeepAssistState"] = std::make_unique>(); + mConstantParsersByType["CameraServiceState"] = + std::make_unique>(); mConstantParsersByType["CruiseControlType"] = std::make_unique>(); mConstantParsersByType["CruiseControlState"] = diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 590eff9a23..b7911eb689 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -5067,6 +5067,21 @@ ] } ] + }, + { + "property": "VehicleProperty::CAMERA_SERVICE_CURRENT_STATE", + "defaultValue": { + "int32Values": [ + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE" + ] + } } ] } diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h index 0c8ebbda34..1cd0d16e08 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h @@ -19,6 +19,7 @@ #include #include +#include #include #include #include diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/CameraServiceState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/CameraServiceState.aidl new file mode 100644 index 0000000000..84f5ec70d5 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/CameraServiceState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CameraServiceState { + UNAVAILABLE = 0, + INACTIVE = 1, + REQUESTED = 2, + ACTIVE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl index 2e25466886..be8d3ac6ab 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -261,6 +261,7 @@ enum VehicleProperty { VEHICLE_IN_USE = (((0x0F4A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313738 */, CLUSTER_HEARTBEAT = (((0x0F4B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 299896651 */, VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = (((0x0F4C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410892 */, + CAMERA_SERVICE_CURRENT_STATE = (((0x0F4D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 289476429 */, AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1000 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313920 */, AUTOMATIC_EMERGENCY_BRAKING_STATE = (((0x1001 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411073 */, FORWARD_COLLISION_WARNING_ENABLED = (((0x1002 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313922 */, diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/CameraServiceState.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/CameraServiceState.aidl new file mode 100644 index 0000000000..0e0191367f --- /dev/null +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/CameraServiceState.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.automotive.vehicle; + +/** + * Used by CAMERA_SERVICE_CURRENT_STATE to describe current state of CarEvsService types. + * + * This is consistent with CarEvsManager.SERVICE_STATE_* constants. + */ +@VintfStability +@Backing(type="int") +enum CameraServiceState { + /** + * State that a corresponding service type is not available. + */ + UNAVAILABLE = 0, + + /** + * State that a corresponding service type is inactive; it's available but not used + * by any clients yet. + */ + INACTIVE = 1, + + /** + * State that CarEvsService requested launching a registered activity; the service is waiting + * for a video request from it. + */ + REQUESTED = 2, + + /** + * State that a corresponding service type is actively being used. + */ + ACTIVE = 3, +} diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index 97e7847392..812b9b9b06 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -5067,6 +5067,30 @@ enum VehicleProperty { VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = 0x0F4C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, + /** + * Reports current state of CarEvsService types. + * + * Informs other components of current state of each CarEvsService service type with values + * defined in CameraServiceState. CarEvsService will update this property whenever a service + * type transitions into a new state. + * + * int32[0]: Current state of REARVIEW service type. + * int32[1]: Current state of SURROUNDVIEW service type. + * int32[2]: Current state of FRONTVIEW service type. + * int32[3]: Current state of LEFTVIEW service type. + * int32[4]: Current state of RIGHTVIEW service type. + * int32[5]: Current state of DRIVERVIEW service type. + * int32[6]: Current state of FRONT_PASSENGERVIEW service type. + * int32[7]: Current state of REAR_PASSENGERVIEW service type. + * + * @change_mode VehiclePropertyChangeMode.ON_CHANGE + * @access VehiclePropertyAccess.WRITE + * @data_enum CameraServiceState + * @version 3 + */ + CAMERA_SERVICE_CURRENT_STATE = 0x0F4D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + + VehiclePropertyType.INT32_VEC, + /*********************************************************************************************** * Start of ADAS Properties * diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index 0fd1cc69b4..d9cd9d5a18 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -1149,6 +1149,12 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyVehicleDrivingAutomationCurrentL VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::INT32); } +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyCameraServiceCurrentStateConfig) { + verifyProperty(VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyAccess::WRITE, + VehiclePropertyChangeMode::ON_CHANGE, VehiclePropertyGroup::SYSTEM, + VehicleArea::GLOBAL, VehiclePropertyType::INT32_VEC); +} + TEST_P(VtsHalAutomotiveVehicleTargetTest, verifySeatAirbagsDeployedConfig) { verifyProperty(VehicleProperty::SEAT_AIRBAGS_DEPLOYED, VehiclePropertyAccess::READ, VehiclePropertyChangeMode::ON_CHANGE, VehiclePropertyGroup::SYSTEM, -- GitLab From 763f63576e53c576af5ec7ad40918a2d1ca36188 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Thu, 15 Feb 2024 17:41:42 +0000 Subject: [PATCH 357/418] Visualizer: make the range align with VISUALIZER_CAPTURE_SIZE_* Bug: 317742497 Test: atest android.media.audio.cts.VisualizerTest Test: atest VtsHalAudioEffectTargetTest Change-Id: I5b89c9cead9906966b00fcb2fdb16905ed97b263 --- audio/aidl/default/visualizer/VisualizerSw.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/audio/aidl/default/visualizer/VisualizerSw.h b/audio/aidl/default/visualizer/VisualizerSw.h index 4b87b04298..819351a848 100644 --- a/audio/aidl/default/visualizer/VisualizerSw.h +++ b/audio/aidl/default/visualizer/VisualizerSw.h @@ -19,20 +19,22 @@ #include #include +#include #include "effect-impl/EffectImpl.h" namespace aidl::android::hardware::audio::effect { class VisualizerSwContext final : public EffectContext { public: - static const int kMinCaptureSize = 0x80; - static const int kMaxCaptureSize = 0x400; - static const int kMaxLatencyMs = 3000; - static const int kMaxCaptureBufSize = 0xffff; + // need align the min/max capture size to VISUALIZER_CAPTURE_SIZE_MIN and + // VISUALIZER_CAPTURE_SIZE_MAX because of limitation in audio_utils fixedfft. + static constexpr int32_t kMinCaptureSize = VISUALIZER_CAPTURE_SIZE_MIN; + static constexpr int32_t kMaxCaptureSize = VISUALIZER_CAPTURE_SIZE_MAX; + static constexpr int32_t kMaxLatencyMs = 3000; VisualizerSwContext(int statusDepth, const Parameter::Common& common) : EffectContext(statusDepth, common) { LOG(DEBUG) << __func__; - mCaptureSampleBuffer.resize(kMaxCaptureBufSize); + mCaptureSampleBuffer.resize(kMaxCaptureSize); fill(mCaptureSampleBuffer.begin(), mCaptureSampleBuffer.end(), 0x80); } -- GitLab From 7c52c76cb2372808039c6d74759639bb7c632aa2 Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Thu, 15 Feb 2024 21:43:50 +0000 Subject: [PATCH 358/418] Move vendor data helper functions to wifi_aidl_test_utils. Allows these methods to be used for VTS tests across all Wifi HAL services. Previously, they were only available to the Supplicant tests. Bug: 322815584 Test: atest VtsHalWifiSupplicantStaNetworkTargetTest \ VtsHalWifiSupplicantP2pIfaceTargetTest Change-Id: I2ef8fe528aa35bc2109a0f845432dec88962f21b --- .../vts/functional/wifi_aidl_test_utils.cpp | 34 +++++++++++++++++ .../vts/functional/wifi_aidl_test_utils.h | 6 +++ .../supplicant_p2p_iface_aidl_test.cpp | 1 + .../supplicant_sta_network_aidl_test.cpp | 1 + .../vts/functional/supplicant_test_utils.h | 37 ------------------- 5 files changed, 42 insertions(+), 37 deletions(-) diff --git a/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp b/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp index 986e3a857b..21d50ac325 100644 --- a/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp +++ b/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp @@ -62,6 +62,23 @@ bool configureChipToSupportConcurrencyTypeInternal(const std::shared_ptr generateOuiKeyedDataOptional(int oui) { + return std::optional{generateOuiKeyedData(oui)}; +} + } // namespace bool checkStatusCode(ndk::ScopedAStatus* status, WifiStatusCode expected_code) { @@ -238,3 +255,20 @@ int32_t getChipFeatureSet(const std::shared_ptr& wifi_chip) { bool isAidlServiceAvailable(const char* instance_name) { return AServiceManager_isDeclared(instance_name); } + +std::vector generateOuiKeyedDataList(int size) { + std::vector dataList; + for (int i = 0; i < size; i++) { + dataList.push_back(generateOuiKeyedData(i + 1)); + } + return dataList; +} + +// Generate OuiKeyedData list fully wrapped in std::optional +std::optional>> generateOuiKeyedDataListOptional(int size) { + std::vector> dataList; + for (int i = 0; i < size; i++) { + dataList.push_back(generateOuiKeyedDataOptional(i + 1)); + } + return std::optional>>{dataList}; +} diff --git a/wifi/aidl/vts/functional/wifi_aidl_test_utils.h b/wifi/aidl/vts/functional/wifi_aidl_test_utils.h index 921d689926..1369dd487a 100644 --- a/wifi/aidl/vts/functional/wifi_aidl_test_utils.h +++ b/wifi/aidl/vts/functional/wifi_aidl_test_utils.h @@ -21,6 +21,7 @@ #include #include #include +#include #include using aidl::android::hardware::wifi::IfaceConcurrencyType; @@ -30,6 +31,8 @@ using aidl::android::hardware::wifi::IWifiChip; using aidl::android::hardware::wifi::IWifiNanIface; using aidl::android::hardware::wifi::IWifiStaIface; using aidl::android::hardware::wifi::WifiStatusCode; +using aidl::android::hardware::wifi::common::OuiKeyedData; +using aidl::android::os::PersistableBundle; // Helper functions to obtain references to the various AIDL interface objects. std::shared_ptr getWifi(const char* instance_name); @@ -50,3 +53,6 @@ void stopWifiService(const char* instance_name); int32_t getChipFeatureSet(const std::shared_ptr& wifi_chip); bool checkStatusCode(ndk::ScopedAStatus* status, WifiStatusCode expected_code); bool isAidlServiceAvailable(const char* instance_name); +// Generate test vendor data. +std::vector generateOuiKeyedDataList(int size); +std::optional>> generateOuiKeyedDataListOptional(int size); diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp index 69a8919ac1..2c46ec5708 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp @@ -27,6 +27,7 @@ #include #include "supplicant_test_utils.h" +#include "wifi_aidl_test_utils.h" using aidl::android::hardware::wifi::supplicant::BnSupplicantP2pIfaceCallback; using aidl::android::hardware::wifi::supplicant::DebugLevel; diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp index a541f8f180..9bdd2f5722 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp @@ -27,6 +27,7 @@ #include #include "supplicant_test_utils.h" +#include "wifi_aidl_test_utils.h" using aidl::android::hardware::wifi::supplicant::AuthAlgMask; using aidl::android::hardware::wifi::supplicant::BnSupplicantStaNetworkCallback; diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h b/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h index 51793fd259..e39e2f44c2 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h +++ b/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h @@ -16,18 +16,14 @@ #pragma once -#include - #include "supplicant_aidl_test_utils.h" #include "supplicant_legacy_test_utils.h" -using aidl::android::hardware::wifi::common::OuiKeyedData; using aidl::android::hardware::wifi::supplicant::IfaceInfo; using aidl::android::hardware::wifi::supplicant::ISupplicant; using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface; using aidl::android::hardware::wifi::supplicant::ISupplicantStaIface; using aidl::android::hardware::wifi::supplicant::KeyMgmtMask; -using aidl::android::os::PersistableBundle; std::string getStaIfaceName() { std::array buffer; @@ -101,36 +97,3 @@ std::array vecToArrayMacAddr(std::vector vectorAddr) { std::copy(vectorAddr.begin(), vectorAddr.begin() + 6, arrayAddr.begin()); return arrayAddr; } - -OuiKeyedData generateOuiKeyedData(int oui) { - PersistableBundle bundle; - bundle.putString("stringKey", "stringValue"); - bundle.putInt("intKey", 12345); - - OuiKeyedData data; - data.oui = oui; - data.vendorData = bundle; - return data; -} - -std::vector generateOuiKeyedDataList(int size) { - std::vector dataList; - for (int i = 0; i < size; i++) { - dataList.push_back(generateOuiKeyedData(i + 1)); - } - return dataList; -} - -// Wraps generateOuiKeyedData result in std::optional -std::optional generateOuiKeyedDataOptional(int oui) { - return std::optional{generateOuiKeyedData(oui)}; -} - -// Generate OuiKeyedData list fully wrapped in std::optional -std::optional>> generateOuiKeyedDataListOptional(int size) { - std::vector> dataList; - for (int i = 0; i < size; i++) { - dataList.push_back(generateOuiKeyedDataOptional(i + 1)); - } - return std::optional>>{dataList}; -} -- GitLab From 15bc4492bfca5c7963251b8e1f9c34593b14f91e Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Thu, 15 Feb 2024 22:12:32 +0000 Subject: [PATCH 359/418] Add VTS tests for Vendor HAL and Hostapd structures which were extended to include vendor data. Bug: 322815584 Test: atest VtsHalWifiRttControllerTargetTest \ VtsHalWifiNanIfaceTargetTest \ VtsHalHostapdTargetTest Change-Id: I7be5207aa5f6e49863ba516bed1cbba3fdfaa271 --- .../functional/wifi_nan_iface_aidl_test.cpp | 11 +++++++++++ .../wifi_rtt_controller_aidl_test.cpp | 11 +++++++++++ wifi/hostapd/aidl/vts/functional/Android.bp | 2 +- .../functional/VtsHalHostapdTargetTest.cpp | 19 +++++++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/wifi/aidl/vts/functional/wifi_nan_iface_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_nan_iface_aidl_test.cpp index 738e72cf00..bc169a45b7 100644 --- a/wifi/aidl/vts/functional/wifi_nan_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_nan_iface_aidl_test.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -60,6 +61,10 @@ using aidl::android::hardware::wifi::NanTxType; #define TIMEOUT_PERIOD 10 +namespace { +const auto& kTestVendorDataOptional = generateOuiKeyedDataListOptional(5); +} + class WifiNanIfaceAidlTest : public testing::TestWithParam { public: void SetUp() override { @@ -72,6 +77,7 @@ class WifiNanIfaceAidlTest : public testing::TestWithParam { std::shared_ptr callback = ndk::SharedRefBase::make(*this); EXPECT_TRUE(wifi_nan_iface_->registerEventCallback(callback).isOk()); + EXPECT_TRUE(wifi_nan_iface_->getInterfaceVersion(&interface_version_).isOk()); } void TearDown() override { stopWifiService(getInstanceName()); } @@ -401,6 +407,7 @@ class WifiNanIfaceAidlTest : public testing::TestWithParam { protected: std::shared_ptr wifi_nan_iface_; + int interface_version_; uint64_t callback_event_bitmap_; uint16_t id_; uint8_t session_id_; @@ -640,6 +647,10 @@ TEST_P(WifiNanIfaceAidlTest, StartPublishRequest) { nanPublishRequest.autoAcceptDataPathRequests = false; nanPublishRequest.publishType = NanPublishType::UNSOLICITED; nanPublishRequest.txType = NanTxType::BROADCAST; + if (interface_version_ >= 2) { + LOG(INFO) << "Including vendor data in Publish request"; + nanPublishRequest.vendorData = kTestVendorDataOptional; + } status = wifi_nan_iface_->startPublishRequest(inputCmdId + 1, nanPublishRequest); if (!checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { diff --git a/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp index 4aedc0ef6f..9c6a29ef90 100644 --- a/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -42,6 +43,10 @@ using aidl::android::hardware::wifi::WifiChannelInfo; using aidl::android::hardware::wifi::WifiChannelWidthInMhz; using aidl::android::hardware::wifi::WifiStatusCode; +namespace { +const auto& kTestVendorDataOptional = generateOuiKeyedDataListOptional(5); +} + class WifiRttControllerAidlTest : public testing::TestWithParam { public: void SetUp() override { @@ -50,6 +55,7 @@ class WifiRttControllerAidlTest : public testing::TestWithParam { stopWifiService(getInstanceName()); wifi_rtt_controller_ = getWifiRttController(); ASSERT_NE(nullptr, wifi_rtt_controller_.get()); + ASSERT_TRUE(wifi_rtt_controller_->getInterfaceVersion(&interface_version_).isOk()); // Check RTT support before we run the test. RttCapabilities caps = {}; @@ -82,6 +88,7 @@ class WifiRttControllerAidlTest : public testing::TestWithParam { } std::shared_ptr wifi_rtt_controller_; + int interface_version_; private: const char* getInstanceName() { return GetParam().c_str(); } @@ -226,6 +233,10 @@ TEST_P(WifiRttControllerAidlTest, RangeRequest) { config.numRetriesPerRttFrame = 3; config.numRetriesPerFtmr = 3; config.burstDuration = 9; + if (interface_version_ >= 2) { + LOG(INFO) << "Including vendor data in Rtt Config"; + config.vendorData = kTestVendorDataOptional; + } int cmdId = 55; std::vector configs = {config}; diff --git a/wifi/hostapd/aidl/vts/functional/Android.bp b/wifi/hostapd/aidl/vts/functional/Android.bp index 9fbbf4bc29..f614679c44 100644 --- a/wifi/hostapd/aidl/vts/functional/Android.bp +++ b/wifi/hostapd/aidl/vts/functional/Android.bp @@ -21,7 +21,7 @@ cc_test { "libvndksupport", ], static_libs: [ - "android.hardware.wifi.hostapd-V1-ndk", + "android.hardware.wifi.hostapd-V2-ndk", "VtsHalWifiV1_0TargetTestUtil", "VtsHalWifiV1_5TargetTestUtil", "VtsHalWifiV1_6TargetTestUtil", diff --git a/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp b/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp index 137537d18b..590c58bad5 100644 --- a/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp +++ b/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp @@ -58,6 +58,7 @@ const int kIfaceChannel = 6; const int kIfaceInvalidChannel = 567; const std::vector kTestZeroMacAddr(6, 0x0); const Ieee80211ReasonCode kTestDisconnectReasonCode = Ieee80211ReasonCode::WLAN_REASON_UNSPECIFIED; +const auto& kTestVendorDataOptional = generateOuiKeyedDataListOptional(5); inline BandMask operator|(BandMask a, BandMask b) { return static_cast(static_cast(a) | @@ -74,6 +75,7 @@ class HostapdAidl : public testing::TestWithParam { hostapd = getHostapd(GetParam()); ASSERT_NE(hostapd, nullptr); EXPECT_TRUE(hostapd->setDebugParams(DebugLevel::EXCESSIVE).isOk()); + EXPECT_TRUE(hostapd->getInterfaceVersion(&interface_version_).isOk()); isAcsSupport = testing::checkSubstringInCommandOutput( "/system/bin/cmd wifi get-softap-supported-features", @@ -98,6 +100,7 @@ class HostapdAidl : public testing::TestWithParam { bool isAcsSupport; bool isWpa3SaeSupport; bool isBridgedSupport; + int interface_version_; IfaceParams getIfaceParamsWithoutAcs(std::string iface_name) { IfaceParams iface_params; @@ -342,6 +345,22 @@ TEST_P(HostapdAidl, AddOpenAccessPointWithoutAcs) { EXPECT_TRUE(status.isOk()); } +/** + * Adds an access point with Open network config & ACS disabled. + * IfaceParams will also include vendor data. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddOpenAccessPointWithVendorData) { + if (interface_version_ < 2) { + GTEST_SKIP() << "Vendor data is available in IfaceParams as of Hostapd V2"; + } + std::string ifname = setupApIfaceAndGetName(false); + IfaceParams params = getIfaceParamsWithoutAcs(ifname); + params.vendorData = kTestVendorDataOptional; + auto status = hostapd->addAccessPoint(params, getOpenNwParams()); + EXPECT_TRUE(status.isOk()); +} + /** * Adds an access point with SAE Transition network config & ACS disabled. * Access point creation should pass. -- GitLab From 3c752e34fc4e58218ea458675c3e99fd77cf6b75 Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Fri, 16 Feb 2024 01:50:27 +0000 Subject: [PATCH 360/418] Add VTS test for the enable and disable MSCS methods. Bug: 318008418 Test: atest VtsHalWifiSupplicantStaIfaceTargetTest Change-Id: Iddd25f89e65a8419e29454a77ab83d152296d34e --- .../supplicant_sta_iface_aidl_test.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp index 5d00485d57..a2338d8bf3 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp @@ -43,6 +43,7 @@ using aidl::android::hardware::wifi::supplicant::ISupplicant; using aidl::android::hardware::wifi::supplicant::ISupplicantStaIface; using aidl::android::hardware::wifi::supplicant::ISupplicantStaNetwork; using aidl::android::hardware::wifi::supplicant::KeyMgmtMask; +using aidl::android::hardware::wifi::supplicant::MscsParams; using aidl::android::hardware::wifi::supplicant::WpaDriverCapabilitiesMask; using aidl::android::hardware::wifi::supplicant::WpsConfigMethods; using android::ProcessState; @@ -252,6 +253,7 @@ class SupplicantStaIfaceAidlTest : public testing::TestWithParam { true, // show timestamps true) .isOk()); + ASSERT_TRUE(supplicant_->getInterfaceVersion(&interface_version_).isOk()); EXPECT_TRUE(supplicant_->getStaInterface(getStaIfaceName(), &sta_iface_) .isOk()); ASSERT_NE(sta_iface_, nullptr); @@ -293,6 +295,7 @@ class SupplicantStaIfaceAidlTest : public testing::TestWithParam { protected: std::shared_ptr supplicant_; std::shared_ptr sta_iface_; + int interface_version_; private: // synchronization objects @@ -788,6 +791,22 @@ TEST_P(SupplicantStaIfaceAidlTest, StartDppConfiguratorInitiator) { EXPECT_TRUE(sta_iface_->removeDppUri(peer_id).isOk()); } +/* + * Configure and Disable MSCS + */ +TEST_P(SupplicantStaIfaceAidlTest, ConfigureAndDisableMscs) { + if (interface_version_ < 3) { + GTEST_SKIP() << "MSCS configure/disable is available as of Supplicant V3"; + } + MscsParams params; + params.upBitmap = 0; + params.upLimit = 7; + params.streamTimeoutUs = 1000; // 1 ms + params.frameClassifierMask = 0; + EXPECT_TRUE(sta_iface_->configureMscs(params).isOk()); + EXPECT_TRUE(sta_iface_->disableMscs().isOk()); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(SupplicantStaIfaceAidlTest); INSTANTIATE_TEST_SUITE_P(Supplicant, SupplicantStaIfaceAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames( -- GitLab From fc93b73f78a31b8f1822061ba164cb7c84ff5321 Mon Sep 17 00:00:00 2001 From: ramindani Date: Thu, 15 Feb 2024 21:36:19 +0000 Subject: [PATCH 361/418] [Composer-VTS] Adds vts for notifyExpectedPresent Includes VTS for notifyExpectedPresent call, frameRate change in the present call and notifyExpectedPresent after timeout. Test: atest VtsHalGraphicsComposer3_TargetTest BUG: 291792736 Change-Id: I1ef7011d7dcbdd6bb378b80ca0b0d7cd52832897 --- .../VtsHalGraphicsComposer3_TargetTest.cpp | 220 +++++++++++++++--- 1 file changed, 190 insertions(+), 30 deletions(-) diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp index 5e45fd902b..f72cf55300 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp @@ -1291,6 +1291,9 @@ TEST_P(GraphicsComposerAidlV3Test, GetDisplayConfigurations) { frameIntervalPowerHints.cend()); EXPECT_LE(minFrameInterval->frameIntervalNs, VtsComposerClient::kMaxFrameIntervalNs); + const auto maxFrameInterval = *max_element(frameIntervalPowerHints.cbegin(), + frameIntervalPowerHints.cend()); + EXPECT_GE(maxFrameInterval->frameIntervalNs, vrrConfig.minFrameIntervalNs); EXPECT_TRUE(std::all_of(frameIntervalPowerHints.cbegin(), frameIntervalPowerHints.cend(), @@ -1385,17 +1388,6 @@ TEST_P(GraphicsComposerAidlV3Test, GetDisplayConfigsIsSubsetOfGetDisplayConfigur } } -// TODO(b/291792736) Add detailed VTS test cases for NotifyExpectedPresent -TEST_P(GraphicsComposerAidlV3Test, NotifyExpectedPresent) { - for (const auto& display : mDisplays) { - EXPECT_TRUE(mComposerClient - ->notifyExpectedPresent(display.getDisplayId(), - ClockMonotonicTimestamp{0}, - std::chrono::nanoseconds{8ms}.count()) - .isOk()); - } -} - // Tests for Command. class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { protected: @@ -1539,18 +1531,20 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { } sp<::android::Fence> presentAndGetFence( - std::optional expectedPresentTime) { - auto& writer = getWriter(getPrimaryDisplayId()); - writer.validateDisplay(getPrimaryDisplayId(), expectedPresentTime, - VtsComposerClient::kNoFrameIntervalNs); + std::optional expectedPresentTime, + std::optional displayIdOpt = {}, + int32_t frameIntervalNs = VtsComposerClient::kNoFrameIntervalNs) { + const auto displayId = displayIdOpt.value_or(getPrimaryDisplayId()); + auto& writer = getWriter(displayId); + writer.validateDisplay(displayId, expectedPresentTime, frameIntervalNs); execute(); EXPECT_TRUE(mReader.takeErrors().empty()); - writer.presentDisplay(getPrimaryDisplayId()); + writer.presentDisplay(displayId); execute(); EXPECT_TRUE(mReader.takeErrors().empty()); - auto presentFence = mReader.takePresentFence(getPrimaryDisplayId()); + auto presentFence = mReader.takePresentFence(displayId); // take ownership const int fenceOwner = presentFence.get(); *presentFence.getR() = -1; @@ -1569,18 +1563,17 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { return vsyncPeriod; } - int64_t createOnScreenLayer(Composition composition = Composition::DEVICE) { - auto& writer = getWriter(getPrimaryDisplayId()); + int64_t createOnScreenLayer(const VtsDisplay& display, + Composition composition = Composition::DEVICE) { + auto& writer = getWriter(display.getDisplayId()); const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); + mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); - Rect displayFrame{0, 0, getPrimaryDisplay().getDisplayWidth(), - getPrimaryDisplay().getDisplayHeight()}; - FRect cropRect{0, 0, (float)getPrimaryDisplay().getDisplayWidth(), - (float)getPrimaryDisplay().getDisplayHeight()}; - configureLayer(getPrimaryDisplay(), layer, composition, displayFrame, cropRect); + Rect displayFrame{0, 0, display.getDisplayWidth(), display.getDisplayHeight()}; + FRect cropRect{0, 0, (float)display.getDisplayWidth(), (float)display.getDisplayHeight()}; + configureLayer(display, layer, composition, displayFrame, cropRect); - writer.setLayerDataspace(getPrimaryDisplayId(), layer, common::Dataspace::UNKNOWN); + writer.setLayerDataspace(display.getDisplayId(), layer, common::Dataspace::UNKNOWN); return layer; } @@ -1692,7 +1685,7 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { ASSERT_NE(nullptr, buffer1); ASSERT_NE(nullptr, buffer2); - const auto layer = createOnScreenLayer(); + const auto layer = createOnScreenLayer(getPrimaryDisplay()); auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBuffer(getPrimaryDisplayId(), layer, /*slot*/ 0, buffer1->handle, /*acquireFence*/ -1); @@ -1725,6 +1718,38 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { ASSERT_TRUE(mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::OFF).isOk()); } + void forEachNotifyExpectedPresentConfig( + std::function func) { + for (VtsDisplay& display : mDisplays) { + const auto displayId = display.getDisplayId(); + EXPECT_TRUE(mComposerClient->setPowerMode(displayId, PowerMode::ON).isOk()); + const auto& [status, displayConfigurations] = + mComposerClient->getDisplayConfigurations(displayId); + EXPECT_TRUE(status.isOk()); + EXPECT_FALSE(displayConfigurations.empty()); + for (const auto& config : displayConfigurations) { + if (config.vrrConfig && config.vrrConfig->notifyExpectedPresentConfig) { + const auto [vsyncPeriodStatus, oldVsyncPeriod] = + mComposerClient->getDisplayVsyncPeriod(displayId); + ASSERT_TRUE(vsyncPeriodStatus.isOk()); + const auto& [timelineStatus, timeline] = + mComposerClient->setActiveConfigWithConstraints( + &display, config.configId, + VsyncPeriodChangeConstraints{.seamlessRequired = false}); + ASSERT_TRUE(timelineStatus.isOk()); + if (timeline.refreshRequired) { + sendRefreshFrame(display, &timeline); + } + waitForVsyncPeriodChange(displayId, timeline, systemTime(), oldVsyncPeriod, + config.vsyncPeriod); + func(display, config); + } + } + EXPECT_TRUE( + mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::OFF).isOk()); + } + } + void configureLayer(const VtsDisplay& display, int64_t layer, Composition composition, const Rect& displayFrame, const FRect& cropRect) { auto& writer = getWriter(display.getDisplayId()); @@ -2592,7 +2617,7 @@ TEST_P(GraphicsComposerAidlCommandTest, SetIdleTimerEnabled_Timeout_2) { const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); ASSERT_NE(nullptr, buffer->handle); - const auto layer = createOnScreenLayer(); + const auto layer = createOnScreenLayer(getPrimaryDisplay()); auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBuffer(getPrimaryDisplayId(), layer, /*slot*/ 0, buffer->handle, /*acquireFence*/ -1); @@ -2778,8 +2803,8 @@ TEST_P(GraphicsComposerAidlCommandV2Test, } // Send the REFRESH_RATE_INDICATOR update - ASSERT_NO_FATAL_FAILURE( - sendBufferUpdate(createOnScreenLayer(Composition::REFRESH_RATE_INDICATOR))); + ASSERT_NO_FATAL_FAILURE(sendBufferUpdate( + createOnScreenLayer(getPrimaryDisplay(), Composition::REFRESH_RATE_INDICATOR))); std::this_thread::sleep_for(1s); EXPECT_FALSE(checkIfCallbackRefreshRateChangedDebugEnabledReceived(displayFilter)) << "A callback should not be received for REFRESH_RATE_INDICATOR"; @@ -3075,6 +3100,141 @@ TEST_P(GraphicsComposerAidlCommandV3Test, NoCreateDestroyBatchedCommandIncorrect ASSERT_TRUE(errors.size() == 1 && errors[0].errorCode == IComposerClient::EX_BAD_LAYER); } +TEST_P(GraphicsComposerAidlCommandV3Test, notifyExpectedPresentTimeout) { + if (hasCapability(Capability::PRESENT_FENCE_IS_NOT_RELIABLE)) { + GTEST_SUCCEED() << "Device has unreliable present fences capability, skipping"; + return; + } + forEachNotifyExpectedPresentConfig([&](VtsDisplay& display, + const DisplayConfiguration& config) { + const auto displayId = display.getDisplayId(); + auto minFrameIntervalNs = config.vrrConfig->minFrameIntervalNs; + const auto timeoutNs = config.vrrConfig->notifyExpectedPresentConfig->timeoutNs; + + const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); + ASSERT_NE(nullptr, buffer); + const auto layer = createOnScreenLayer(display); + auto& writer = getWriter(displayId); + writer.setLayerBuffer(displayId, layer, /*slot*/ 0, buffer->handle, + /*acquireFence*/ -1); + sp<::android::Fence> presentFence = presentAndGetFence(ComposerClientWriter::kNoTimestamp, + displayId, minFrameIntervalNs); + presentFence->waitForever(LOG_TAG); + auto lastPresentTimeNs = presentFence->getSignalTime(); + + // Frame presents 30ms after timeout + const auto timeout = static_cast(timeoutNs); + const auto vsyncPeriod = config.vsyncPeriod; + int32_t frameAfterTimeoutNs = + vsyncPeriod * static_cast((timeout + 30ms).count() / vsyncPeriod); + auto expectedPresentTimestamp = + ClockMonotonicTimestamp{lastPresentTimeNs + frameAfterTimeoutNs}; + std::this_thread::sleep_for(timeout); + mComposerClient->notifyExpectedPresent(displayId, expectedPresentTimestamp, + minFrameIntervalNs); + presentFence = presentAndGetFence(expectedPresentTimestamp, displayId, minFrameIntervalNs); + presentFence->waitForever(LOG_TAG); + lastPresentTimeNs = presentFence->getSignalTime(); + ASSERT_GE(lastPresentTimeNs, expectedPresentTimestamp.timestampNanos - vsyncPeriod / 2); + mComposerClient->destroyLayer(displayId, layer, &writer); + }); +} + +TEST_P(GraphicsComposerAidlCommandV3Test, notifyExpectedPresentFrameIntervalChange) { + if (hasCapability(Capability::PRESENT_FENCE_IS_NOT_RELIABLE)) { + GTEST_SUCCEED() << "Device has unreliable present fences capability, skipping"; + return; + } + forEachNotifyExpectedPresentConfig([&](VtsDisplay& display, + const DisplayConfiguration& config) { + const auto displayId = display.getDisplayId(); + const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); + ASSERT_NE(nullptr, buffer); + const auto layer = createOnScreenLayer(display); + auto& writer = getWriter(displayId); + writer.setLayerBuffer(displayId, layer, /*slot*/ 0, buffer->handle, + /*acquireFence*/ -1); + auto minFrameIntervalNs = config.vrrConfig->minFrameIntervalNs; + sp<::android::Fence> presentFence = presentAndGetFence(ComposerClientWriter::kNoTimestamp, + displayId, minFrameIntervalNs); + presentFence->waitForever(LOG_TAG); + auto lastPresentTimeNs = presentFence->getSignalTime(); + + auto vsyncPeriod = config.vsyncPeriod; + int32_t highestDivisor = VtsComposerClient::kMaxFrameIntervalNs / vsyncPeriod; + int32_t lowestDivisor = minFrameIntervalNs / vsyncPeriod; + const auto headsUpNs = config.vrrConfig->notifyExpectedPresentConfig->headsUpNs; + float totalDivisorsPassed = 0.f; + for (int divisor = lowestDivisor; divisor <= highestDivisor; divisor++) { + const auto frameIntervalNs = vsyncPeriod * divisor; + const auto frameAfterHeadsUp = frameIntervalNs * (headsUpNs / frameIntervalNs); + auto presentTime = lastPresentTimeNs + frameIntervalNs + frameAfterHeadsUp; + const auto expectedPresentTimestamp = ClockMonotonicTimestamp{presentTime}; + ASSERT_TRUE(mComposerClient + ->notifyExpectedPresent(displayId, expectedPresentTimestamp, + frameIntervalNs) + .isOk()); + presentFence = presentAndGetFence(expectedPresentTimestamp, displayId, frameIntervalNs); + presentFence->waitForever(LOG_TAG); + lastPresentTimeNs = presentFence->getSignalTime(); + if (lastPresentTimeNs >= expectedPresentTimestamp.timestampNanos - vsyncPeriod / 2) { + ++totalDivisorsPassed; + } + } + EXPECT_TRUE(totalDivisorsPassed > + (static_cast(highestDivisor - lowestDivisor)) * 0.75f); + mComposerClient->destroyLayer(displayId, layer, &writer); + }); +} + +TEST_P(GraphicsComposerAidlCommandV3Test, frameIntervalChangeAtPresentFrame) { + if (hasCapability(Capability::PRESENT_FENCE_IS_NOT_RELIABLE)) { + GTEST_SUCCEED() << "Device has unreliable present fences capability, skipping"; + return; + } + forEachNotifyExpectedPresentConfig([&](VtsDisplay& display, + const DisplayConfiguration& config) { + const auto displayId = display.getDisplayId(); + const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); + ASSERT_NE(nullptr, buffer); + const auto layer = createOnScreenLayer(display); + auto& writer = getWriter(displayId); + writer.setLayerBuffer(displayId, layer, /*slot*/ 0, buffer->handle, + /*acquireFence*/ -1); + auto minFrameIntervalNs = config.vrrConfig->minFrameIntervalNs; + + auto vsyncPeriod = config.vsyncPeriod; + int32_t highestDivisor = VtsComposerClient::kMaxFrameIntervalNs / vsyncPeriod; + int32_t lowestDivisor = minFrameIntervalNs / vsyncPeriod; + const auto headsUpNs = config.vrrConfig->notifyExpectedPresentConfig->headsUpNs; + float totalDivisorsPassed = 0.f; + int divisor = lowestDivisor; + auto frameIntervalNs = vsyncPeriod * divisor; + sp<::android::Fence> presentFence = + presentAndGetFence(ComposerClientWriter::kNoTimestamp, displayId, frameIntervalNs); + presentFence->waitForever(LOG_TAG); + auto lastPresentTimeNs = presentFence->getSignalTime(); + do { + frameIntervalNs = vsyncPeriod * divisor; + ++divisor; + const auto nextFrameIntervalNs = vsyncPeriod * divisor; + const auto frameAfterHeadsUp = frameIntervalNs * (headsUpNs / frameIntervalNs); + auto presentTime = lastPresentTimeNs + frameIntervalNs + frameAfterHeadsUp; + const auto expectedPresentTimestamp = ClockMonotonicTimestamp{presentTime}; + presentFence = + presentAndGetFence(expectedPresentTimestamp, displayId, nextFrameIntervalNs); + presentFence->waitForever(LOG_TAG); + lastPresentTimeNs = presentFence->getSignalTime(); + if (lastPresentTimeNs >= expectedPresentTimestamp.timestampNanos - vsyncPeriod / 2) { + ++totalDivisorsPassed; + } + } while (divisor < highestDivisor); + EXPECT_TRUE(totalDivisorsPassed > + (static_cast(highestDivisor - lowestDivisor)) * 0.75f); + mComposerClient->destroyLayer(displayId, layer, &writer); + }); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlCommandTest); INSTANTIATE_TEST_SUITE_P( PerInstance, GraphicsComposerAidlCommandTest, -- GitLab From df32f52a471c94b0f1ae1a16422dc56c77184075 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Fri, 16 Feb 2024 20:15:59 +0000 Subject: [PATCH 362/418] keymint: document deprecation of UNLOCKED_DEVICE_REQUIRED enforcement KeyMint enforcement of UNLOCKED_DEVICE_REQUIRED is broken, has never been used, and cannot be fixed. So, document that it does not need to be implemented. Also remove the VTS test for it, which was disabled. UNLOCKED_DEVICE_REQUIRED remains supported in Keystore. Bug: 321100166 Test: Build Change-Id: If4d47ee49c9d4a595820cfceb0f5f3027f99ee9f --- .../security/keymint/IKeyMintDevice.aidl | 61 +++++++++++-------- .../hardware/security/keymint/Tag.aidl | 9 +-- .../aidl/vts/functional/KeyMintTest.cpp | 34 ----------- 3 files changed, 39 insertions(+), 65 deletions(-) diff --git a/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl b/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl index aeb0163977..4ebafee126 100644 --- a/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl +++ b/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl @@ -794,33 +794,40 @@ interface IKeyMintDevice { in @nullable HardwareAuthToken authToken); /** - * Called by client to notify the IKeyMintDevice that the device is now locked, and keys with - * the UNLOCKED_DEVICE_REQUIRED tag should no longer be usable. When this function is called, - * the IKeyMintDevice should note the current timestamp, and attempts to use - * UNLOCKED_DEVICE_REQUIRED keys must be rejected with Error::DEVICE_LOCKED until an - * authentication token with a later timestamp is presented. If the `passwordOnly' argument is - * set to true the sufficiently-recent authentication token must indicate that the user - * authenticated with a password, not a biometric. - * - * Note that the IKeyMintDevice UNLOCKED_DEVICE_REQUIRED semantics are slightly different from - * the UNLOCKED_DEVICE_REQUIRED semantics enforced by keystore. Keystore handles device locking - * on a per-user basis. Because auth tokens do not contain an Android user ID, it's not - * possible to replicate the keystore enforcement logic in IKeyMintDevice. So from the - * IKeyMintDevice perspective, any user unlock unlocks all UNLOCKED_DEVICE_REQUIRED keys. - * Keystore will continue enforcing the per-user device locking. - * - * @param passwordOnly specifies whether the device must be unlocked with a password, rather - * than a biometric, before UNLOCKED_DEVICE_REQUIRED keys can be used. - * - * @param timestampToken is used by StrongBox implementations of IKeyMintDevice. It - * provides the StrongBox IKeyMintDevice with a fresh, MACed timestamp which it can use as the - * device-lock time, for future comparison against auth tokens when operations using - * UNLOCKED_DEVICE_REQUIRED keys are attempted. Unless the auth token timestamp is newer than - * the timestamp in the timestampToken, the device is still considered to be locked. - * Crucially, if a StrongBox IKeyMintDevice receives a deviceLocked() call with a timestampToken - * timestamp that is less than the timestamp in the last deviceLocked() call, it must ignore the - * new timestamp. TEE IKeyMintDevice implementations will receive an empty timestampToken (zero - * values and empty vectors) and should use their own clock as the device-lock time. + * This method is deprecated and has never been used. Implementations should return + * ErrorCode::UNIMPLEMENTED. + * + * This method was originally intended to be used to notify KeyMint that the device is now + * locked, and keys with the UNLOCKED_DEVICE_REQUIRED tag should no longer be usable until a + * later valid HardwareAuthToken is presented. However, Android has never called this method + * and it cannot start doing so, because KeyMint's enforcement of UNLOCKED_DEVICE_REQUIRED did + * not provide the correct semantics and therefore could never be enabled. Specifically, the + * following issues existed with the design of KeyMint's enforcement of + * UNLOCKED_DEVICE_REQUIRED: + * + * o It assumed a global device lock state only.  Android actually has a separate lock state for + * each user. See the javadoc for KeyguardManager#isDeviceLocked(). + * o It assumed that unlocking the device involves a successful user authentication that + * generates a HardwareAuthToken. This is not necessarily the case, since Android supports + * weaker unlock methods including class 1 and 2 biometrics and trust agents. These unlock + * methods do not generate a HardwareAuthToken or interact with KeyMint in any way. Also, + * UNLOCKED_DEVICE_REQUIRED must work even for users who do not have a secure lock screen. + * o It would have made UNLOCKED_DEVICE_REQUIRED incompatible with requiring user + * authentication in some cases. These two key protections can each require a different + * HardwareAuthToken, but KeyMint only supports one HardwareAuthToken per operation. + * o It would have provided no security benefit over Keystore's enforcement of + * UNLOCKED_DEVICE_REQUIRED. This is because since Android 12, Keystore enforces + * UNLOCKED_DEVICE_REQUIRED not just logically, but it also cryptographically by + * superencrypting all such keys and wiping or re-encrypting the superencryption key when the + * device is locked (whenever possible). KeyMint is still used to support biometric unlocks, + * but this mechanism does not use KeyMint's direct enforcement of UNLOCKED_DEVICE_REQUIRED. + * + * Therefore, this method is not useful, and there is no reason for it be called. + * Implementations should return ErrorCode::UNIMPLEMENTED and should not include + * UNLOCKED_DEVICE_REQUIRED in the list of hardware-enforced key parameters. + * + * @param passwordOnly N/A due to the deprecation + * @param timestampToken N/A due to the deprecation */ void deviceLocked(in boolean passwordOnly, in @nullable TimeStampToken timestampToken); diff --git a/security/keymint/aidl/android/hardware/security/keymint/Tag.aidl b/security/keymint/aidl/android/hardware/security/keymint/Tag.aidl index be29f59e65..996e4e3479 100644 --- a/security/keymint/aidl/android/hardware/security/keymint/Tag.aidl +++ b/security/keymint/aidl/android/hardware/security/keymint/Tag.aidl @@ -482,11 +482,12 @@ enum Tag { /** * Tag::UNLOCKED_DEVICE_REQUIRED specifies that the key may only be used when the device is - * unlocked, as reported to KeyMint via authToken operation parameter and the - * IKeyMintDevice::deviceLocked() method + * unlocked. * - * Must be hardware-enforced (but is also keystore-enforced on a per-user basis: see the - * deviceLocked() documentation). + * This tag was originally intended to be hardware-enforced. However, the support for hardware + * enforcement of this tag is now considered deprecated because it cannot work correctly, and + * even if implemented it does nothing because it was never enabled by Keystore. Refer to the + * documentation for the deprecated method IKeyMintDevice::deviceLocked(). */ UNLOCKED_DEVICE_REQUIRED = TagType.BOOL | 509, diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index 0b7627c5b2..a8f41c3d6a 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -8760,40 +8760,6 @@ TEST_P(EarlyBootKeyTest, DISABLED_FullTest) { INSTANTIATE_KEYMINT_AIDL_TEST(EarlyBootKeyTest); -using UnlockedDeviceRequiredTest = KeyMintAidlTestBase; - -// This may be a problematic test. It can't be run repeatedly without unlocking the device in -// between runs... and on most test devices there are no enrolled credentials so it can't be -// unlocked at all, meaning the only way to get the test to pass again on a properly-functioning -// device is to reboot it. For that reason, this is disabled by default. It can be used as part of -// a manual test process, which includes unlocking between runs, which is why it's included here. -// Well, that and the fact that it's the only test we can do without also making calls into the -// Gatekeeper HAL. We haven't written any cross-HAL tests, and don't know what all of the -// implications might be, so that may or may not be a solution. -TEST_P(UnlockedDeviceRequiredTest, DISABLED_KeysBecomeUnusable) { - auto [aesKeyData, hmacKeyData, rsaKeyData, ecdsaKeyData] = - CreateTestKeys(TAG_UNLOCKED_DEVICE_REQUIRED, ErrorCode::OK); - KeyBlobDeleter aes_deleter(keymint_, aesKeyData.blob); - KeyBlobDeleter hmac_deleter(keymint_, hmacKeyData.blob); - KeyBlobDeleter rsa_deleter(keymint_, rsaKeyData.blob); - KeyBlobDeleter ecdsa_deleter(keymint_, ecdsaKeyData.blob); - - EXPECT_EQ(ErrorCode::OK, UseAesKey(aesKeyData.blob)); - EXPECT_EQ(ErrorCode::OK, UseHmacKey(hmacKeyData.blob)); - EXPECT_EQ(ErrorCode::OK, UseRsaKey(rsaKeyData.blob)); - EXPECT_EQ(ErrorCode::OK, UseEcdsaKey(ecdsaKeyData.blob)); - - ErrorCode rc = GetReturnErrorCode( - keyMint().deviceLocked(false /* passwordOnly */, {} /* timestampToken */)); - ASSERT_EQ(ErrorCode::OK, rc); - EXPECT_EQ(ErrorCode::DEVICE_LOCKED, UseAesKey(aesKeyData.blob)); - EXPECT_EQ(ErrorCode::DEVICE_LOCKED, UseHmacKey(hmacKeyData.blob)); - EXPECT_EQ(ErrorCode::DEVICE_LOCKED, UseRsaKey(rsaKeyData.blob)); - EXPECT_EQ(ErrorCode::DEVICE_LOCKED, UseEcdsaKey(ecdsaKeyData.blob)); -} - -INSTANTIATE_KEYMINT_AIDL_TEST(UnlockedDeviceRequiredTest); - using VsrRequirementTest = KeyMintAidlTestBase; // @VsrTest = VSR-3.10-008 -- GitLab From 127dc87b2f794663679dd1e831e2328d908dcd4b Mon Sep 17 00:00:00 2001 From: shrikar Date: Mon, 12 Feb 2024 19:12:33 +0000 Subject: [PATCH 363/418] Populate both VehiclePropConfig and VehicleAreaConfig.access Bug: 323122049 Test: atest JsonConfigLoaderTest VtsHalAutomotiveVehicle_TargetTest Change-Id: I398b136e705df805c25d541f7721f36c47813273 --- .../automotive/vehicle/VehicleAreaConfig.aidl | 20 ++-- .../automotive/vehicle/VehiclePropConfig.aidl | 17 +++- .../include/JsonConfigLoader.h | 6 +- .../JsonConfigLoader/src/JsonConfigLoader.cpp | 15 ++- .../test/JsonConfigLoaderUnitTest.cpp | 22 ++--- .../VtsHalAutomotiveVehicle_TargetTest.cpp | 97 ++++++++++++------- 6 files changed, 108 insertions(+), 69 deletions(-) diff --git a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl index aab3c46d76..96c4a74528 100644 --- a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl +++ b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl @@ -53,21 +53,25 @@ parcelable VehicleAreaConfig { /** * Defines if the area ID for this property is READ, WRITE or READ_WRITE. This only applies if * the property is defined in the framework as a READ_WRITE property. Access (if set) should be - * equal to, or a superset of, the VehiclePropConfig.access of the property. + * equal to, or a superset of, the VehiclePropConfig.access of the property. If access is not + * set for this VehicleAreaConfig (i.e. access == VehiclePropertyAccess.NONE), then it will + * automatically be assumed that the areaId access is the same as the VehiclePropConfig.access + * of the property. * * For example, if a property is defined as READ_WRITE, but the OEM wants to specify certain * area Ids as READ-only, the corresponding areaIds should have an access set to READ, while the * others must be set to READ_WRITE. We do not support setting specific area Ids to WRITE-only * when the property is READ-WRITE. * - * Exclusively one of VehiclePropConfig and the VehicleAreaConfigs should be specified for a - * single property. If VehiclePropConfig.access is populated, none of the - * VehicleAreaConfig.access values should be populated. If VehicleAreaConfig.access values are - * populated, VehiclePropConfig.access must not be populated. + * VehiclePropConfig.access should be equal the maximal subset of the accesses set in + * VehiclePropConfig.areaConfigs, excluding those with access == VehiclePropertyAccess.NONE. For + * example, if a VehiclePropConfig has some area configs with an access of + * VehiclePropertyAccess.READ and others with an access of VehiclePropertyAccess.READ_WRITE, the + * VehiclePropConfig object's access should be VehiclePropertyAccess.READ. * - * VehicleAreaConfigs should not be partially populated with access. If the OEM wants to specify - * access for one area Id, all other configs should be populated with their access levels as - * well. + * In the scenario where the OEM actually wants to set VehicleAreaConfig.access = + * VehiclePropertyAccess.NONE, the maximal subset rule should apply with this area config + * included, making the VehiclePropConfig.access = VehiclePropertyAccess.NONE. */ VehiclePropertyAccess access = VehiclePropertyAccess.NONE; diff --git a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehiclePropConfig.aidl b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehiclePropConfig.aidl index 1135b267bb..c629b821a7 100644 --- a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehiclePropConfig.aidl +++ b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehiclePropConfig.aidl @@ -29,9 +29,20 @@ parcelable VehiclePropConfig { /** * Defines if the property is read or write or both. * - * If populating VehicleAreaConfig.access fields for this property, this field should not be - * populated. If the OEM decides to populate this field, none of the VehicleAreaConfig.access - * fields should be populated. + * If any VehicleAreaConfig.access is not set (i.e. VehicleAreaConfig.access == + * VehiclePropertyAccess.NONE) for this property, it will automatically be assumed that the + * areaId access is the same as the VehiclePropConfig.access. + * + * VehiclePropConfig.access should be equal the maximal subset of the accesses set in its + * areaConfigs, excluding those with access == VehiclePropertyAccess.NONE. For example, if a + * VehiclePropConfig has some area configs with an access of VehiclePropertyAccess.READ and + * others with an access of VehiclePropertyAccess.READ_WRITE, the VehiclePropConfig object's + * access should be VehiclePropertyAccess.READ. + * + * In the scenario where the OEM actually wants to set VehicleAreaConfig.access = + * VehiclePropertyAccess.NONE for a particular area config, the maximal subset rule should apply + * with this area config included, making the VehiclePropConfig.access = + * VehiclePropertyAccess.NONE. */ VehiclePropertyAccess access = VehiclePropertyAccess.NONE; diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h index 82e5860780..00c497f4d4 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h @@ -142,10 +142,8 @@ class JsonConfigParser { std::vector* errors); // Prase a JSON field as an array of area configs. - void parseAreas( - const Json::Value& parentJsonNode, const std::string& fieldName, - ConfigDeclaration* outPtr, std::vector* errors, - aidl::android::hardware::automotive::vehicle::VehiclePropertyAccess defaultAccess); + void parseAreas(const Json::Value& parentJsonNode, const std::string& fieldName, + ConfigDeclaration* outPtr, std::vector* errors); }; } // namespace jsonconfigloader_impl diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp index 76db891a5b..7156b7e42f 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp @@ -538,8 +538,7 @@ bool JsonConfigParser::parsePropValues(const Json::Value& parentJsonNode, } void JsonConfigParser::parseAreas(const Json::Value& parentJsonNode, const std::string& fieldName, - ConfigDeclaration* config, std::vector* errors, - VehiclePropertyAccess defaultAccess) { + ConfigDeclaration* config, std::vector* errors) { if (!parentJsonNode.isObject()) { errors->push_back("Node: " + parentJsonNode.toStyledString() + " is not an object"); return; @@ -563,8 +562,8 @@ void JsonConfigParser::parseAreas(const Json::Value& parentJsonNode, const std:: } VehicleAreaConfig areaConfig = {}; areaConfig.areaId = areaId; - parseAccessChangeMode(jsonAreaConfig, "access", propStr, &defaultAccess, &areaConfig.access, - errors); + parseAccessChangeMode(jsonAreaConfig, "access", propStr, &(config->config.access), + &areaConfig.access, errors); tryParseJsonValueToVariable(jsonAreaConfig, "minInt32Value", /*optional=*/true, &areaConfig.minInt32Value, errors); tryParseJsonValueToVariable(jsonAreaConfig, "maxInt32Value", /*optional=*/true, @@ -622,8 +621,8 @@ std::optional JsonConfigParser::parseEachProperty( if (itChangeMode != ChangeModeForVehicleProperty.end()) { defaultChangeMode = &itChangeMode->second; } - VehiclePropertyAccess access = VehiclePropertyAccess::NONE; - parseAccessChangeMode(propJsonValue, "access", propStr, defaultAccessMode, &access, errors); + parseAccessChangeMode(propJsonValue, "access", propStr, defaultAccessMode, + &configDecl.config.access, errors); parseAccessChangeMode(propJsonValue, "changeMode", propStr, defaultChangeMode, &configDecl.config.changeMode, errors); @@ -642,14 +641,14 @@ std::optional JsonConfigParser::parseEachProperty( tryParseJsonValueToVariable(propJsonValue, "maxSampleRate", /*optional=*/true, &configDecl.config.maxSampleRate, errors); - parseAreas(propJsonValue, "areas", &configDecl, errors, access); + parseAreas(propJsonValue, "areas", &configDecl, errors); // If there is no area config, by default we allow variable update rate, so we have to add // a global area config. if (configDecl.config.areaConfigs.size() == 0) { VehicleAreaConfig areaConfig = { .areaId = 0, - .access = access, + .access = configDecl.config.access, .supportVariableUpdateRate = true, }; configDecl.config.areaConfigs.push_back(std::move(areaConfig)); diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp index a13d3dff4e..54afbd4f76 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp @@ -286,7 +286,7 @@ TEST_F(JsonConfigLoaderUnitTest, testCheckDefaultAccessChangeMode) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& propConfig = configs.begin()->second.config; - ASSERT_EQ(propConfig.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(propConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::READ); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::STATIC); } @@ -308,7 +308,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAccessOverride) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& propConfig = configs.begin()->second.config; - ASSERT_EQ(propConfig.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(propConfig.access, VehiclePropertyAccess::WRITE); ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::WRITE); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::STATIC); } @@ -330,7 +330,7 @@ TEST_F(JsonConfigLoaderUnitTest, testChangeModeOverride) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& propConfig = configs.begin()->second.config; - ASSERT_EQ(propConfig.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(propConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::READ); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::ON_CHANGE); } @@ -353,7 +353,7 @@ TEST_F(JsonConfigLoaderUnitTest, testCustomProp) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& propConfig = configs.begin()->second.config; - ASSERT_EQ(propConfig.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(propConfig.access, VehiclePropertyAccess::WRITE); ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::WRITE); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::ON_CHANGE); } @@ -554,7 +554,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_Simple) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; - ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; ASSERT_EQ(areaConfig.minInt32Value, 1); @@ -641,7 +641,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesNoSupportedEnumValuesDeclared) ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; - ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; @@ -670,7 +670,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesSupportedEnumValues) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; - ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; @@ -702,7 +702,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesEmptySupportedEnumValues) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; - ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; @@ -731,7 +731,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAccess_areaOverrideGlobalDefault) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; - ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.access, VehiclePropertyAccess::READ_WRITE); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; @@ -759,7 +759,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAccess_globalOverrideDefault) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; - ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; @@ -791,7 +791,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAccess_areaOverrideGlobal) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; - ASSERT_EQ(config.access, VehiclePropertyAccess::NONE); + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 2u); const VehicleAreaConfig& areaConfig1 = config.areaConfigs[0]; diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index 0fd1cc69b4..2b054a1bac 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -58,6 +58,7 @@ using ::android::base::ScopedLockAssertion; using ::android::base::StringPrintf; using ::android::frameworks::automotive::vhal::ErrorCode; using ::android::frameworks::automotive::vhal::HalPropError; +using ::android::frameworks::automotive::vhal::IHalAreaConfig; using ::android::frameworks::automotive::vhal::IHalPropConfig; using ::android::frameworks::automotive::vhal::IHalPropValue; using ::android::frameworks::automotive::vhal::ISubscriptionCallback; @@ -136,6 +137,9 @@ class VtsHalAutomotiveVehicleTargetTest : public testing::TestWithParam>& areaConfigs) const; void verifyProperty(VehicleProperty propId, VehiclePropertyAccess access, VehiclePropertyChangeMode changeMode, VehiclePropertyGroup group, VehicleArea area, VehiclePropertyType propertyType); @@ -254,6 +258,23 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, testPropConfigs_onlyDefinedSystemPrope } } +TEST_P(VtsHalAutomotiveVehicleTargetTest, testPropConfigs_globalAccessIsMaximalAreaAccessSubset) { + if (!mVhalClient->isAidlVhal()) { + GTEST_SKIP() << "Skip for HIDL VHAL because HAL interface run-time version is only" + << "introduced for AIDL"; + } + + auto result = mVhalClient->getAllPropConfigs(); + ASSERT_TRUE(result.ok()) << "Failed to get all property configs, error: " + << result.error().message(); + + const auto& configs = result.value(); + for (size_t i = 0; i < configs.size(); i++) { + verifyGlobalAccessIsMaximalAreaAccessSubset(configs[i]->getAccess(), + configs[i]->getAreaConfigs()); + } +} + // Test get() return current value for properties. TEST_P(VtsHalAutomotiveVehicleTargetTest, get) { ALOGD("VtsHalAutomotiveVehicleTargetTest::get"); @@ -586,42 +607,10 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, testGetValuesTimestampAIDL) { } } -// Test that access mode is populated in exclusively one of the VehiclePropConfig or the -// VehicleAreaConfigs. Either VehiclePropConfig.access must be populated, or all the -// VehicleAreaConfig.access fields should be populated. -TEST_P(VtsHalAutomotiveVehicleTargetTest, testAccessModeExclusivityAIDL) { - if (!mVhalClient->isAidlVhal()) { - GTEST_SKIP() << "Skip checking access mode for HIDL because the access mode field is only " - "present for AIDL"; - } - - auto result = mVhalClient->getAllPropConfigs(); - ASSERT_TRUE(result.ok()); - for (const auto& cfgPtr : result.value()) { - const IHalPropConfig& cfg = *cfgPtr; - - bool propAccessIsSet = (cfg.getAccess() != toInt(VehiclePropertyAccess::NONE)); - bool unsetAreaAccessExists = false; - bool setAreaAccessExists = false; - - for (const auto& areaConfig : cfg.getAreaConfigs()) { - if (areaConfig->getAccess() == toInt(VehiclePropertyAccess::NONE)) { - unsetAreaAccessExists = true; - } else { - setAreaAccessExists = true; - } - } - - ASSERT_FALSE(propAccessIsSet && setAreaAccessExists) << StringPrintf( - "Both prop and area config access is set for propertyId %d", cfg.getPropId()); - ASSERT_FALSE(!propAccessIsSet && !setAreaAccessExists) << StringPrintf( - "Neither prop and area config access is set for propertyId %d", cfg.getPropId()); - ASSERT_FALSE(unsetAreaAccessExists && setAreaAccessExists) << StringPrintf( - "Area access is only set in some configs for propertyId %d", cfg.getPropId()); - } -} - void VtsHalAutomotiveVehicleTargetTest::verifyAccessMode(int actualAccess, int expectedAccess) { + if (actualAccess == toInt(VehiclePropertyAccess::NONE)) { + return; + } if (expectedAccess == toInt(VehiclePropertyAccess::READ_WRITE)) { ASSERT_TRUE(actualAccess == expectedAccess || actualAccess == toInt(VehiclePropertyAccess::READ)) @@ -633,6 +622,44 @@ void VtsHalAutomotiveVehicleTargetTest::verifyAccessMode(int actualAccess, int e "Expect to get VehiclePropertyAccess: %i, got %i", expectedAccess, actualAccess); } +void VtsHalAutomotiveVehicleTargetTest::verifyGlobalAccessIsMaximalAreaAccessSubset( + int propertyLevelAccess, + const std::vector>& areaConfigs) const { + bool readOnlyPresent = false; + bool writeOnlyPresent = false; + bool readWritePresent = false; + int maximalAreaAccessSubset = toInt(VehiclePropertyAccess::NONE); + for (size_t i = 0; i < areaConfigs.size(); i++) { + int access = areaConfigs[i]->getAccess(); + switch (access) { + case toInt(VehiclePropertyAccess::READ): + readOnlyPresent = true; + break; + case toInt(VehiclePropertyAccess::WRITE): + writeOnlyPresent = true; + break; + case toInt(VehiclePropertyAccess::READ_WRITE): + readWritePresent = true; + break; + default: + ASSERT_EQ(access, toInt(VehiclePropertyAccess::NONE)) << StringPrintf( + "Area access can be NONE only if global property access is also NONE"); + return; + } + } + + if (readOnlyPresent && !writeOnlyPresent) { + maximalAreaAccessSubset = toInt(VehiclePropertyAccess::READ); + } else if (writeOnlyPresent) { + maximalAreaAccessSubset = toInt(VehiclePropertyAccess::WRITE); + } else if (readWritePresent) { + maximalAreaAccessSubset = toInt(VehiclePropertyAccess::READ_WRITE); + } + ASSERT_EQ(propertyLevelAccess, maximalAreaAccessSubset) << StringPrintf( + "Expected global access to be equal to maximal area access subset %d, Instead got %d", + maximalAreaAccessSubset, propertyLevelAccess); +} + // Helper function to compare actual vs expected property config void VtsHalAutomotiveVehicleTargetTest::verifyProperty(VehicleProperty propId, VehiclePropertyAccess access, -- GitLab From 1abfda2defcc30c4803c9346cc8f227db53d97a3 Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Mon, 12 Feb 2024 19:56:37 +0900 Subject: [PATCH 364/418] Update VTS to exempt low-power TVs from APF This change updates the VTS to exempt TV devices that consume <= 2W of standby power from APF requirements. This update aligns with latest GTVS policy. Bug: 306587099 Test: TH (cherry picked from https://android-review.googlesource.com/q/commit:9f215110bf524e3bf1d2fb591a724623e11423bc) Merged-In: Ifec617520db20d1ef61f1eca63b7160d9191f446 Change-Id: Ifec617520db20d1ef61f1eca63b7160d9191f446 --- .../functional/wifi_sta_iface_aidl_test.cpp | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) 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 fa7149ff55..e456e498c2 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -74,7 +74,17 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { return testing::deviceSupportsFeature("com.google.android.tv.mdns_offload"); } - // Detected panel TV device by using ro.oem.key1 property. + bool doesDeviceSupportFullNetworkingUnder2w() { + return testing::deviceSupportsFeature("com.google.android.tv.full_networking_under_2w"); + } + + // Detect TV devices. + bool isTvDevice() { + return testing::deviceSupportsFeature("android.software.leanback") || + testing::deviceSupportsFeature("android.hardware.type.television"); + } + + // Detect Panel TV devices by using ro.oem.key1 property. // https://docs.partner.android.com/tv/build/platform/props-vars/ro-oem-key1 bool isPanelTvDevice() { const std::string oem_key1 = getPropertyString("ro.oem.key1"); @@ -135,10 +145,23 @@ TEST_P(WifiStaIfaceAidlTest, GetFeatureSet) { */ // @VsrTest = 5.3.12 TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { - // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi - // chipset does not have sufficient RAM to do so. - if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { - GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; + const std::string oem_key1 = getPropertyString("ro.oem.key1"); + if (isTvDevice()) { + // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi + // chipset does not have sufficient RAM to do so. + if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { + GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; + } + // For TV devices declaring the + // com.google.android.tv.full_networking_under_2w feature, this indicates + // the device can meet the <= 2W standby power requirement while + // continuously processing network packets on the CPU, even in standby mode. + // In these cases, APF support is strongly recommended rather than being + // mandatory. + if (doesDeviceSupportFullNetworkingUnder2w()) { + GTEST_SKIP() << "TV Device meets the <= 2W standby power demand requirement. It is not " + "required to support APF."; + } } int vendor_api_level = property_get_int32("ro.vendor.api_level", 0); // Before VSR 14, APF support is optional. -- GitLab From 310de813fa9e09e61743b1d14d70ec6f8b397c6c Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Mon, 19 Feb 2024 14:34:16 +0800 Subject: [PATCH 365/418] VTS: powerstats: skip GPS power stats Lassen GNSS power stats will be present after running GPS session once. Otherwise, VTS will fail due to missing GPS power stats. Bug: 325545917 Test: run vts -m VtsHalPowerStatsTargetTest Change-Id: I9d31017a86417fc18f4eab98ee25abfadfa396f9 Signed-off-by: Darren Hsu --- .../aidl/vts/VtsHalPowerStatsTargetTest.cpp | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/power/stats/aidl/vts/VtsHalPowerStatsTargetTest.cpp b/power/stats/aidl/vts/VtsHalPowerStatsTargetTest.cpp index 4ee14e3bd9..edc25b8996 100644 --- a/power/stats/aidl/vts/VtsHalPowerStatsTargetTest.cpp +++ b/power/stats/aidl/vts/VtsHalPowerStatsTargetTest.cpp @@ -65,10 +65,10 @@ class PowerStatsAidl : public testing::TestWithParam { template void testMatching(std::vector const& c1, R T::*f1, std::vector const& c2, R S::*f2); - bool containsTimedEntity(const std::string& str); + bool isEntitySkipped(const std::string& str); - void excludeTimedEntities(std::vector* entities, - std::vector* results); + void excludeSkippedEntities(std::vector* entities, + std::vector* results); std::shared_ptr powerstats; }; @@ -116,15 +116,20 @@ void PowerStatsAidl::testMatching(std::vector const& c1, R T::*f1, std::vecto EXPECT_EQ(c1fields, c2fields); } -bool PowerStatsAidl::containsTimedEntity(const std::string& str) { +bool PowerStatsAidl::isEntitySkipped(const std::string& str) { + bool skip = false; // TODO(b/229698505): Extend PowerEntityInfo to identify timed power entity - return str.find("AoC") != std::string::npos; + skip |= str.find("AoC") != std::string::npos; + // Lassen GNSS power stats will be present after running GPS session once. + // Otherwise, VTS will fail due to missing GPS power stats. + skip |= str.find("GPS") != std::string::npos; + return skip; } -void PowerStatsAidl::excludeTimedEntities(std::vector* entities, - std::vector* results) { +void PowerStatsAidl::excludeSkippedEntities(std::vector* entities, + std::vector* results) { for (auto it = entities->begin(); it != entities->end(); it++) { - if (containsTimedEntity((*it).name)) { + if (isEntitySkipped((*it).name)) { auto entityId = (*it).id; entities->erase(it--); @@ -214,19 +219,19 @@ TEST_P(PowerStatsAidl, TestGetStateResidency) { } // State residency must return all results except timed power entities -TEST_P(PowerStatsAidl, TestGetStateResidencyAllResultsExceptTimedEntities) { +TEST_P(PowerStatsAidl, TestGetStateResidencyAllResultsExceptSkippedEntities) { std::vector entities; ASSERT_OK(powerstats->getPowerEntityInfo(&entities)); std::vector results; ASSERT_OK(powerstats->getStateResidency({}, &results)); - excludeTimedEntities(&entities, &results); + excludeSkippedEntities(&entities, &results); testMatching(entities, &PowerEntity::id, results, &StateResidencyResult::id); } // Each result must contain all state residencies except timed power entities -TEST_P(PowerStatsAidl, TestGetStateResidencyAllStateResidenciesExceptTimedEntities) { +TEST_P(PowerStatsAidl, TestGetStateResidencyAllStateResidenciesExceptSkippedEntities) { std::vector entities; ASSERT_OK(powerstats->getPowerEntityInfo(&entities)); @@ -234,7 +239,7 @@ TEST_P(PowerStatsAidl, TestGetStateResidencyAllStateResidenciesExceptTimedEntiti ASSERT_OK(powerstats->getStateResidency({}, &results)); for (auto entity : entities) { - if (!containsTimedEntity(entity.name)) { + if (!isEntitySkipped(entity.name)) { auto it = std::find_if(results.begin(), results.end(), [&entity](const auto& x) { return x.id == entity.id; }); ASSERT_NE(it, results.end()); @@ -255,7 +260,7 @@ TEST_P(PowerStatsAidl, TestGetStateResidencySelectedResultsExceptTimedEntities) std::vector selectedEntities = getRandomSubset(entities); std::vector selectedIds; for (auto it = selectedEntities.begin(); it != selectedEntities.end(); it++) { - if (!containsTimedEntity((*it).name)) { + if (!isEntitySkipped((*it).name)) { selectedIds.push_back((*it).id); } else { selectedEntities.erase(it--); -- GitLab From c8a50dec9ad5189d8ee12f5fa4d9e7098e554018 Mon Sep 17 00:00:00 2001 From: Tyler Trephan Date: Fri, 19 Jan 2024 22:50:03 +0000 Subject: [PATCH 366/418] Generated UnitsForVehicleProperty.java from VehicleProeprty.aidl Test: None Bug: 319307524 Change-Id: I27d680b8d8a673e70224703bc18c7dff5113f2d3 --- ...ardware.automotive.vehicle-types-meta.json | 2 +- .../java/UnitsForVehicleProperty.java | 65 ++++++++++++++++ .../automotive/vehicle/VehicleProperty.aidl | 78 +++++++++---------- .../tools/generate_annotation_enums.py | 26 ++++++- 4 files changed, 129 insertions(+), 42 deletions(-) create mode 100644 automotive/vehicle/aidl/generated_lib/java/UnitsForVehicleProperty.java diff --git a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json index df0f51c7a1..c812326d2e 100644 --- a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json +++ b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json @@ -1089,7 +1089,7 @@ "data_enum": "TrailerState" }, { - "name": "Vehicle’s curb weight", + "name": "VEHICLE_CURB_WEIGHT", "value": 289410886 }, { diff --git a/automotive/vehicle/aidl/generated_lib/java/UnitsForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/UnitsForVehicleProperty.java new file mode 100644 index 0000000000..b30c8e6103 --- /dev/null +++ b/automotive/vehicle/aidl/generated_lib/java/UnitsForVehicleProperty.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * DO NOT EDIT MANUALLY!!! + * + * Generated by tools/generate_annotation_enums.py. + */ + +// clang-format off + +package android.hardware.automotive.vehicle; + +import java.util.Map; + +public final class UnitsForVehicleProperty { + + public static final Map values = Map.ofEntries( + Map.entry(VehicleProperty.INFO_MODEL_YEAR, VehicleUnit.YEAR), + Map.entry(VehicleProperty.INFO_FUEL_CAPACITY, VehicleUnit.MILLILITER), + Map.entry(VehicleProperty.INFO_EV_BATTERY_CAPACITY, VehicleUnit.WATT_HOUR), + Map.entry(VehicleProperty.INFO_EXTERIOR_DIMENSIONS, VehicleUnit.MILLIMETER), + Map.entry(VehicleProperty.PERF_ODOMETER, VehicleUnit.KILOMETER), + Map.entry(VehicleProperty.PERF_VEHICLE_SPEED, VehicleUnit.METER_PER_SEC), + Map.entry(VehicleProperty.PERF_VEHICLE_SPEED_DISPLAY, VehicleUnit.METER_PER_SEC), + Map.entry(VehicleProperty.PERF_STEERING_ANGLE, VehicleUnit.DEGREES), + Map.entry(VehicleProperty.PERF_REAR_STEERING_ANGLE, VehicleUnit.DEGREES), + Map.entry(VehicleProperty.ENGINE_COOLANT_TEMP, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.ENGINE_OIL_TEMP, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.ENGINE_RPM, VehicleUnit.RPM), + Map.entry(VehicleProperty.FUEL_LEVEL, VehicleUnit.MILLILITER), + Map.entry(VehicleProperty.EV_BATTERY_LEVEL, VehicleUnit.WATT_HOUR), + Map.entry(VehicleProperty.EV_CURRENT_BATTERY_CAPACITY, VehicleUnit.WATT_HOUR), + Map.entry(VehicleProperty.EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, VehicleUnit.MILLIWATTS), + Map.entry(VehicleProperty.RANGE_REMAINING, VehicleUnit.METER), + Map.entry(VehicleProperty.EV_BATTERY_AVERAGE_TEMPERATURE, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.TIRE_PRESSURE, VehicleUnit.KILOPASCAL), + Map.entry(VehicleProperty.CRITICALLY_LOW_TIRE_PRESSURE, VehicleUnit.KILOPASCAL), + Map.entry(VehicleProperty.HVAC_TEMPERATURE_CURRENT, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.HVAC_TEMPERATURE_SET, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.EXTERNAL_CAR_TIME, VehicleUnit.MILLI_SECS), + Map.entry(VehicleProperty.ANDROID_EPOCH_TIME, VehicleUnit.MILLI_SECS), + Map.entry(VehicleProperty.ENV_OUTSIDE_TEMPERATURE, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.WINDSHIELD_WIPERS_PERIOD, VehicleUnit.MILLI_SECS), + Map.entry(VehicleProperty.EV_CHARGE_CURRENT_DRAW_LIMIT, VehicleUnit.AMPERE), + Map.entry(VehicleProperty.EV_CHARGE_TIME_REMAINING, VehicleUnit.SECS), + Map.entry(VehicleProperty.CRUISE_CONTROL_TARGET_SPEED, VehicleUnit.METER_PER_SEC), + Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, VehicleUnit.MILLI_SECS), + Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, VehicleUnit.MILLIMETER) + ); + +} diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index 812b9b9b06..6f5c0c1aaf 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -79,7 +79,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:YEAR + * @unit VehicleUnit.YEAR * @version 2 */ INFO_MODEL_YEAR = 0x0103 + 0x10000000 + 0x01000000 @@ -89,7 +89,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLILITER + * @unit VehicleUnit.MILLILITER * @version 2 */ INFO_FUEL_CAPACITY = 0x0104 + 0x10000000 + 0x01000000 @@ -124,7 +124,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:WH + * @unit VehicleUnit.WATT_HOUR * @version 2 */ INFO_EV_BATTERY_CAPACITY = 0x0106 + 0x10000000 + 0x01000000 @@ -184,7 +184,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLIMETER + * @unit VehicleUnit.MILLIMETER * @version 2 */ INFO_EXTERIOR_DIMENSIONS = 0x010B + 0x10000000 + 0x01000000 @@ -210,7 +210,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:KILOMETER + * @unit VehicleUnit.KILOMETER * @version 2 */ PERF_ODOMETER = 0x0204 + 0x10000000 + 0x01000000 @@ -226,7 +226,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:METER_PER_SEC + * @unit VehicleUnit.METER_PER_SEC * @version 2 */ PERF_VEHICLE_SPEED = 0x0207 + 0x10000000 + 0x01000000 @@ -239,7 +239,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:METER_PER_SEC + * @unit VehicleUnit.METER_PER_SEC * @version 2 */ PERF_VEHICLE_SPEED_DISPLAY = 0x0208 + 0x10000000 + 0x01000000 @@ -251,7 +251,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:DEGREES + * @unit VehicleUnit.DEGREES * @version 2 */ PERF_STEERING_ANGLE = 0x0209 + 0x10000000 + 0x01000000 @@ -263,7 +263,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:DEGREES + * @unit VehicleUnit.DEGREES * @version 2 */ PERF_REAR_STEERING_ANGLE = 0x0210 + 0x10000000 + 0x01000000 @@ -273,7 +273,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS * @version 2 */ ENGINE_COOLANT_TEMP = 0x0301 + 0x10000000 + 0x01000000 @@ -293,7 +293,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS * @version 2 */ ENGINE_OIL_TEMP = 0x0304 + 0x10000000 + 0x01000000 @@ -303,7 +303,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:RPM + * @unit VehicleUnit.RPM * @version 2 */ ENGINE_RPM = 0x0305 + 0x10000000 + 0x01000000 @@ -356,7 +356,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLILITER + * @unit VehicleUnit.MILLILITER * @version 2 */ FUEL_LEVEL = 0x0307 + 0x10000000 + 0x01000000 @@ -383,7 +383,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:WH + * @unit VehicleUnit.WATT_HOUR * @version 2 */ EV_BATTERY_LEVEL = 0x0309 + 0x10000000 + 0x01000000 @@ -398,7 +398,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:WH + * @unit VehicleUnit.WATT_HOUR * @version 2 */ EV_CURRENT_BATTERY_CAPACITY = @@ -433,7 +433,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MW + * @unit VehicleUnit.MILLIWATTS * @version 2 */ EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 0x030C + 0x10000000 + 0x01000000 @@ -452,7 +452,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:METER + * @unit VehicleUnit.METER * @version 2 */ RANGE_REMAINING = 0x0308 + 0x10000000 + 0x01000000 @@ -466,7 +466,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS * @version 3 */ EV_BATTERY_AVERAGE_TEMPERATURE = @@ -494,7 +494,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:KILOPASCAL + * @unit VehicleUnit.KILOPASCAL * @version 2 */ TIRE_PRESSURE = 0x0309 + 0x10000000 + 0x07000000 @@ -510,7 +510,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:KILOPASCAL + * @unit VehicleUnit.KILOPASCAL * @version 2 */ CRITICALLY_LOW_TIRE_PRESSURE = 0x030A + 0x10000000 + 0x07000000 @@ -862,7 +862,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS * @version 2 */ HVAC_TEMPERATURE_CURRENT = 0x0502 + 0x10000000 + 0x05000000 @@ -894,7 +894,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS * @version 2 */ HVAC_TEMPERATURE_SET = 0x0503 + 0x10000000 + 0x05000000 @@ -1130,7 +1130,7 @@ enum VehicleProperty { * configArray[1] = FAHRENHEIT * * This parameter MAY be used for displaying any HVAC temperature in the system. - * Values must be one of VehicleUnit::CELSIUS or VehicleUnit::FAHRENHEIT + * Values must be one of VehicleUnit.CELSIUS or VehicleUnit.FAHRENHEIT * Note that internally, all temperatures are represented in floating point Celsius. * * If updating HVAC_TEMPERATURE_DISPLAY_UNITS affects the values of other *_DISPLAY_UNITS @@ -1287,7 +1287,7 @@ enum VehicleProperty { * * floatValues[0] = the requested value that an application wants to set a temperature to. * floatValues[1] = the unit for floatValues[0]. It should be one of - * {VehicleUnit:CELSIUS, VehicleUnit:FAHRENHEIT}. + * {VehicleUnit.CELSIUS, VehicleUnit.FAHRENHEIT}. * floatValues[2] = the value OEMs suggested in CELSIUS. This value is not included * in the request. * floatValues[3] = the value OEMs suggested in FAHRENHEIT. This value is not included @@ -1300,18 +1300,18 @@ enum VehicleProperty { * For example, when a user uses the voice assistant to set HVAC temperature to 66.2 in * Fahrenheit. * First, an application will set this property with the value - * [66.2, (float)VehicleUnit:FAHRENHEIT,0,0]. + * [66.2, (float)VehicleUnit.FAHRENHEIT,0,0]. * If OEMs suggest to set 19.0 in Celsius or 66.5 in Fahrenheit for user's request, then VHAL * must generate a callback with property value - * [66.2, (float)VehicleUnit:FAHRENHEIT, 19.0, 66.5]. After the voice assistant gets the + * [66.2, (float)VehicleUnit.FAHRENHEIT, 19.0, 66.5]. After the voice assistant gets the * callback, it will inform the user and set HVAC temperature to the suggested value. * * Another example, an application receives 21 Celsius as the current temperature value by * querying HVC_TEMPERATURE_SET. But the application wants to know what value is displayed on * the car's UI in Fahrenheit. - * For this, the application sets the property to [21, (float)VehicleUnit:CELSIUS, 0, 0]. If + * For this, the application sets the property to [21, (float)VehicleUnit.CELSIUS, 0, 0]. If * the suggested value by the OEM for 21 Celsius is 70 Fahrenheit, then VHAL must generate a - * callback with property value [21, (float)VehicleUnit:CELSIUS, 21.0, 70.0]. + * callback with property value [21, (float)VehicleUnit.CELSIUS, 21.0, 70.0]. * In this case, the application can know that the value is 70.0 Fahrenheit in the car’s UI. * * @change_mode VehiclePropertyChangeMode.ON_CHANGE @@ -1504,7 +1504,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLI_SECS + * @unit VehicleUnit.MILLI_SECS * @version 2 */ EXTERNAL_CAR_TIME = 0x0608 + 0x10000000 // VehiclePropertyGroup:SYSTEM @@ -1534,7 +1534,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE - * @unit VehicleUnit:MILLI_SECS + * @unit VehicleUnit.MILLI_SECS * @version 2 */ ANDROID_EPOCH_TIME = 0x0606 + 0x10000000 + 0x01000000 @@ -1559,7 +1559,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS * @version 2 */ ENV_OUTSIDE_TEMPERATURE = 0x0703 + 0x10000000 + 0x01000000 @@ -3212,7 +3212,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLI_SECS + * @unit VehicleUnit.MILLI_SECS * @version 2 */ WINDSHIELD_WIPERS_PERIOD = @@ -4789,7 +4789,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:AMPERE + * @unit VehicleUnit.AMPERE * @version 2 */ EV_CHARGE_CURRENT_DRAW_LIMIT = 0x0F3F + 0x10000000 + 0x01000000 @@ -4854,7 +4854,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:SECS + * @unit VehicleUnit.SECS * @version 2 */ EV_CHARGE_TIME_REMAINING = 0x0F43 + 0x10000000 + 0x01000000 @@ -4888,7 +4888,7 @@ enum VehicleProperty { + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 /** - * Vehicle’s curb weight + * Vehicle’s curb weight in kilograms. * * Returns the vehicle's curb weight in kilograms. Curb weight is * the total weight of the vehicle with standard equipment and all @@ -4905,10 +4905,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:KILOGRAM * @version 2 */ - VEHICLE_CURB_WEIGHT = 0x0F46 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -5567,7 +5565,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:METER_PER_SEC + * @unit VehicleUnit.METER_PER_SEC * @version 2 */ CRUISE_CONTROL_TARGET_SPEED = @@ -5599,7 +5597,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLI_SECS + * @unit VehicleUnit.MILLI_SECS * @version 2 */ ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP = @@ -5630,7 +5628,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLIMETER + * @unit VehicleUnit.MILLIMETER * @version 2 */ ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE = diff --git a/automotive/vehicle/tools/generate_annotation_enums.py b/automotive/vehicle/tools/generate_annotation_enums.py index 93d408e53c..f2797678ab 100755 --- a/automotive/vehicle/tools/generate_annotation_enums.py +++ b/automotive/vehicle/tools/generate_annotation_enums.py @@ -18,7 +18,8 @@ Need ANDROID_BUILD_TOP environmental variable to be set. This script will update ChangeModeForVehicleProperty.h and AccessForVehicleProperty.h under generated_lib/cpp and - ChangeModeForVehicleProperty.java, AccessForVehicleProperty.java, EnumForVehicleProperty.java under generated_lib/java. + ChangeModeForVehicleProperty.java, AccessForVehicleProperty.java, EnumForVehicleProperty.java + UnitsForVehicleProperty.java under generated_lib/java. Usage: $ python generate_annotation_enums.py @@ -42,6 +43,8 @@ ACCESS_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_ 'AccessForVehicleProperty.java') ENUM_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/java/' + 'EnumForVehicleProperty.java') +UNITS_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/java/' + + 'UnitsForVehicleProperty.java') VERSION_CPP_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/cpp/' + 'VersionForVehicleProperty.h') SCRIPT_PATH = 'hardware/interfaces/automotive/vehicle/tools/generate_annotation_enums.py' @@ -175,6 +178,15 @@ public final class EnumForVehicleProperty { public static final Map>> values = Map.ofEntries( """ +UNITS_JAVA_HEADER = """package android.hardware.automotive.vehicle; + +import java.util.Map; + +public final class UnitsForVehicleProperty { + + public static final Map values = Map.ofEntries( +""" + class PropertyConfig: """Represents one VHAL property definition in VehicleProperty.aidl.""" @@ -316,6 +328,12 @@ class FileParser: continue; if not cpp: annotation = "List.of(" + ', '.join([class_name + ".class" for class_name in config.enum_types]) + ")" + elif field == 'unit_type': + if not config.unit_type: + continue + if not cpp: + annotation = config.unit_type + elif field == 'version': if cpp: annotation = config.version @@ -499,6 +517,12 @@ def main(): enum_types.setJavaFooter(JAVA_FOOTER) 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) + generated_files.append(unit_type) + version = GeneratedFile('version') version.setCppFilePath(os.path.join(android_top, VERSION_CPP_FILE_PATH)) version.setCppHeader(VERSION_CPP_HEADER) -- GitLab From a8efdb127e3c241cf4a6b3400a4750ca5242be06 Mon Sep 17 00:00:00 2001 From: Devin Moore Date: Tue, 20 Feb 2024 17:31:40 +0000 Subject: [PATCH 367/418] Vendor API level 202404 is now frozen Ignore-AOSP-First: VINTF 202404 Finalization Bug: 279809333 Test: build Change-Id: Ie6d38d27a287e258c30516e0030ad8c931d06432 --- audio/aidl/Android.bp | 37 +- .../android.hardware.audio.common/3/.hash | 1 + .../audio/common/AudioOffloadMetadata.aidl | 42 ++ .../audio/common/PlaybackTrackMetadata.aidl | 43 ++ .../audio/common/RecordTrackMetadata.aidl | 42 ++ .../hardware/audio/common/SinkMetadata.aidl | 38 + .../hardware/audio/common/SourceMetadata.aidl | 38 + .../2/.hash | 1 + .../audio/core/sounddose/ISoundDose.aidl | 52 ++ .../android.hardware.audio.core/2/.hash | 1 + .../hardware/audio/core/AudioPatch.aidl | 42 ++ .../hardware/audio/core/AudioRoute.aidl | 40 + .../hardware/audio/core/IBluetooth.aidl | 61 ++ .../hardware/audio/core/IBluetoothA2dp.aidl | 41 ++ .../hardware/audio/core/IBluetoothLe.aidl | 41 ++ .../android/hardware/audio/core/IConfig.aidl | 39 + .../android/hardware/audio/core/IModule.aidl | 119 +++ .../hardware/audio/core/IStreamCallback.aidl | 40 + .../hardware/audio/core/IStreamCommon.aidl | 44 ++ .../hardware/audio/core/IStreamIn.aidl | 58 ++ .../hardware/audio/core/IStreamOut.aidl | 54 ++ .../audio/core/IStreamOutEventCallback.aidl | 39 + .../hardware/audio/core/ITelephony.aidl | 56 ++ .../audio/core/MmapBufferDescriptor.aidl | 41 ++ .../hardware/audio/core/ModuleDebug.aidl | 39 + .../hardware/audio/core/StreamDescriptor.aidl | 93 +++ .../audio/core/SurroundSoundConfig.aidl | 43 ++ .../hardware/audio/core/VendorParameter.aidl | 39 + .../android.hardware.audio.effect/2/.hash | 1 + .../audio/effect/AcousticEchoCanceler.aidl | 45 ++ .../audio/effect/AutomaticGainControlV1.aidl | 46 ++ .../audio/effect/AutomaticGainControlV2.aidl | 51 ++ .../hardware/audio/effect/BassBoost.aidl | 44 ++ .../hardware/audio/effect/Capability.aidl | 39 + .../hardware/audio/effect/CommandId.aidl | 50 ++ .../audio/effect/DefaultExtension.aidl | 38 + .../hardware/audio/effect/Descriptor.aidl | 70 ++ .../hardware/audio/effect/Downmix.aidl | 49 ++ .../audio/effect/DynamicsProcessing.aidl | 115 +++ .../audio/effect/EnvironmentalReverb.aidl | 54 ++ .../hardware/audio/effect/Equalizer.aidl | 64 ++ .../android/hardware/audio/effect/Flags.aidl | 76 ++ .../audio/effect/HapticGenerator.aidl | 65 ++ .../hardware/audio/effect/IEffect.aidl | 57 ++ .../hardware/audio/effect/IFactory.aidl | 41 ++ .../audio/effect/LoudnessEnhancer.aidl | 44 ++ .../audio/effect/NoiseSuppression.aidl | 57 ++ .../hardware/audio/effect/Parameter.aidl | 99 +++ .../hardware/audio/effect/PresetReverb.aidl | 55 ++ .../hardware/audio/effect/Processing.aidl | 44 ++ .../android/hardware/audio/effect/Range.aidl | 139 ++++ .../hardware/audio/effect/Spatializer.aidl | 50 ++ .../android/hardware/audio/effect/State.aidl | 40 + .../audio/effect/VendorExtension.aidl | 38 + .../hardware/audio/effect/Virtualizer.aidl | 58 ++ .../hardware/audio/effect/Visualizer.aidl | 65 ++ .../android/hardware/audio/effect/Volume.aidl | 45 ++ audio/aidl/sounddose/Android.bp | 6 +- .../android.hardware.audio.sounddose/2/.hash | 1 + .../audio/sounddose/ISoundDoseFactory.aidl | 38 + automotive/audiocontrol/aidl/Android.bp | 9 +- .../4/.hash | 1 + .../audiocontrol/AudioFocusChange.aidl | 45 ++ .../audiocontrol/AudioGainConfigInfo.aidl | 40 + .../automotive/audiocontrol/DuckingInfo.aidl | 42 ++ .../audiocontrol/IAudioControl.aidl | 79 ++ .../audiocontrol/IAudioGainCallback.aidl | 38 + .../audiocontrol/IFocusListener.aidl | 41 ++ .../audiocontrol/IModuleChangeCallback.aidl | 38 + .../automotive/audiocontrol/MutingInfo.aidl | 40 + .../automotive/audiocontrol/Reasons.aidl | 47 ++ automotive/remoteaccess/Android.bp | 7 +- .../2/.hash | 1 + .../automotive/remoteaccess/ApState.aidl | 39 + .../remoteaccess/IRemoteAccess.aidl | 50 ++ .../remoteaccess/IRemoteTaskCallback.aidl | 38 + .../automotive/remoteaccess/ScheduleInfo.aidl | 45 ++ .../automotive/remoteaccess/TaskType.aidl | 39 + automotive/vehicle/aidl/Android.bp | 6 +- .../3/.hash | 1 + .../automotive/vehicle/GetValueRequest.aidl | 39 + .../automotive/vehicle/GetValueRequests.aidl | 39 + .../automotive/vehicle/GetValueResult.aidl | 40 + .../automotive/vehicle/GetValueResults.aidl | 39 + .../hardware/automotive/vehicle/IVehicle.aidl | 46 ++ .../automotive/vehicle/IVehicleCallback.aidl | 41 ++ .../automotive/vehicle/RawPropValues.aidl | 42 ++ .../automotive/vehicle/SetValueRequest.aidl | 39 + .../automotive/vehicle/SetValueRequests.aidl | 39 + .../automotive/vehicle/SetValueResult.aidl | 39 + .../automotive/vehicle/SetValueResults.aidl | 39 + .../automotive/vehicle/StatusCode.aidl | 48 ++ .../automotive/vehicle/SubscribeOptions.aidl | 42 ++ .../automotive/vehicle/VehicleAreaConfig.aidl | 47 ++ .../automotive/vehicle/VehiclePropConfig.aidl | 45 ++ .../vehicle/VehiclePropConfigs.aidl | 39 + .../automotive/vehicle/VehiclePropError.aidl | 40 + .../automotive/vehicle/VehiclePropErrors.aidl | 39 + .../automotive/vehicle/VehiclePropValue.aidl | 42 ++ .../automotive/vehicle/VehiclePropValues.aidl | 40 + .../vehicle/VehiclePropertyAccess.aidl | 41 ++ .../vehicle/VehiclePropertyChangeMode.aidl | 40 + .../vehicle/VehiclePropertyStatus.aidl | 40 + automotive/vehicle/aidl_property/Android.bp | 7 +- .../3/.hash | 1 + .../AutomaticEmergencyBrakingState.aidl | 41 ++ .../vehicle/BlindSpotWarningState.aidl | 40 + .../vehicle/CameraServiceState.aidl | 41 ++ .../automotive/vehicle/CreateUserRequest.aidl | 41 ++ .../vehicle/CreateUserResponse.aidl | 40 + .../automotive/vehicle/CreateUserStatus.aidl | 39 + .../CrossTrafficMonitoringWarningState.aidl | 45 ++ .../vehicle/CruiseControlCommand.aidl | 43 ++ .../vehicle/CruiseControlState.aidl | 43 ++ .../automotive/vehicle/CruiseControlType.aidl | 41 ++ .../automotive/vehicle/CustomInputType.aidl | 47 ++ .../vehicle/DiagnosticFloatSensorIndex.aidl | 108 +++ .../vehicle/DiagnosticIntegerSensorIndex.aidl | 69 ++ .../vehicle/DriverDistractionState.aidl | 40 + .../vehicle/DriverDistractionWarning.aidl | 40 + .../DriverDrowsinessAttentionState.aidl | 47 ++ .../DriverDrowsinessAttentionWarning.aidl | 40 + .../ElectronicStabilityControlState.aidl | 40 + .../ElectronicTollCollectionCardStatus.aidl | 41 ++ .../ElectronicTollCollectionCardType.aidl | 40 + .../vehicle/EmergencyLaneKeepAssistState.aidl | 44 ++ .../automotive/vehicle/ErrorState.aidl | 43 ++ .../automotive/vehicle/EvChargeState.aidl | 42 ++ .../automotive/vehicle/EvConnectorType.aidl | 50 ++ .../vehicle/EvRegenerativeBrakingState.aidl | 41 ++ .../automotive/vehicle/EvStoppingMode.aidl | 41 ++ .../vehicle/EvsServiceRequestIndex.aidl | 39 + .../automotive/vehicle/EvsServiceState.aidl | 39 + .../automotive/vehicle/EvsServiceType.aidl | 46 ++ .../vehicle/ForwardCollisionWarningState.aidl | 40 + .../hardware/automotive/vehicle/FuelType.aidl | 50 ++ .../vehicle/GsrComplianceRequirementType.aidl | 39 + .../vehicle/HandsOnDetectionDriverState.aidl | 40 + .../vehicle/HandsOnDetectionWarning.aidl | 40 + .../vehicle/ImpactSensorLocation.aidl | 44 ++ .../vehicle/InitialUserInfoRequest.aidl | 40 + .../vehicle/InitialUserInfoRequestType.aidl | 42 ++ .../vehicle/InitialUserInfoResponse.aidl | 42 ++ .../InitialUserInfoResponseAction.aidl | 40 + .../vehicle/LaneCenteringAssistCommand.aidl | 39 + .../vehicle/LaneCenteringAssistState.aidl | 43 ++ .../vehicle/LaneDepartureWarningState.aidl | 41 ++ .../vehicle/LaneKeepAssistState.aidl | 42 ++ .../vehicle/LocationCharacterization.aidl | 46 ++ ...owSpeedAutomaticEmergencyBrakingState.aidl | 41 ++ .../LowSpeedCollisionWarningState.aidl | 40 + .../vehicle/Obd2CommonIgnitionMonitors.aidl | 43 ++ .../Obd2CompressionIgnitionMonitors.aidl | 55 ++ .../vehicle/Obd2FuelSystemStatus.aidl | 42 ++ .../automotive/vehicle/Obd2FuelType.aidl | 61 ++ .../vehicle/Obd2IgnitionMonitorKind.aidl | 39 + .../vehicle/Obd2SecondaryAirStatus.aidl | 41 ++ .../vehicle/Obd2SparkIgnitionMonitors.aidl | 59 ++ .../automotive/vehicle/PortLocationType.aidl | 44 ++ .../vehicle/ProcessTerminationReason.aidl | 40 + .../automotive/vehicle/RemoveUserRequest.aidl | 40 + .../automotive/vehicle/RotaryInputType.aidl | 39 + .../vehicle/SwitchUserMessageType.aidl | 43 ++ .../automotive/vehicle/SwitchUserRequest.aidl | 41 ++ .../vehicle/SwitchUserResponse.aidl | 41 ++ .../automotive/vehicle/SwitchUserStatus.aidl | 39 + .../automotive/vehicle/TrailerState.aidl | 41 ++ .../UserIdentificationAssociation.aidl | 39 + ...UserIdentificationAssociationSetValue.aidl | 41 ++ .../UserIdentificationAssociationType.aidl | 43 ++ .../UserIdentificationAssociationValue.aidl | 41 ++ .../vehicle/UserIdentificationGetRequest.aidl | 41 ++ .../vehicle/UserIdentificationResponse.aidl | 41 ++ .../UserIdentificationSetAssociation.aidl | 39 + .../vehicle/UserIdentificationSetRequest.aidl | 41 ++ .../hardware/automotive/vehicle/UserInfo.aidl | 45 ++ .../automotive/vehicle/UsersInfo.aidl | 40 + .../vehicle/VehicleAirbagLocation.aidl | 43 ++ .../vehicle/VehicleApPowerBootupReason.aidl | 41 ++ .../VehicleApPowerStateConfigFlag.aidl | 40 + .../vehicle/VehicleApPowerStateReport.aidl | 47 ++ .../vehicle/VehicleApPowerStateReq.aidl | 41 ++ .../vehicle/VehicleApPowerStateReqIndex.aidl | 39 + .../VehicleApPowerStateShutdownParam.aidl | 44 ++ .../automotive/vehicle/VehicleArea.aidl | 45 ++ .../automotive/vehicle/VehicleAreaDoor.aidl | 45 ++ .../automotive/vehicle/VehicleAreaMirror.aidl | 40 + .../automotive/vehicle/VehicleAreaSeat.aidl | 47 ++ .../automotive/vehicle/VehicleAreaWheel.aidl | 42 ++ .../automotive/vehicle/VehicleAreaWindow.aidl | 47 ++ .../vehicle/VehicleAutonomousState.aidl | 43 ++ .../automotive/vehicle/VehicleDisplay.aidl | 42 ++ .../automotive/vehicle/VehicleGear.aidl | 51 ++ .../vehicle/VehicleHvacFanDirection.aidl | 43 ++ .../vehicle/VehicleHwKeyInputAction.aidl | 39 + .../VehicleHwMotionButtonStateFlag.aidl | 44 ++ .../vehicle/VehicleHwMotionInputAction.aidl | 50 ++ .../vehicle/VehicleHwMotionInputSource.aidl | 53 ++ .../vehicle/VehicleHwMotionToolType.aidl | 42 ++ .../vehicle/VehicleIgnitionState.aidl | 43 ++ .../automotive/vehicle/VehicleLightState.aidl | 40 + .../vehicle/VehicleLightSwitch.aidl | 41 ++ .../automotive/vehicle/VehicleOilLevel.aidl | 42 ++ .../automotive/vehicle/VehicleProperty.aidl | 304 ++++++++ .../vehicle/VehiclePropertyGroup.aidl | 41 ++ .../vehicle/VehiclePropertyType.aidl | 48 ++ .../vehicle/VehicleSeatOccupancyState.aidl | 40 + .../automotive/vehicle/VehicleTurnSignal.aidl | 40 + .../automotive/vehicle/VehicleUnit.aidl | 71 ++ .../vehicle/VehicleVendorPermission.aidl | 75 ++ ...msAvailabilityStateIntegerValuesIndex.aidl | 41 ++ .../VmsBaseMessageIntegerValuesIndex.aidl | 38 + .../automotive/vehicle/VmsMessageType.aidl | 54 ++ ...LayerAndPublisherIdIntegerValuesIndex.aidl | 42 ++ ...VmsMessageWithLayerIntegerValuesIndex.aidl | 41 ++ .../VmsOfferingMessageIntegerValuesIndex.aidl | 41 ++ ...ublisherInformationIntegerValuesIndex.aidl | 39 + ...StartSessionMessageIntegerValuesIndex.aidl | 40 + ...sSubscriptionsStateIntegerValuesIndex.aidl | 42 ++ .../vehicle/WindshieldWipersState.aidl | 41 ++ .../vehicle/WindshieldWipersSwitch.aidl | 52 ++ biometrics/common/aidl/Android.bp | 6 +- .../4/.hash | 1 + .../biometrics/common/AuthenticateReason.aidl | 63 ++ .../biometrics/common/CommonProps.aidl | 42 ++ .../biometrics/common/ComponentInfo.aidl | 43 ++ .../biometrics/common/DisplayState.aidl | 43 ++ .../hardware/biometrics/common/FoldState.aidl | 42 ++ .../common/ICancellationSignal.aidl | 39 + .../biometrics/common/OperationContext.aidl | 50 ++ .../biometrics/common/OperationReason.aidl | 41 ++ .../biometrics/common/OperationState.aidl | 49 ++ .../biometrics/common/SensorStrength.aidl | 41 ++ .../biometrics/common/WakeReason.aidl | 48 ++ biometrics/fingerprint/aidl/Android.bp | 9 +- .../4/.hash | 1 + .../biometrics/fingerprint/AcquiredInfo.aidl | 53 ++ .../biometrics/fingerprint/Error.aidl | 48 ++ .../fingerprint/FingerprintSensorType.aidl | 44 ++ .../biometrics/fingerprint/IFingerprint.aidl | 40 + .../biometrics/fingerprint/ISession.aidl | 69 ++ .../fingerprint/ISessionCallback.aidl | 54 ++ .../fingerprint/PointerContext.aidl | 47 ++ .../fingerprint/SensorLocation.aidl | 47 ++ .../biometrics/fingerprint/SensorProps.aidl | 46 ++ .../biometrics/fingerprint/SensorShape.aidl | 40 + .../fingerprint/TouchDetectionParameters.aidl | 40 + bluetooth/audio/aidl/Android.bp | 10 +- .../android.hardware.bluetooth.audio/4/.hash | 1 + .../bluetooth/audio/A2dpConfiguration.aidl | 41 ++ .../audio/A2dpConfigurationHint.aidl | 41 ++ .../audio/A2dpRemoteCapabilities.aidl | 40 + .../hardware/bluetooth/audio/A2dpStatus.aidl | 65 ++ .../audio/A2dpStreamConfiguration.aidl | 41 ++ .../bluetooth/audio/AacCapabilities.aidl | 43 ++ .../bluetooth/audio/AacConfiguration.aidl | 43 ++ .../bluetooth/audio/AacObjectType.aidl | 41 ++ .../audio/AptxAdaptiveCapabilities.aidl | 46 ++ .../audio/AptxAdaptiveChannelMode.aidl | 42 ++ .../audio/AptxAdaptiveConfiguration.aidl | 46 ++ .../audio/AptxAdaptiveInputMode.aidl | 39 + .../audio/AptxAdaptiveLeCapabilities.aidl | 42 ++ .../audio/AptxAdaptiveLeConfiguration.aidl | 43 ++ .../audio/AptxAdaptiveTimeToPlay.aidl | 43 ++ .../bluetooth/audio/AptxCapabilities.aidl | 40 + .../bluetooth/audio/AptxConfiguration.aidl | 40 + .../hardware/bluetooth/audio/AptxMode.aidl | 41 ++ .../bluetooth/audio/AptxSinkBuffering.aidl | 43 ++ .../bluetooth/audio/AudioCapabilities.aidl | 40 + .../bluetooth/audio/AudioConfiguration.aidl | 43 ++ .../bluetooth/audio/AudioContext.aidl | 50 ++ .../bluetooth/audio/AudioLocation.aidl | 40 + .../bluetooth/audio/BluetoothAudioStatus.aidl | 42 ++ .../bluetooth/audio/BroadcastCapability.aidl | 50 ++ .../hardware/bluetooth/audio/ChannelMode.aidl | 41 ++ .../bluetooth/audio/CodecCapabilities.aidl | 54 ++ .../bluetooth/audio/CodecConfiguration.aidl | 59 ++ .../hardware/bluetooth/audio/CodecId.aidl | 53 ++ .../hardware/bluetooth/audio/CodecInfo.aidl | 64 ++ .../bluetooth/audio/CodecParameters.aidl | 45 ++ .../audio/CodecSpecificCapabilitiesLtv.aidl | 83 +++ .../audio/CodecSpecificConfigurationLtv.aidl | 101 +++ .../hardware/bluetooth/audio/CodecType.aidl | 49 ++ .../bluetooth/audio/ConfigurationFlags.aidl | 45 ++ .../bluetooth/audio/HfpConfiguration.aidl | 41 ++ .../bluetooth/audio/IBluetoothAudioPort.aidl | 44 ++ .../audio/IBluetoothAudioProvider.aidl | 199 +++++ .../audio/IBluetoothAudioProviderFactory.aidl | 46 ++ .../hardware/bluetooth/audio/LatencyMode.aidl | 42 ++ .../bluetooth/audio/Lc3Capabilities.aidl | 43 ++ .../bluetooth/audio/Lc3Configuration.aidl | 43 ++ .../bluetooth/audio/LdacCapabilities.aidl | 41 ++ .../bluetooth/audio/LdacChannelMode.aidl | 41 ++ .../bluetooth/audio/LdacConfiguration.aidl | 41 ++ .../bluetooth/audio/LdacQualityIndex.aidl | 41 ++ .../audio/LeAudioAseConfiguration.aidl | 50 ++ .../audio/LeAudioBisConfiguration.aidl | 41 ++ .../audio/LeAudioBroadcastConfiguration.aidl | 48 ++ .../LeAudioCodecCapabilitiesSetting.aidl | 40 + .../audio/LeAudioCodecConfiguration.aidl | 44 ++ .../bluetooth/audio/LeAudioConfiguration.aidl | 59 ++ .../hardware/bluetooth/audio/MetadataLtv.aidl | 50 ++ .../bluetooth/audio/OpusCapabilities.aidl | 43 ++ .../bluetooth/audio/OpusConfiguration.aidl | 43 ++ .../bluetooth/audio/PcmCapabilities.aidl | 41 ++ .../bluetooth/audio/PcmConfiguration.aidl | 41 ++ .../android/hardware/bluetooth/audio/Phy.aidl | 41 ++ .../bluetooth/audio/PresentationPosition.aidl | 45 ++ .../bluetooth/audio/SbcAllocMethod.aidl | 39 + .../bluetooth/audio/SbcCapabilities.aidl | 45 ++ .../bluetooth/audio/SbcChannelMode.aidl | 42 ++ .../bluetooth/audio/SbcConfiguration.aidl | 45 ++ .../hardware/bluetooth/audio/SessionType.aidl | 52 ++ .../bluetooth/audio/UnicastCapability.aidl | 52 ++ bluetooth/finder/aidl/Android.bp | 8 + .../android.hardware.bluetooth.finder/1/.hash | 1 + .../hardware/bluetooth/finder/Eid.aidl | 38 + .../bluetooth/finder/IBluetoothFinder.aidl | 40 + bluetooth/lmp_event/aidl/Android.bp | 8 + .../1/.hash | 1 + .../bluetooth/lmp_event/AddressType.aidl | 39 + .../bluetooth/lmp_event/Direction.aidl | 39 + .../lmp_event/IBluetoothLmpEvent.aidl | 39 + .../lmp_event/IBluetoothLmpEventCallback.aidl | 39 + .../bluetooth/lmp_event/LmpEventId.aidl | 39 + .../bluetooth/lmp_event/Timestamp.aidl | 39 + bluetooth/ranging/aidl/Android.bp | 8 + .../1/.hash | 1 + .../bluetooth/ranging/AddressType.aidl | 39 + .../BluetoothChannelSoundingParameters.aidl | 49 ++ .../ranging/ChannelSoudingRawData.aidl | 48 ++ .../ChannelSoundingSingleSideData.aidl | 46 ++ .../bluetooth/ranging/ComplexNumber.aidl | 39 + .../hardware/bluetooth/ranging/Config.aidl | 41 ++ .../bluetooth/ranging/CsSecurityLevel.aidl | 42 ++ .../bluetooth/ranging/DeviceAddress.aidl | 39 + .../ranging/IBluetoothChannelSounding.aidl | 41 ++ .../IBluetoothChannelSoundingSession.aidl | 42 ++ ...uetoothChannelSoundingSessionCallback.aidl | 42 ++ .../bluetooth/ranging/LocationType.aidl | 40 + .../hardware/bluetooth/ranging/ModeType.aidl | 41 ++ .../hardware/bluetooth/ranging/Nadm.aidl | 45 ++ .../bluetooth/ranging/RangingResult.aidl | 48 ++ .../hardware/bluetooth/ranging/Reason.aidl | 42 ++ .../bluetooth/ranging/ResultType.aidl | 47 ++ .../hardware/bluetooth/ranging/Role.aidl | 39 + .../hardware/bluetooth/ranging/RttType.aidl | 44 ++ .../bluetooth/ranging/SessionType.aidl | 39 + .../hardware/bluetooth/ranging/SightType.aidl | 40 + .../bluetooth/ranging/StepTonePct.aidl | 53 ++ .../bluetooth/ranging/SubModeType.aidl | 41 ++ .../bluetooth/ranging/VendorSpecificData.aidl | 39 + broadcastradio/aidl/Android.bp | 7 +- .../android.hardware.broadcastradio/2/.hash | 1 + .../broadcastradio/AmFmBandRange.aidl | 41 ++ .../broadcastradio/AmFmRegionConfig.aidl | 44 ++ .../hardware/broadcastradio/Announcement.aidl | 40 + .../broadcastradio/AnnouncementType.aidl | 46 ++ .../hardware/broadcastradio/ConfigFlag.aidl | 51 ++ .../broadcastradio/DabTableEntry.aidl | 39 + .../hardware/broadcastradio/HdSubChannel.aidl | 45 ++ .../broadcastradio/IAnnouncementListener.aidl | 38 + .../broadcastradio/IBroadcastRadio.aidl | 58 ++ .../hardware/broadcastradio/ICloseHandle.aidl | 38 + .../broadcastradio/ITunerCallback.aidl | 43 ++ .../broadcastradio/IdentifierType.aidl | 59 ++ .../hardware/broadcastradio/Metadata.aidl | 61 ++ .../broadcastradio/ProgramFilter.aidl | 41 ++ .../broadcastradio/ProgramIdentifier.aidl | 39 + .../hardware/broadcastradio/ProgramInfo.aidl | 54 ++ .../broadcastradio/ProgramListChunk.aidl | 41 ++ .../broadcastradio/ProgramSelector.aidl | 39 + .../hardware/broadcastradio/Properties.aidl | 43 ++ .../hardware/broadcastradio/Result.aidl | 45 ++ .../broadcastradio/VendorKeyValue.aidl | 39 + camera/device/aidl/Android.bp | 12 +- .../android.hardware.camera.device/3/.hash | 1 + .../hardware/camera/device/BufferCache.aidl | 39 + .../hardware/camera/device/BufferRequest.aidl | 39 + .../camera/device/BufferRequestStatus.aidl | 42 ++ .../hardware/camera/device/BufferStatus.aidl | 39 + .../hardware/camera/device/CameraBlob.aidl | 39 + .../hardware/camera/device/CameraBlobId.aidl | 39 + .../camera/device/CameraMetadata.aidl | 38 + .../device/CameraOfflineSessionInfo.aidl | 39 + .../camera/device/CaptureRequest.aidl | 45 ++ .../hardware/camera/device/CaptureResult.aidl | 44 ++ .../camera/device/ConfigureStreamsRet.aidl | 38 + .../hardware/camera/device/ErrorCode.aidl | 41 ++ .../hardware/camera/device/ErrorMsg.aidl | 40 + .../hardware/camera/device/HalStream.aidl | 46 ++ .../hardware/camera/device/ICameraDevice.aidl | 49 ++ .../camera/device/ICameraDeviceCallback.aidl | 41 ++ .../camera/device/ICameraDeviceSession.aidl | 49 ++ .../device/ICameraInjectionSession.aidl | 39 + .../camera/device/ICameraOfflineSession.aidl | 40 + .../hardware/camera/device/NotifyMsg.aidl | 39 + .../camera/device/OfflineRequest.aidl | 39 + .../hardware/camera/device/OfflineStream.aidl | 40 + .../camera/device/PhysicalCameraMetadata.aidl | 40 + .../camera/device/PhysicalCameraSetting.aidl | 40 + .../camera/device/RequestTemplate.aidl | 44 ++ .../hardware/camera/device/ShutterMsg.aidl | 40 + .../hardware/camera/device/Stream.aidl | 52 ++ .../hardware/camera/device/StreamBuffer.aidl | 43 ++ .../device/StreamBufferRequestError.aidl | 41 ++ .../camera/device/StreamBufferRet.aidl | 39 + .../camera/device/StreamBuffersVal.aidl | 39 + .../camera/device/StreamConfiguration.aidl | 43 ++ .../device/StreamConfigurationMode.aidl | 47 ++ .../camera/device/StreamRotation.aidl | 41 ++ .../hardware/camera/device/StreamType.aidl | 39 + camera/metadata/aidl/Android.bp | 6 +- .../android.hardware.camera.metadata/3/.hash | 1 + .../camera/metadata/AutomotiveLensFacing.aidl | 56 ++ .../camera/metadata/AutomotiveLocation.aidl | 52 ++ .../camera/metadata/BlackLevelLock.aidl | 43 ++ .../metadata/CameraMetadataSection.aidl | 76 ++ .../metadata/CameraMetadataSectionStart.aidl | 76 ++ .../camera/metadata/CameraMetadataTag.aidl | 356 +++++++++ .../ColorCorrectionAberrationMode.aidl | 44 ++ .../camera/metadata/ColorCorrectionMode.aidl | 44 ++ .../metadata/ControlAeAntibandingMode.aidl | 45 ++ .../camera/metadata/ControlAeLock.aidl | 43 ++ .../metadata/ControlAeLockAvailable.aidl | 43 ++ .../camera/metadata/ControlAeMode.aidl | 48 ++ .../metadata/ControlAePrecaptureTrigger.aidl | 44 ++ .../camera/metadata/ControlAeState.aidl | 47 ++ .../camera/metadata/ControlAfMode.aidl | 47 ++ .../camera/metadata/ControlAfSceneChange.aidl | 43 ++ .../camera/metadata/ControlAfState.aidl | 48 ++ .../camera/metadata/ControlAfTrigger.aidl | 44 ++ .../camera/metadata/ControlAutoframing.aidl | 44 ++ .../metadata/ControlAutoframingAvailable.aidl | 43 ++ .../metadata/ControlAutoframingState.aidl | 44 ++ .../camera/metadata/ControlAwbLock.aidl | 43 ++ .../metadata/ControlAwbLockAvailable.aidl | 43 ++ .../camera/metadata/ControlAwbMode.aidl | 50 ++ .../camera/metadata/ControlAwbState.aidl | 45 ++ .../camera/metadata/ControlCaptureIntent.aidl | 49 ++ .../camera/metadata/ControlEffectMode.aidl | 50 ++ .../camera/metadata/ControlEnableZsl.aidl | 43 ++ .../metadata/ControlExtendedSceneMode.aidl | 45 ++ .../metadata/ControlLowLightBoostState.aidl | 43 ++ .../hardware/camera/metadata/ControlMode.aidl | 46 ++ .../camera/metadata/ControlSceneMode.aidl | 63 ++ .../metadata/ControlSettingsOverride.aidl | 44 ++ .../ControlVideoStabilizationMode.aidl | 44 ++ .../camera/metadata/DemosaicMode.aidl | 43 ++ ...pthAvailableDepthStreamConfigurations.aidl | 43 ++ ...StreamConfigurationsMaximumResolution.aidl | 43 ++ ...lableDynamicDepthStreamConfigurations.aidl | 43 ++ ...StreamConfigurationsMaximumResolution.aidl | 43 ++ .../metadata/DepthDepthIsExclusive.aidl | 43 ++ .../metadata/DistortionCorrectionMode.aidl | 44 ++ .../hardware/camera/metadata/EdgeMode.aidl | 45 ++ .../camera/metadata/FlashInfoAvailable.aidl | 43 ++ .../hardware/camera/metadata/FlashMode.aidl | 44 ++ .../hardware/camera/metadata/FlashState.aidl | 46 ++ ...HeicAvailableHeicStreamConfigurations.aidl | 43 ++ ...StreamConfigurationsMaximumResolution.aidl | 43 ++ .../camera/metadata/HeicInfoSupported.aidl | 43 ++ .../camera/metadata/HotPixelMode.aidl | 44 ++ .../InfoSupportedBufferManagementVersion.aidl | 43 ++ .../metadata/InfoSupportedHardwareLevel.aidl | 46 ++ ...egrAvailableJpegRStreamConfigurations.aidl | 43 ++ ...StreamConfigurationsMaximumResolution.aidl | 43 ++ .../camera/metadata/LedAvailableLeds.aidl | 42 ++ .../hardware/camera/metadata/LedTransmit.aidl | 43 ++ .../hardware/camera/metadata/LensFacing.aidl | 44 ++ .../LensInfoFocusDistanceCalibration.aidl | 44 ++ .../LensOpticalStabilizationMode.aidl | 43 ++ .../camera/metadata/LensPoseReference.aidl | 45 ++ .../hardware/camera/metadata/LensState.aidl | 43 ++ .../LogicalMultiCameraSensorSyncType.aidl | 43 ++ .../camera/metadata/NoiseReductionMode.aidl | 46 ++ .../camera/metadata/QuirksPartialResult.aidl | 43 ++ .../RequestAvailableCapabilities.aidl | 62 ++ ...RequestAvailableColorSpaceProfilesMap.aidl | 45 ++ ...questAvailableDynamicRangeProfilesMap.aidl | 54 ++ .../camera/metadata/RequestMetadataMode.aidl | 43 ++ .../hardware/camera/metadata/RequestType.aidl | 43 ++ .../metadata/ScalerAvailableFormats.aidl | 51 ++ ...ilableRecommendedStreamConfigurations.aidl | 50 ++ .../ScalerAvailableStreamConfigurations.aidl | 43 ++ ...StreamConfigurationsMaximumResolution.aidl | 43 ++ .../ScalerAvailableStreamUseCases.aidl | 49 ++ .../camera/metadata/ScalerCroppingType.aidl | 43 ++ .../ScalerMultiResolutionStreamSupported.aidl | 43 ++ ...raMultiResolutionStreamConfigurations.aidl | 43 ++ .../camera/metadata/ScalerRotateAndCrop.aidl | 46 ++ .../SensorInfoColorFilterArrangement.aidl | 48 ++ .../SensorInfoLensShadingApplied.aidl | 43 ++ .../metadata/SensorInfoTimestampSource.aidl | 43 ++ .../camera/metadata/SensorPixelMode.aidl | 43 ++ .../metadata/SensorRawBinningFactorUsed.aidl | 43 ++ .../metadata/SensorReadoutTimestamp.aidl | 43 ++ .../metadata/SensorReferenceIlluminant1.aidl | 60 ++ .../metadata/SensorTestPatternMode.aidl | 48 ++ .../hardware/camera/metadata/ShadingMode.aidl | 44 ++ .../metadata/StatisticsFaceDetectMode.aidl | 44 ++ .../metadata/StatisticsHistogramMode.aidl | 43 ++ .../metadata/StatisticsHotPixelMapMode.aidl | 43 ++ .../StatisticsLensShadingMapMode.aidl | 43 ++ .../metadata/StatisticsOisDataMode.aidl | 43 ++ .../metadata/StatisticsSceneFlicker.aidl | 44 ++ .../metadata/StatisticsSharpnessMapMode.aidl | 43 ++ .../camera/metadata/SyncFrameNumber.aidl | 43 ++ .../camera/metadata/SyncMaxLatency.aidl | 43 ++ .../hardware/camera/metadata/TonemapMode.aidl | 46 ++ .../camera/metadata/TonemapPresetCurve.aidl | 43 ++ camera/provider/aidl/Android.bp | 9 +- .../android.hardware.camera.provider/3/.hash | 1 + .../CameraIdAndStreamCombination.aidl | 39 + .../ConcurrentCameraIdCombination.aidl | 38 + .../camera/provider/ICameraProvider.aidl | 48 ++ .../provider/ICameraProviderCallback.aidl | 40 + compatibility_matrices/Android.bp | 11 + compatibility_matrices/Android.mk | 3 +- .../compatibility_matrix.202504.xml | 693 ++++++++++++++++++ contexthub/aidl/Android.bp | 6 +- .../android.hardware.contexthub/3/.hash | 1 + .../hardware/contexthub/AsyncEventType.aidl | 38 + .../hardware/contexthub/ContextHubInfo.aidl | 49 ++ .../contexthub/ContextHubMessage.aidl | 44 ++ .../hardware/contexthub/ErrorCode.aidl | 42 ++ .../hardware/contexthub/HostEndpointInfo.aidl | 47 ++ .../hardware/contexthub/IContextHub.aidl | 53 ++ .../contexthub/IContextHubCallback.aidl | 46 ++ .../contexthub/MessageDeliveryStatus.aidl | 39 + .../contexthub/NanSessionRequest.aidl | 38 + .../contexthub/NanSessionStateUpdate.aidl | 38 + .../hardware/contexthub/NanoappBinary.aidl | 46 ++ .../hardware/contexthub/NanoappInfo.aidl | 42 ++ .../contexthub/NanoappRpcService.aidl | 39 + .../android/hardware/contexthub/Setting.aidl | 44 ++ gnss/aidl/Android.bp | 6 +- .../aidl_api/android.hardware.gnss/4/.hash | 1 + .../hardware/gnss/BlocklistedSource.aidl | 40 + .../hardware/gnss/CorrelationVector.aidl | 42 ++ .../hardware/gnss/ElapsedRealtime.aidl | 43 ++ .../4/android/hardware/gnss/GnssClock.aidl | 56 ++ .../hardware/gnss/GnssConstellationType.aidl | 46 ++ .../4/android/hardware/gnss/GnssData.aidl | 49 ++ .../4/android/hardware/gnss/GnssLocation.aidl | 58 ++ .../hardware/gnss/GnssMeasurement.aidl | 99 +++ .../hardware/gnss/GnssMultipathIndicator.aidl | 41 ++ .../android/hardware/gnss/GnssPowerStats.aidl | 45 ++ .../android/hardware/gnss/GnssSignalType.aidl | 58 ++ .../4/android/hardware/gnss/IAGnss.aidl | 50 ++ .../android/hardware/gnss/IAGnssCallback.aidl | 54 ++ .../4/android/hardware/gnss/IAGnssRil.aidl | 81 ++ .../hardware/gnss/IAGnssRilCallback.aidl | 40 + .../4/android/hardware/gnss/IGnss.aidl | 103 +++ .../hardware/gnss/IGnssAntennaInfo.aidl | 40 + .../gnss/IGnssAntennaInfoCallback.aidl | 61 ++ .../android/hardware/gnss/IGnssBatching.aidl | 51 ++ .../hardware/gnss/IGnssBatchingCallback.aidl | 39 + .../android/hardware/gnss/IGnssCallback.aidl | 97 +++ .../hardware/gnss/IGnssConfiguration.aidl | 52 ++ .../4/android/hardware/gnss/IGnssDebug.aidl | 88 +++ .../android/hardware/gnss/IGnssGeofence.aidl | 43 ++ .../hardware/gnss/IGnssGeofenceCallback.aidl | 55 ++ .../gnss/IGnssMeasurementCallback.aidl | 39 + .../gnss/IGnssMeasurementInterface.aidl | 47 ++ .../gnss/IGnssNavigationMessageCallback.aidl | 74 ++ .../gnss/IGnssNavigationMessageInterface.aidl | 40 + .../hardware/gnss/IGnssPowerIndication.aidl | 40 + .../gnss/IGnssPowerIndicationCallback.aidl | 46 ++ .../4/android/hardware/gnss/IGnssPsds.aidl | 40 + .../hardware/gnss/IGnssPsdsCallback.aidl | 39 + .../4/android/hardware/gnss/PsdsType.aidl | 41 ++ .../hardware/gnss/SatelliteClockInfo.aidl | 41 ++ .../hardware/gnss/SatellitePositionEcef.aidl | 42 ++ .../4/android/hardware/gnss/SatellitePvt.aidl | 59 ++ .../hardware/gnss/SatelliteVelocityEcef.aidl | 42 ++ .../IMeasurementCorrectionsCallback.aidl | 42 ++ .../IMeasurementCorrectionsInterface.aidl | 40 + .../MeasurementCorrections.aidl | 48 ++ .../ReflectingPlane.aidl | 42 ++ .../SingleSatCorrection.aidl | 63 ++ .../IGnssVisibilityControl.aidl | 40 + .../IGnssVisibilityControlCallback.aidl | 75 ++ graphics/common/aidl/Android.bp | 6 +- .../android.hardware.graphics.common/5/.hash | 1 + .../graphics/common/AlphaInterpretation.aidl | 40 + .../hardware/graphics/common/BlendMode.aidl | 42 ++ .../hardware/graphics/common/BufferUsage.aidl | 65 ++ .../graphics/common/ChromaSiting.aidl | 44 ++ .../graphics/common/ColorTransform.aidl | 45 ++ .../hardware/graphics/common/Compression.aidl | 40 + .../hardware/graphics/common/Cta861_3.aidl | 40 + .../hardware/graphics/common/Dataspace.aidl | 101 +++ .../common/DisplayDecorationSupport.aidl | 40 + .../graphics/common/DisplayHotplugEvent.aidl | 42 ++ .../graphics/common/ExtendableType.aidl | 40 + .../hardware/graphics/common/FRect.aidl | 42 ++ .../graphics/common/HardwareBuffer.aidl | 43 ++ .../common/HardwareBufferDescription.aidl | 44 ++ .../android/hardware/graphics/common/Hdr.aidl | 44 ++ .../common/HdrConversionCapability.aidl | 40 + .../common/HdrConversionStrategy.aidl | 40 + .../hardware/graphics/common/Interlaced.aidl | 41 ++ .../hardware/graphics/common/PixelFormat.aidl | 71 ++ .../hardware/graphics/common/PlaneLayout.aidl | 47 ++ .../graphics/common/PlaneLayoutComponent.aidl | 41 ++ .../common/PlaneLayoutComponentType.aidl | 46 ++ .../hardware/graphics/common/Point.aidl | 40 + .../hardware/graphics/common/Rect.aidl | 42 ++ .../hardware/graphics/common/Smpte2086.aidl | 44 ++ .../graphics/common/StandardMetadataType.aidl | 62 ++ .../hardware/graphics/common/Transform.aidl | 44 ++ .../hardware/graphics/common/XyColor.aidl | 40 + graphics/composer/aidl/Android.bp | 9 +- .../3/.hash | 1 + .../hardware/graphics/composer3/Buffer.aidl | 40 + .../graphics/composer3/Capability.aidl | 49 ++ .../composer3/ChangedCompositionLayer.aidl | 39 + .../composer3/ChangedCompositionTypes.aidl | 39 + .../graphics/composer3/ClientTarget.aidl | 41 ++ .../composer3/ClientTargetProperty.aidl | 39 + .../ClientTargetPropertyWithBrightness.aidl | 41 ++ .../composer3/ClockMonotonicTimestamp.aidl | 38 + .../hardware/graphics/composer3/Color.aidl | 41 ++ .../graphics/composer3/ColorMode.aidl | 51 ++ .../graphics/composer3/CommandError.aidl | 39 + .../composer3/CommandResultPayload.aidl | 44 ++ .../graphics/composer3/Composition.aidl | 45 ++ .../graphics/composer3/ContentType.aidl | 42 ++ .../graphics/composer3/DimmingStage.aidl | 40 + .../graphics/composer3/DisplayAttribute.aidl | 44 ++ .../graphics/composer3/DisplayBrightness.aidl | 39 + .../graphics/composer3/DisplayCapability.aidl | 46 ++ .../graphics/composer3/DisplayCommand.aidl | 49 ++ .../composer3/DisplayConfiguration.aidl | 48 ++ .../composer3/DisplayConnectionType.aidl | 39 + .../composer3/DisplayContentSample.aidl | 42 ++ .../DisplayContentSamplingAttributes.aidl | 40 + .../composer3/DisplayIdentification.aidl | 39 + .../graphics/composer3/DisplayRequest.aidl | 48 ++ .../composer3/FormatColorComponent.aidl | 41 ++ .../graphics/composer3/HdrCapabilities.aidl | 41 ++ .../graphics/composer3/IComposer.aidl | 40 + .../graphics/composer3/IComposerCallback.aidl | 48 ++ .../graphics/composer3/IComposerClient.aidl | 101 +++ .../graphics/composer3/LayerBrightness.aidl | 38 + .../graphics/composer3/LayerCommand.aidl | 60 ++ .../LayerLifecycleBatchCommandType.aidl | 40 + .../graphics/composer3/OverlayProperties.aidl | 45 ++ .../composer3/ParcelableBlendMode.aidl | 38 + .../composer3/ParcelableComposition.aidl | 38 + .../composer3/ParcelableDataspace.aidl | 38 + .../composer3/ParcelableTransform.aidl | 38 + .../graphics/composer3/PerFrameMetadata.aidl | 39 + .../composer3/PerFrameMetadataBlob.aidl | 39 + .../composer3/PerFrameMetadataKey.aidl | 50 ++ .../graphics/composer3/PlaneAlpha.aidl | 38 + .../graphics/composer3/PowerMode.aidl | 42 ++ .../graphics/composer3/PresentFence.aidl | 39 + .../graphics/composer3/PresentOrValidate.aidl | 44 ++ .../composer3/ReadbackBufferAttributes.aidl | 39 + .../RefreshRateChangedDebugData.aidl | 40 + .../graphics/composer3/ReleaseFences.aidl | 44 ++ .../graphics/composer3/RenderIntent.aidl | 41 ++ .../graphics/composer3/VirtualDisplay.aidl | 39 + .../graphics/composer3/VrrConfig.aidl | 48 ++ .../VsyncPeriodChangeConstraints.aidl | 39 + .../composer3/VsyncPeriodChangeTimeline.aidl | 40 + .../hardware/graphics/composer3/ZOrder.aidl | 38 + health/aidl/Android.bp | 6 +- .../aidl_api/android.hardware.health/3/.hash | 1 + .../hardware/health/BatteryCapacityLevel.aidl | 44 ++ .../health/BatteryChargingPolicy.aidl | 41 ++ .../hardware/health/BatteryChargingState.aidl | 43 ++ .../hardware/health/BatteryHealth.aidl | 47 ++ .../hardware/health/BatteryHealthData.aidl | 42 ++ .../hardware/health/BatteryPartStatus.aidl | 40 + .../hardware/health/BatteryStatus.aidl | 42 ++ .../3/android/hardware/health/DiskStats.aidl | 48 ++ .../3/android/hardware/health/HealthInfo.aidl | 64 ++ .../3/android/hardware/health/IHealth.aidl | 54 ++ .../hardware/health/IHealthInfoCallback.aidl | 38 + .../android/hardware/health/StorageInfo.aidl | 41 ++ macsec/aidl/Android.bp | 8 + .../aidl_api/android.hardware.macsec/1/.hash | 1 + .../hardware/macsec/IMacsecPskPlugin.aidl | 42 ++ media/bufferpool/aidl/Android.bp | 10 +- .../2/.hash | 1 + .../hardware/media/bufferpool2/Buffer.aidl | 40 + .../BufferInvalidationMessage.aidl | 40 + .../media/bufferpool2/BufferStatus.aidl | 47 ++ .../bufferpool2/BufferStatusMessage.aidl | 43 ++ .../hardware/media/bufferpool2/IAccessor.aidl | 46 ++ .../media/bufferpool2/IClientManager.aidl | 44 ++ .../media/bufferpool2/IConnection.aidl | 47 ++ .../hardware/media/bufferpool2/IObserver.aidl | 38 + .../media/bufferpool2/ResultStatus.aidl | 42 ++ media/c2/aidl/Android.bp | 11 + .../android.hardware.media.c2/1/.hash | 1 + .../android/hardware/media/c2/BaseBlock.aidl | 40 + .../1/android/hardware/media/c2/Block.aidl | 40 + .../1/android/hardware/media/c2/Buffer.aidl | 39 + .../hardware/media/c2/FieldDescriptor.aidl | 62 ++ .../1/android/hardware/media/c2/FieldId.aidl | 39 + .../media/c2/FieldSupportedValues.aidl | 41 ++ .../media/c2/FieldSupportedValuesQuery.aidl | 44 ++ .../c2/FieldSupportedValuesQueryResult.aidl | 39 + .../android/hardware/media/c2/FrameData.aidl | 47 ++ .../android/hardware/media/c2/IComponent.aidl | 68 ++ .../media/c2/IComponentInterface.aidl | 38 + .../hardware/media/c2/IComponentListener.aidl | 53 ++ .../hardware/media/c2/IComponentStore.aidl | 67 ++ .../hardware/media/c2/IConfigurable.aidl | 59 ++ .../media/c2/IGraphicBufferAllocator.aidl | 50 ++ .../android/hardware/media/c2/IInputSink.aidl | 38 + .../hardware/media/c2/IInputSurface.aidl | 40 + .../media/c2/IInputSurfaceConnection.aidl | 39 + .../c2/IPooledGraphicBufferAllocator.aidl | 49 ++ .../android/hardware/media/c2/InfoBuffer.aidl | 39 + .../hardware/media/c2/ParamDescriptor.aidl | 48 ++ .../android/hardware/media/c2/ParamField.aidl | 39 + .../hardware/media/c2/ParamFieldValues.aidl | 39 + .../1/android/hardware/media/c2/Params.aidl | 38 + .../hardware/media/c2/SettingResult.aidl | 53 ++ .../1/android/hardware/media/c2/Status.aidl | 52 ++ .../hardware/media/c2/StructDescriptor.aidl | 39 + .../android/hardware/media/c2/ValueRange.aidl | 42 ++ .../1/android/hardware/media/c2/Work.aidl | 42 ++ .../android/hardware/media/c2/WorkBundle.aidl | 39 + .../hardware/media/c2/WorkOrdinal.aidl | 40 + .../1/android/hardware/media/c2/Worklet.aidl | 41 ++ power/aidl/Android.bp | 9 +- .../aidl_api/android.hardware.power/5/.hash | 1 + .../5/android/hardware/power/Boost.aidl | 43 ++ .../android/hardware/power/ChannelConfig.aidl | 41 ++ .../hardware/power/ChannelMessage.aidl | 53 ++ .../5/android/hardware/power/IPower.aidl | 46 ++ .../hardware/power/IPowerHintSession.aidl | 46 ++ .../5/android/hardware/power/Mode.aidl | 56 ++ .../android/hardware/power/SessionConfig.aidl | 38 + .../5/android/hardware/power/SessionHint.aidl | 45 ++ .../5/android/hardware/power/SessionMode.aidl | 38 + .../5/android/hardware/power/SessionTag.aidl | 42 ++ .../android/hardware/power/WorkDuration.aidl | 42 ++ .../hardware/power/WorkDurationFixedV1.aidl | 41 ++ radio/aidl/Android.bp | 58 ++ .../android.hardware.radio.config/3/.hash | 1 + .../hardware/radio/config/IRadioConfig.aidl | 55 ++ .../radio/config/IRadioConfigIndication.aidl | 40 + .../radio/config/IRadioConfigResponse.aidl | 46 ++ .../config/MultipleEnabledProfilesMode.aidl | 42 ++ .../radio/config/PhoneCapability.aidl | 44 ++ .../hardware/radio/config/SimPortInfo.aidl | 41 ++ .../hardware/radio/config/SimSlotStatus.aidl | 43 ++ .../radio/config/SlotPortMapping.aidl | 40 + .../android.hardware.radio.data/3/.hash | 1 + .../hardware/radio/data/ApnAuthType.aidl | 42 ++ .../android/hardware/radio/data/ApnTypes.aidl | 55 ++ .../radio/data/DataCallFailCause.aidl | 382 ++++++++++ .../hardware/radio/data/DataProfileInfo.aidl | 72 ++ .../radio/data/DataRequestReason.aidl | 41 ++ .../radio/data/DataThrottlingAction.aidl | 42 ++ .../3/android/hardware/radio/data/EpsQos.aidl | 41 ++ .../hardware/radio/data/IRadioData.aidl | 54 ++ .../radio/data/IRadioDataIndication.aidl | 43 ++ .../radio/data/IRadioDataResponse.aidl | 53 ++ .../hardware/radio/data/KeepaliveRequest.aidl | 47 ++ .../hardware/radio/data/KeepaliveStatus.aidl | 43 ++ .../hardware/radio/data/LinkAddress.aidl | 44 ++ .../3/android/hardware/radio/data/NrQos.aidl | 50 ++ .../android/hardware/radio/data/OsAppId.aidl | 39 + .../hardware/radio/data/PcoDataInfo.aidl | 42 ++ .../hardware/radio/data/PdpProtocolType.aidl | 45 ++ .../hardware/radio/data/PortRange.aidl | 42 ++ .../3/android/hardware/radio/data/Qos.aidl | 41 ++ .../hardware/radio/data/QosBandwidth.aidl | 40 + .../hardware/radio/data/QosFilter.aidl | 56 ++ .../radio/data/QosFilterIpsecSpi.aidl | 40 + .../radio/data/QosFilterIpv6FlowLabel.aidl | 40 + .../radio/data/QosFilterTypeOfService.aidl | 40 + .../hardware/radio/data/QosSession.aidl | 41 ++ .../radio/data/RouteSelectionDescriptor.aidl | 47 ++ .../radio/data/SetupDataCallResult.aidl | 63 ++ .../hardware/radio/data/SliceInfo.aidl | 53 ++ .../hardware/radio/data/SlicingConfig.aidl | 40 + .../radio/data/TrafficDescriptor.aidl | 40 + .../android/hardware/radio/data/UrspRule.aidl | 41 ++ .../android.hardware.radio.ims.media/2/.hash | 1 + .../hardware/radio/ims/media/AmrMode.aidl | 47 ++ .../hardware/radio/ims/media/AmrParams.aidl | 41 ++ .../hardware/radio/ims/media/AnbrMode.aidl | 40 + .../hardware/radio/ims/media/CallQuality.aidl | 59 ++ .../hardware/radio/ims/media/CodecMode.aidl | 41 ++ .../hardware/radio/ims/media/CodecParams.aidl | 44 ++ .../radio/ims/media/CodecSpecificParams.aidl | 40 + .../hardware/radio/ims/media/CodecType.aidl | 43 ++ .../hardware/radio/ims/media/DtmfParams.aidl | 41 ++ .../radio/ims/media/EvsBandwidth.aidl | 43 ++ .../hardware/radio/ims/media/EvsMode.aidl | 59 ++ .../hardware/radio/ims/media/EvsParams.aidl | 44 ++ .../hardware/radio/ims/media/IImsMedia.aidl | 41 ++ .../radio/ims/media/IImsMediaListener.aidl | 41 ++ .../radio/ims/media/IImsMediaSession.aidl | 47 ++ .../ims/media/IImsMediaSessionListener.aidl | 46 ++ .../radio/ims/media/LocalEndPoint.aidl | 41 ++ .../radio/ims/media/MediaDirection.aidl | 43 ++ .../radio/ims/media/MediaQualityStatus.aidl | 42 ++ .../ims/media/MediaQualityThreshold.aidl | 45 ++ .../hardware/radio/ims/media/RtcpConfig.aidl | 42 ++ .../ims/media/RtcpXrReportBlockType.aidl | 46 ++ .../hardware/radio/ims/media/RtpAddress.aidl | 40 + .../hardware/radio/ims/media/RtpConfig.aidl | 44 ++ .../hardware/radio/ims/media/RtpError.aidl | 45 ++ .../radio/ims/media/RtpHeaderExtension.aidl | 40 + .../radio/ims/media/RtpReceptionStats.aidl | 42 ++ .../radio/ims/media/RtpSessionParams.aidl | 43 ++ .../android.hardware.radio.ims/2/.hash | 1 + .../radio/ims/ConnectionFailureInfo.aidl | 54 ++ .../hardware/radio/ims/EpsFallbackReason.aidl | 40 + .../android/hardware/radio/ims/IRadioIms.aidl | 46 ++ .../radio/ims/IRadioImsIndication.aidl | 41 ++ .../hardware/radio/ims/IRadioImsResponse.aidl | 45 ++ .../2/android/hardware/radio/ims/ImsCall.aidl | 65 ++ .../radio/ims/ImsDeregistrationReason.aidl | 41 ++ .../hardware/radio/ims/ImsRegistration.aidl | 47 ++ .../radio/ims/ImsRegistrationState.aidl | 40 + .../radio/ims/ImsStreamDirection.aidl | 40 + .../hardware/radio/ims/ImsStreamType.aidl | 40 + .../hardware/radio/ims/ImsTrafficType.aidl | 45 ++ .../android/hardware/radio/ims/SrvccCall.aidl | 65 ++ .../hardware/radio/ims/SuggestedAction.aidl | 43 ++ .../android.hardware.radio.messaging/3/.hash | 1 + .../messaging/CdmaBroadcastSmsConfigInfo.aidl | 41 ++ .../hardware/radio/messaging/CdmaSmsAck.aidl | 40 + .../radio/messaging/CdmaSmsAddress.aidl | 69 ++ .../radio/messaging/CdmaSmsMessage.aidl | 44 ++ .../radio/messaging/CdmaSmsSubaddress.aidl | 43 ++ .../radio/messaging/CdmaSmsWriteArgs.aidl | 44 ++ .../messaging/GsmBroadcastSmsConfigInfo.aidl | 43 ++ .../radio/messaging/GsmSmsMessage.aidl | 40 + .../radio/messaging/IRadioMessaging.aidl | 61 ++ .../messaging/IRadioMessagingIndication.aidl | 45 ++ .../messaging/IRadioMessagingResponse.aidl | 60 ++ .../radio/messaging/ImsSmsMessage.aidl | 43 ++ .../radio/messaging/SendSmsResult.aidl | 41 ++ .../messaging/SmsAcknowledgeFailCause.aidl | 40 + .../radio/messaging/SmsWriteArgs.aidl | 45 ++ .../android.hardware.radio.modem/3/.hash | 1 + .../radio/modem/ActivityStatsInfo.aidl | 41 ++ .../modem/ActivityStatsTechSpecificInfo.aidl | 47 ++ .../hardware/radio/modem/DeviceStateType.aidl | 41 ++ .../hardware/radio/modem/HardwareConfig.aidl | 48 ++ .../radio/modem/HardwareConfigModem.aidl | 43 ++ .../radio/modem/HardwareConfigSim.aidl | 39 + .../hardware/radio/modem/IRadioModem.aidl | 68 ++ .../radio/modem/IRadioModemIndication.aidl | 44 ++ .../radio/modem/IRadioModemResponse.aidl | 67 ++ .../hardware/radio/modem/ImeiInfo.aidl | 46 ++ .../android/hardware/radio/modem/NvItem.aidl | 82 +++ .../hardware/radio/modem/NvWriteItem.aidl | 43 ++ .../hardware/radio/modem/RadioCapability.aidl | 51 ++ .../hardware/radio/modem/RadioState.aidl | 41 ++ .../hardware/radio/modem/ResetNvType.aidl | 41 ++ .../android.hardware.radio.network/3/.hash | 1 + .../network/AccessTechnologySpecificInfo.aidl | 43 ++ .../hardware/radio/network/BarringInfo.aidl | 86 +++ .../network/BarringTypeSpecificInfo.aidl | 41 ++ .../network/Cdma2000RegistrationInfo.aidl | 45 ++ .../radio/network/CdmaRoamingType.aidl | 41 ++ .../radio/network/CdmaSignalStrength.aidl | 40 + .../radio/network/CellConnectionStatus.aidl | 41 ++ .../hardware/radio/network/CellIdentity.aidl | 45 ++ .../radio/network/CellIdentityCdma.aidl | 44 ++ .../radio/network/CellIdentityGsm.aidl | 46 ++ .../radio/network/CellIdentityLte.aidl | 49 ++ .../radio/network/CellIdentityNr.aidl | 47 ++ .../radio/network/CellIdentityTdscdma.aidl | 47 ++ .../radio/network/CellIdentityWcdma.aidl | 47 ++ .../hardware/radio/network/CellInfo.aidl | 41 ++ .../hardware/radio/network/CellInfoCdma.aidl | 41 ++ .../hardware/radio/network/CellInfoGsm.aidl | 40 + .../hardware/radio/network/CellInfoLte.aidl | 40 + .../hardware/radio/network/CellInfoNr.aidl | 40 + .../network/CellInfoRatSpecificInfo.aidl | 44 ++ .../radio/network/CellInfoTdscdma.aidl | 40 + .../hardware/radio/network/CellInfoWcdma.aidl | 40 + .../radio/network/CellularIdentifier.aidl | 42 ++ .../network/CellularIdentifierDisclosure.aidl | 42 ++ .../network/ClosedSubscriberGroupInfo.aidl | 41 ++ .../radio/network/ConnectionEvent.aidl | 54 ++ .../hardware/radio/network/Domain.aidl | 40 + .../hardware/radio/network/EmergencyMode.aidl | 41 ++ .../network/EmergencyNetworkScanTrigger.aidl | 40 + .../radio/network/EmergencyRegResult.aidl | 47 ++ .../radio/network/EmergencyScanType.aidl | 41 ++ .../hardware/radio/network/EutranBands.aidl | 98 +++ .../radio/network/EutranRegistrationInfo.aidl | 49 ++ .../radio/network/EvdoSignalStrength.aidl | 41 ++ .../hardware/radio/network/GeranBands.aidl | 52 ++ .../radio/network/GsmSignalStrength.aidl | 41 ++ .../hardware/radio/network/IRadioNetwork.aidl | 89 +++ .../network/IRadioNetworkIndication.aidl | 55 ++ .../radio/network/IRadioNetworkResponse.aidl | 88 +++ .../radio/network/IndicationFilter.aidl | 47 ++ .../hardware/radio/network/LceDataInfo.aidl | 41 ++ .../radio/network/LinkCapacityEstimate.aidl | 42 ++ .../radio/network/LteSignalStrength.aidl | 45 ++ .../hardware/radio/network/LteVopsInfo.aidl | 40 + .../radio/network/NasProtocolMessage.aidl | 50 ++ .../radio/network/NetworkScanRequest.aidl | 54 ++ .../radio/network/NetworkScanResult.aidl | 43 ++ .../hardware/radio/network/NgranBands.aidl | 91 +++ .../network/NrDualConnectivityState.aidl | 41 ++ .../hardware/radio/network/NrIndicators.aidl | 41 ++ .../radio/network/NrSignalStrength.aidl | 47 ++ .../hardware/radio/network/NrVopsInfo.aidl | 52 ++ .../hardware/radio/network/OperatorInfo.aidl | 46 ++ .../radio/network/PhoneRestrictedState.aidl | 43 ++ .../radio/network/PhysicalChannelConfig.aidl | 47 ++ .../network/PhysicalChannelConfigBand.aidl | 43 ++ .../radio/network/RadioAccessSpecifier.aidl | 41 ++ .../network/RadioAccessSpecifierBands.aidl | 43 ++ .../hardware/radio/network/RadioBandMode.aidl | 57 ++ .../hardware/radio/network/RegState.aidl | 49 ++ .../radio/network/RegStateResult.aidl | 44 ++ .../radio/network/RegistrationFailCause.aidl | 94 +++ .../radio/network/SecurityAlgorithm.aidl | 81 ++ .../network/SecurityAlgorithmUpdate.aidl | 42 ++ .../radio/network/SignalStrength.aidl | 45 ++ .../radio/network/SignalThresholdInfo.aidl | 53 ++ .../radio/network/SuppSvcNotification.aidl | 43 ++ .../radio/network/TdscdmaSignalStrength.aidl | 41 ++ .../hardware/radio/network/UsageSetting.aidl | 40 + .../hardware/radio/network/UtranBands.aidl | 64 ++ .../radio/network/WcdmaSignalStrength.aidl | 42 ++ .../android.hardware.radio.sim/3/.hash | 1 + .../android/hardware/radio/sim/AppStatus.aidl | 58 ++ .../hardware/radio/sim/CardPowerState.aidl | 41 ++ .../hardware/radio/sim/CardStatus.aidl | 53 ++ .../3/android/hardware/radio/sim/Carrier.aidl | 47 ++ .../hardware/radio/sim/CarrierInfo.aidl | 47 ++ .../radio/sim/CarrierRestrictions.aidl | 56 ++ .../radio/sim/CdmaSubscriptionSource.aidl | 40 + .../android/hardware/radio/sim/IRadioSim.aidl | 78 ++ .../radio/sim/IRadioSimIndication.aidl | 49 ++ .../hardware/radio/sim/IRadioSimResponse.aidl | 77 ++ .../3/android/hardware/radio/sim/IccIo.aidl | 47 ++ .../hardware/radio/sim/IccIoResult.aidl | 41 ++ .../radio/sim/ImsiEncryptionInfo.aidl | 46 ++ .../hardware/radio/sim/PbReceivedStatus.aidl | 42 ++ .../hardware/radio/sim/PersoSubstate.aidl | 73 ++ .../hardware/radio/sim/PhonebookCapacity.aidl | 48 ++ .../radio/sim/PhonebookRecordInfo.aidl | 43 ++ .../android/hardware/radio/sim/PinState.aidl | 44 ++ .../3/android/hardware/radio/sim/Plmn.aidl | 40 + .../hardware/radio/sim/SelectUiccSub.aidl | 47 ++ .../hardware/radio/sim/SessionInfo.aidl | 40 + .../3/android/hardware/radio/sim/SimApdu.aidl | 46 ++ .../radio/sim/SimLockMultiSimPolicy.aidl | 47 ++ .../hardware/radio/sim/SimRefreshResult.aidl | 44 ++ .../android.hardware.radio.voice/3/.hash | 1 + .../hardware/radio/voice/AudioQuality.aidl | 48 ++ .../3/android/hardware/radio/voice/Call.aidl | 63 ++ .../hardware/radio/voice/CallForwardInfo.aidl | 49 ++ .../hardware/radio/voice/CdmaCallWaiting.aidl | 58 ++ .../radio/voice/CdmaDisplayInfoRecord.aidl | 40 + .../radio/voice/CdmaInformationRecord.aidl | 58 ++ .../voice/CdmaLineControlInfoRecord.aidl | 42 ++ .../radio/voice/CdmaNumberInfoRecord.aidl | 44 ++ .../radio/voice/CdmaOtaProvisionStatus.aidl | 50 ++ .../CdmaRedirectingNumberInfoRecord.aidl | 47 ++ .../radio/voice/CdmaSignalInfoRecord.aidl | 42 ++ .../voice/CdmaT53AudioControlInfoRecord.aidl | 40 + .../radio/voice/CdmaT53ClirInfoRecord.aidl | 39 + .../android/hardware/radio/voice/CfData.aidl | 40 + .../hardware/radio/voice/ClipStatus.aidl | 41 ++ .../3/android/hardware/radio/voice/Dial.aidl | 44 ++ .../radio/voice/EmergencyCallRouting.aidl | 41 ++ .../hardware/radio/voice/EmergencyNumber.aidl | 48 ++ .../radio/voice/EmergencyServiceCategory.aidl | 46 ++ .../hardware/radio/voice/IRadioVoice.aidl | 77 ++ .../radio/voice/IRadioVoiceIndication.aidl | 53 ++ .../radio/voice/IRadioVoiceResponse.aidl | 76 ++ .../radio/voice/LastCallFailCause.aidl | 134 ++++ .../radio/voice/LastCallFailCauseInfo.aidl | 40 + .../hardware/radio/voice/SrvccState.aidl | 42 ++ .../hardware/radio/voice/SsInfoData.aidl | 40 + .../radio/voice/StkCcUnsolSsResult.aidl | 85 +++ .../android/hardware/radio/voice/TtyMode.aidl | 42 ++ .../hardware/radio/voice/UssdModeType.aidl | 44 ++ .../android/hardware/radio/voice/UusInfo.aidl | 53 ++ .../aidl_api/android.hardware.radio/3/.hash | 1 + .../android/hardware/radio/AccessNetwork.aidl | 45 ++ .../hardware/radio/RadioAccessFamily.aidl | 62 ++ .../3/android/hardware/radio/RadioConst.aidl | 42 ++ .../3/android/hardware/radio/RadioError.aidl | 127 ++++ .../hardware/radio/RadioIndicationType.aidl | 40 + .../hardware/radio/RadioResponseInfo.aidl | 41 ++ .../radio/RadioResponseInfoModem.aidl | 42 ++ .../hardware/radio/RadioResponseType.aidl | 41 ++ .../hardware/radio/RadioTechnology.aidl | 62 ++ .../hardware/radio/RadioTechnologyFamily.aidl | 40 + security/authgraph/aidl/Android.bp | 9 +- .../1/.hash | 1 + .../hardware/security/authgraph/Arc.aidl | 39 + .../hardware/security/authgraph/Error.aidl | 50 ++ .../authgraph/IAuthGraphKeyExchange.aidl | 42 ++ .../hardware/security/authgraph/Identity.aidl | 38 + .../security/authgraph/KeInitResult.aidl | 39 + .../hardware/security/authgraph/Key.aidl | 39 + .../security/authgraph/PlainPubKey.aidl | 38 + .../hardware/security/authgraph/PubKey.aidl | 39 + .../authgraph/SessionIdSignature.aidl | 38 + .../security/authgraph/SessionInfo.aidl | 40 + .../authgraph/SessionInitiationInfo.aidl | 41 ++ .../security/authgraph/SignedPubKey.aidl | 38 + security/secretkeeper/aidl/Android.bp | 9 +- .../1/.hash | 1 + .../security/secretkeeper/ISecretkeeper.aidl | 44 ++ .../security/secretkeeper/SecretId.aidl | 39 + soundtrigger/aidl/Android.bp | 7 +- .../android.hardware.soundtrigger3/2/.hash | 1 + .../soundtrigger3/ISoundTriggerHw.aidl | 48 ++ .../ISoundTriggerHwCallback.aidl | 40 + .../ISoundTriggerHwGlobalCallback.aidl | 38 + thermal/aidl/Android.bp | 7 +- .../aidl_api/android.hardware.thermal/2/.hash | 1 + .../hardware/thermal/CoolingDevice.aidl | 44 ++ .../android/hardware/thermal/CoolingType.aidl | 53 ++ .../ICoolingDeviceChangedCallback.aidl | 39 + .../2/android/hardware/thermal/IThermal.aidl | 49 ++ .../thermal/IThermalChangedCallback.aidl | 39 + .../android/hardware/thermal/Temperature.aidl | 42 ++ .../thermal/TemperatureThreshold.aidl | 42 ++ .../hardware/thermal/TemperatureType.aidl | 59 ++ .../hardware/thermal/ThrottlingSeverity.aidl | 45 ++ threadnetwork/aidl/Android.bp | 8 + .../android.hardware.threadnetwork/1/.hash | 1 + .../hardware/threadnetwork/IThreadChip.aidl | 44 ++ .../threadnetwork/IThreadChipCallback.aidl | 38 + tv/input/aidl/Android.bp | 11 +- .../android.hardware.tv.input/2/.hash | 1 + .../tv/input/CableConnectionStatus.aidl | 40 + .../2/android/hardware/tv/input/ITvInput.aidl | 47 ++ .../hardware/tv/input/ITvInputCallback.aidl | 39 + .../hardware/tv/input/TvInputDeviceInfo.aidl | 42 ++ .../hardware/tv/input/TvInputEvent.aidl | 39 + .../hardware/tv/input/TvInputEventType.aidl | 40 + .../hardware/tv/input/TvInputType.aidl | 47 ++ .../android/hardware/tv/input/TvMessage.aidl | 41 ++ .../hardware/tv/input/TvMessageEvent.aidl | 41 ++ .../hardware/tv/input/TvMessageEventType.aidl | 40 + .../hardware/tv/input/TvStreamConfig.aidl | 40 + usb/aidl/Android.bp | 6 +- .../aidl_api/android.hardware.usb/3/.hash | 1 + .../3/android/hardware/usb/AltModeData.aidl | 46 ++ .../hardware/usb/ComplianceWarning.aidl | 46 ++ .../usb/ContaminantDetectionStatus.aidl | 41 ++ .../usb/ContaminantProtectionMode.aidl | 41 ++ .../usb/ContaminantProtectionStatus.aidl | 42 ++ .../usb/DisplayPortAltModePinAssignment.aidl | 44 ++ .../usb/DisplayPortAltModeStatus.aidl | 41 ++ .../3/android/hardware/usb/IUsb.aidl | 45 ++ .../3/android/hardware/usb/IUsbCallback.aidl | 45 ++ .../hardware/usb/LinkTrainingStatus.aidl | 40 + .../android/hardware/usb/PlugOrientation.aidl | 42 ++ .../3/android/hardware/usb/PortDataRole.aidl | 40 + .../3/android/hardware/usb/PortMode.aidl | 43 ++ .../3/android/hardware/usb/PortPowerRole.aidl | 40 + .../3/android/hardware/usb/PortRole.aidl | 40 + .../3/android/hardware/usb/PortStatus.aidl | 57 ++ .../hardware/usb/PowerBrickStatus.aidl | 40 + .../3/android/hardware/usb/Status.aidl | 42 ++ .../3/android/hardware/usb/UsbDataStatus.aidl | 46 ++ wifi/aidl/Android.bp | 7 +- .../aidl_api/android.hardware.wifi/2/.hash | 1 + .../hardware/wifi/AfcChannelAllowance.aidl | 40 + .../wifi/AvailableAfcChannelInfo.aidl | 40 + .../wifi/AvailableAfcFrequencyInfo.aidl | 40 + .../android/hardware/wifi/CachedScanData.aidl | 39 + .../hardware/wifi/CachedScanResult.aidl | 44 ++ .../2/android/hardware/wifi/IWifi.aidl | 43 ++ .../2/android/hardware/wifi/IWifiApIface.aidl | 43 ++ .../2/android/hardware/wifi/IWifiChip.aidl | 183 +++++ .../hardware/wifi/IWifiChipEventCallback.aidl | 55 ++ .../hardware/wifi/IWifiEventCallback.aidl | 41 ++ .../android/hardware/wifi/IWifiNanIface.aidl | 62 ++ .../wifi/IWifiNanIfaceEventCallback.aidl | 75 ++ .../android/hardware/wifi/IWifiP2pIface.aidl | 38 + .../hardware/wifi/IWifiRttController.aidl | 47 ++ .../wifi/IWifiRttControllerEventCallback.aidl | 38 + .../android/hardware/wifi/IWifiStaIface.aidl | 91 +++ .../wifi/IWifiStaIfaceEventCallback.aidl | 68 ++ .../hardware/wifi/IfaceConcurrencyType.aidl | 42 ++ .../2/android/hardware/wifi/IfaceType.aidl | 41 ++ .../2/android/hardware/wifi/MacAddress.aidl | 38 + .../2/android/hardware/wifi/NanBandIndex.aidl | 40 + .../hardware/wifi/NanBandSpecificConfig.aidl | 44 ++ .../wifi/NanBootstrappingConfirmInd.aidl | 42 ++ .../hardware/wifi/NanBootstrappingMethod.aidl | 48 ++ .../wifi/NanBootstrappingRequest.aidl | 43 ++ .../wifi/NanBootstrappingRequestInd.aidl | 42 ++ .../wifi/NanBootstrappingResponse.aidl | 40 + .../wifi/NanBootstrappingResponseCode.aidl | 40 + .../hardware/wifi/NanCapabilities.aidl | 57 ++ .../hardware/wifi/NanCipherSuiteType.aidl | 44 ++ .../hardware/wifi/NanClusterEventInd.aidl | 39 + .../hardware/wifi/NanClusterEventType.aidl | 40 + .../hardware/wifi/NanConfigRequest.aidl | 49 ++ .../wifi/NanConfigRequestSupplemental.aidl | 44 ++ .../hardware/wifi/NanDataPathChannelCfg.aidl | 40 + .../hardware/wifi/NanDataPathChannelInfo.aidl | 40 + .../hardware/wifi/NanDataPathConfirmInd.aidl | 43 ++ .../hardware/wifi/NanDataPathRequestInd.aidl | 42 ++ .../wifi/NanDataPathScheduleUpdateInd.aidl | 40 + .../wifi/NanDataPathSecurityConfig.aidl | 48 ++ .../wifi/NanDataPathSecurityType.aidl | 40 + .../android/hardware/wifi/NanDebugConfig.aidl | 54 ++ .../wifi/NanDiscoveryCommonConfig.aidl | 58 ++ .../hardware/wifi/NanEnableRequest.aidl | 41 ++ .../hardware/wifi/NanFollowupReceivedInd.aidl | 43 ++ .../wifi/NanIdentityResolutionAttribute.aidl | 39 + .../wifi/NanInitiateDataPathRequest.aidl | 46 ++ .../2/android/hardware/wifi/NanMatchAlg.aidl | 40 + .../2/android/hardware/wifi/NanMatchInd.aidl | 55 ++ .../android/hardware/wifi/NanPairingAkm.aidl | 39 + .../hardware/wifi/NanPairingConfig.aidl | 41 ++ .../hardware/wifi/NanPairingConfirmInd.aidl | 44 ++ .../hardware/wifi/NanPairingRequest.aidl | 44 ++ .../hardware/wifi/NanPairingRequestInd.aidl | 45 ++ .../hardware/wifi/NanPairingRequestType.aidl | 39 + .../wifi/NanPairingSecurityConfig.aidl | 42 ++ .../hardware/wifi/NanPairingSecurityType.aidl | 40 + .../hardware/wifi/NanPublishRequest.aidl | 44 ++ .../android/hardware/wifi/NanPublishType.aidl | 40 + .../hardware/wifi/NanRangingIndication.aidl | 40 + ...NanRespondToDataPathIndicationRequest.aidl | 44 ++ .../NanRespondToPairingIndicationRequest.aidl | 44 ++ .../2/android/hardware/wifi/NanSrfType.aidl | 39 + .../2/android/hardware/wifi/NanStatus.aidl | 39 + .../android/hardware/wifi/NanStatusCode.aidl | 55 ++ .../hardware/wifi/NanSubscribeRequest.aidl | 47 ++ .../hardware/wifi/NanSubscribeType.aidl | 39 + .../wifi/NanSuspensionModeChangeInd.aidl | 38 + .../wifi/NanTransmitFollowupRequest.aidl | 45 ++ .../2/android/hardware/wifi/NanTxType.aidl | 39 + .../hardware/wifi/NpkSecurityAssociation.aidl | 42 ++ .../2/android/hardware/wifi/RttBw.aidl | 45 ++ .../hardware/wifi/RttCapabilities.aidl | 50 ++ .../2/android/hardware/wifi/RttConfig.aidl | 54 ++ .../hardware/wifi/RttLciInformation.aidl | 47 ++ .../hardware/wifi/RttLcrInformation.aidl | 39 + .../hardware/wifi/RttMotionPattern.aidl | 40 + .../2/android/hardware/wifi/RttPeerType.aidl | 42 ++ .../2/android/hardware/wifi/RttPreamble.aidl | 43 ++ .../2/android/hardware/wifi/RttResponder.aidl | 39 + .../2/android/hardware/wifi/RttResult.aidl | 69 ++ .../2/android/hardware/wifi/RttStatus.aidl | 55 ++ .../2/android/hardware/wifi/RttType.aidl | 41 ++ .../2/android/hardware/wifi/Ssid.aidl | 38 + .../wifi/StaApfPacketFilterCapabilities.aidl | 39 + ...groundScanBucketEventReportSchemeMask.aidl | 40 + .../StaBackgroundScanBucketParameters.aidl | 45 ++ .../wifi/StaBackgroundScanCapabilities.aidl | 41 ++ .../wifi/StaBackgroundScanLimits.aidl | 40 + .../wifi/StaBackgroundScanParameters.aidl | 42 ++ .../StaLinkLayerIfaceContentionTimeStats.aidl | 41 ++ .../wifi/StaLinkLayerIfacePacketStats.aidl | 41 ++ .../hardware/wifi/StaLinkLayerIfaceStats.aidl | 38 + .../hardware/wifi/StaLinkLayerLinkStats.aidl | 59 ++ .../hardware/wifi/StaLinkLayerRadioStats.aidl | 49 ++ .../hardware/wifi/StaLinkLayerStats.aidl | 40 + .../2/android/hardware/wifi/StaPeerInfo.aidl | 40 + .../2/android/hardware/wifi/StaRateStat.aidl | 42 ++ .../hardware/wifi/StaRoamingCapabilities.aidl | 39 + .../hardware/wifi/StaRoamingConfig.aidl | 39 + .../hardware/wifi/StaRoamingState.aidl | 40 + .../2/android/hardware/wifi/StaScanData.aidl | 40 + .../hardware/wifi/StaScanDataFlagMask.aidl | 38 + .../android/hardware/wifi/StaScanResult.aidl | 45 ++ .../hardware/wifi/TwtCapabilities.aidl | 45 ++ .../2/android/hardware/wifi/TwtRequest.aidl | 42 ++ .../2/android/hardware/wifi/TwtSession.aidl | 54 ++ .../hardware/wifi/TwtSessionStats.aidl | 43 ++ .../hardware/wifi/WifiAntennaMode.aidl | 42 ++ .../2/android/hardware/wifi/WifiBand.aidl | 51 ++ .../hardware/wifi/WifiChannelInfo.aidl | 41 ++ .../hardware/wifi/WifiChannelStats.aidl | 40 + .../hardware/wifi/WifiChannelWidthInMhz.aidl | 46 ++ .../hardware/wifi/WifiChipCapabilities.aidl | 40 + ...ebugHostWakeReasonRxIcmpPacketDetails.aidl | 42 ++ ...ostWakeReasonRxMulticastPacketDetails.aidl | 40 + ...ifiDebugHostWakeReasonRxPacketDetails.aidl | 40 + .../wifi/WifiDebugHostWakeReasonStats.aidl | 45 ++ .../wifi/WifiDebugPacketFateFrameInfo.aidl | 42 ++ .../wifi/WifiDebugPacketFateFrameType.aidl | 40 + .../wifi/WifiDebugRingBufferFlags.aidl | 40 + .../wifi/WifiDebugRingBufferStatus.aidl | 43 ++ .../wifi/WifiDebugRingBufferVerboseLevel.aidl | 41 ++ .../hardware/wifi/WifiDebugRxPacketFate.aidl | 48 ++ .../wifi/WifiDebugRxPacketFateReport.aidl | 39 + .../hardware/wifi/WifiDebugTxPacketFate.aidl | 47 ++ .../wifi/WifiDebugTxPacketFateReport.aidl | 39 + .../android/hardware/wifi/WifiIfaceMode.aidl | 45 ++ .../hardware/wifi/WifiInformationElement.aidl | 39 + .../hardware/wifi/WifiRadioCombination.aidl | 38 + .../hardware/wifi/WifiRadioConfiguration.aidl | 39 + .../2/android/hardware/wifi/WifiRateInfo.aidl | 42 ++ .../2/android/hardware/wifi/WifiRateNss.aidl | 41 ++ .../hardware/wifi/WifiRatePreamble.aidl | 44 ++ .../android/hardware/wifi/WifiStatusCode.aidl | 47 ++ .../hardware/wifi/WifiUsableChannel.aidl | 40 + wifi/common/aidl/Android.bp | 8 + .../android.hardware.wifi.common/1/.hash | 1 + .../hardware/wifi/common/OuiKeyedData.aidl | 39 + wifi/hostapd/aidl/Android.bp | 6 + .../android.hardware.wifi.hostapd/2/.hash | 1 + .../android/hardware/wifi/hostapd/ApInfo.aidl | 44 ++ .../hardware/wifi/hostapd/BandMask.aidl | 41 ++ .../wifi/hostapd/ChannelBandwidth.aidl | 50 ++ .../hardware/wifi/hostapd/ChannelParams.aidl | 42 ++ .../hardware/wifi/hostapd/ClientInfo.aidl | 41 ++ .../hardware/wifi/hostapd/DebugLevel.aidl | 43 ++ .../hardware/wifi/hostapd/EncryptionType.aidl | 44 ++ .../hardware/wifi/hostapd/FrequencyRange.aidl | 39 + .../hardware/wifi/hostapd/Generation.aidl | 44 ++ .../wifi/hostapd/HostapdStatusCode.aidl | 43 ++ .../hardware/wifi/hostapd/HwModeParams.aidl | 48 ++ .../hardware/wifi/hostapd/IHostapd.aidl | 43 ++ .../wifi/hostapd/IHostapdCallback.aidl | 40 + .../wifi/hostapd/Ieee80211ReasonCode.aidl | 40 + .../hardware/wifi/hostapd/IfaceParams.aidl | 41 ++ .../hardware/wifi/hostapd/NetworkParams.aidl | 43 ++ .../wifi/hostapd/ParamSizeLimits.aidl | 40 + wifi/supplicant/aidl/Android.bp | 6 +- .../android.hardware.wifi.supplicant/3/.hash | 1 + .../hardware/wifi/supplicant/AnqpData.aidl | 44 ++ .../hardware/wifi/supplicant/AnqpInfoId.aidl | 43 ++ .../supplicant/AssociationRejectionData.aidl | 45 ++ .../hardware/wifi/supplicant/AuthAlgMask.aidl | 41 ++ .../AuxiliarySupplicantEventCode.aidl | 40 + .../hardware/wifi/supplicant/BssTmData.aidl | 42 ++ .../wifi/supplicant/BssTmDataFlagsMask.aidl | 45 ++ .../wifi/supplicant/BssTmStatusCode.aidl | 46 ++ .../wifi/supplicant/BssidChangeReason.aidl | 40 + .../wifi/supplicant/BtCoexistenceMode.aidl | 40 + .../supplicant/ConnectionCapabilities.aidl | 44 ++ .../hardware/wifi/supplicant/DebugLevel.aidl | 43 ++ .../hardware/wifi/supplicant/DppAkm.aidl | 41 ++ .../wifi/supplicant/DppConfigurationData.aidl | 43 ++ .../wifi/supplicant/DppConnectionKeys.aidl | 40 + .../hardware/wifi/supplicant/DppCurve.aidl | 43 ++ .../wifi/supplicant/DppEventType.aidl | 39 + .../wifi/supplicant/DppFailureCode.aidl | 49 ++ .../hardware/wifi/supplicant/DppNetRole.aidl | 39 + .../wifi/supplicant/DppProgressCode.aidl | 41 ++ .../supplicant/DppResponderBootstrapInfo.aidl | 40 + .../wifi/supplicant/DppStatusErrorCode.aidl | 53 ++ .../wifi/supplicant/EapErrorCode.aidl | 42 ++ .../hardware/wifi/supplicant/EapMethod.aidl | 45 ++ .../wifi/supplicant/EapPhase2Method.aidl | 45 ++ .../wifi/supplicant/ExtRadioWorkDefaults.aidl | 38 + .../hardware/wifi/supplicant/FreqRange.aidl | 39 + .../wifi/supplicant/GroupCipherMask.aidl | 45 ++ .../wifi/supplicant/GroupMgmtCipherMask.aidl | 40 + .../hardware/wifi/supplicant/GsmRand.aidl | 38 + .../wifi/supplicant/Hs20AnqpData.aidl | 41 ++ .../wifi/supplicant/Hs20AnqpSubtypes.aidl | 41 ++ .../supplicant/INonStandardCertCallback.aidl | 39 + .../hardware/wifi/supplicant/ISupplicant.aidl | 52 ++ .../wifi/supplicant/ISupplicantCallback.aidl | 39 + .../wifi/supplicant/ISupplicantP2pIface.aidl | 126 ++++ .../ISupplicantP2pIfaceCallback.aidl | 83 +++ .../supplicant/ISupplicantP2pNetwork.aidl | 47 ++ .../wifi/supplicant/ISupplicantStaIface.aidl | 107 +++ .../ISupplicantStaIfaceCallback.aidl | 90 +++ .../supplicant/ISupplicantStaNetwork.aidl | 140 ++++ .../ISupplicantStaNetworkCallback.aidl | 43 ++ .../hardware/wifi/supplicant/IfaceInfo.aidl | 39 + .../hardware/wifi/supplicant/IfaceType.aidl | 39 + .../hardware/wifi/supplicant/IpVersion.aidl | 39 + .../hardware/wifi/supplicant/KeyMgmtMask.aidl | 55 ++ .../hardware/wifi/supplicant/LegacyMode.aidl | 41 ++ .../hardware/wifi/supplicant/MacAddress.aidl | 38 + .../MboAssocDisallowedReasonCode.aidl | 43 ++ .../MboCellularDataConnectionPrefValue.aidl | 40 + .../supplicant/MboTransitionReasonCode.aidl | 47 ++ .../wifi/supplicant/MiracastMode.aidl | 40 + .../hardware/wifi/supplicant/MloLink.aidl | 43 ++ .../wifi/supplicant/MloLinksInfo.aidl | 40 + .../hardware/wifi/supplicant/MscsParams.aidl | 52 ++ .../wifi/supplicant/MsduDeliveryInfo.aidl | 51 ++ .../NetworkRequestEapSimGsmAuthParams.aidl | 38 + .../NetworkRequestEapSimUmtsAuthParams.aidl | 39 + .../NetworkResponseEapSimGsmAuthParams.aidl | 39 + .../NetworkResponseEapSimUmtsAuthParams.aidl | 40 + .../OceRssiBasedAssocRejectAttr.aidl | 39 + .../hardware/wifi/supplicant/OcspType.aidl | 41 ++ .../hardware/wifi/supplicant/OsuMethod.aidl | 39 + .../P2pAddGroupConfigurationParams.aidl | 45 ++ .../P2pClientEapolIpAddressInfo.aidl | 40 + .../wifi/supplicant/P2pConnectInfo.aidl | 44 ++ .../supplicant/P2pCreateGroupOwnerInfo.aidl | 40 + .../supplicant/P2pDeviceFoundEventParams.aidl | 48 ++ .../wifi/supplicant/P2pDiscoveryInfo.aidl | 41 ++ .../wifi/supplicant/P2pExtListenInfo.aidl | 40 + .../wifi/supplicant/P2pFrameTypeMask.aidl | 50 ++ .../P2pGoNegotiationReqEventParams.aidl | 40 + .../supplicant/P2pGroupCapabilityMask.aidl | 44 ++ .../P2pGroupStartedEventParams.aidl | 49 ++ .../supplicant/P2pInvitationEventParams.aidl | 43 ++ .../P2pPeerClientDisconnectedEventParams.aidl | 41 ++ .../P2pPeerClientJoinedEventParams.aidl | 42 ++ .../supplicant/P2pProvDiscStatusCode.aidl | 42 ++ ...rovisionDiscoveryCompletedEventParams.aidl | 44 ++ .../hardware/wifi/supplicant/P2pScanType.aidl | 40 + .../wifi/supplicant/P2pStatusCode.aidl | 50 ++ .../wifi/supplicant/PairwiseCipherMask.aidl | 43 ++ .../wifi/supplicant/PmkSaCacheData.aidl | 40 + .../hardware/wifi/supplicant/PortRange.aidl | 39 + .../hardware/wifi/supplicant/ProtoMask.aidl | 41 ++ .../wifi/supplicant/ProtocolNextHeader.aidl | 40 + .../wifi/supplicant/QosCharacteristics.aidl | 59 ++ .../supplicant/QosPolicyClassifierParams.aidl | 47 ++ .../QosPolicyClassifierParamsMask.aidl | 45 ++ .../wifi/supplicant/QosPolicyData.aidl | 41 ++ .../wifi/supplicant/QosPolicyRequestType.aidl | 39 + .../wifi/supplicant/QosPolicyScsData.aidl | 32 + .../supplicant/QosPolicyScsRequestStatus.aidl | 24 + .../QosPolicyScsRequestStatusCode.aidl | 26 + .../QosPolicyScsResponseStatus.aidl | 24 + .../QosPolicyScsResponseStatusCode.aidl | 31 + .../wifi/supplicant/QosPolicyStatus.aidl | 39 + .../wifi/supplicant/QosPolicyStatusCode.aidl | 41 ++ .../wifi/supplicant/RxFilterType.aidl | 39 + .../hardware/wifi/supplicant/SaeH2eMode.aidl | 40 + .../wifi/supplicant/SignalPollResult.aidl | 42 ++ .../supplicant/StaIfaceCallbackState.aidl | 47 ++ .../wifi/supplicant/StaIfaceReasonCode.aidl | 98 +++ .../wifi/supplicant/StaIfaceStatusCode.aidl | 134 ++++ .../supplicant/SupplicantStateChangeData.aidl | 44 ++ .../wifi/supplicant/SupplicantStatusCode.aidl | 49 ++ .../hardware/wifi/supplicant/TlsVersion.aidl | 41 ++ .../TransitionDisableIndication.aidl | 41 ++ .../wifi/supplicant/WifiTechnology.aidl | 43 ++ .../supplicant/WpaDriverCapabilitiesMask.aidl | 44 ++ .../wifi/supplicant/WpsConfigError.aidl | 58 ++ .../wifi/supplicant/WpsConfigMethods.aidl | 51 ++ .../wifi/supplicant/WpsDevPasswordId.aidl | 45 ++ .../wifi/supplicant/WpsErrorIndication.aidl | 41 ++ .../wifi/supplicant/WpsProvisionMethod.aidl | 40 + 1351 files changed, 60183 insertions(+), 32 deletions(-) create mode 100644 audio/aidl/aidl_api/android.hardware.audio.common/3/.hash create mode 100644 audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/AudioOffloadMetadata.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/PlaybackTrackMetadata.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/RecordTrackMetadata.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SinkMetadata.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SourceMetadata.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/.hash create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/android/hardware/audio/core/sounddose/ISoundDose.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/.hash create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioPatch.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioRoute.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetooth.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothA2dp.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothLe.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IConfig.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IModule.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCallback.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCommon.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamIn.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOut.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOutEventCallback.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ITelephony.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/MmapBufferDescriptor.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ModuleDebug.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/StreamDescriptor.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/SurroundSoundConfig.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/VendorParameter.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/.hash create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AcousticEchoCanceler.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV1.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV2.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/BassBoost.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Capability.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/CommandId.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DefaultExtension.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Descriptor.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Downmix.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DynamicsProcessing.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/EnvironmentalReverb.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Equalizer.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Flags.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/HapticGenerator.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IEffect.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IFactory.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/LoudnessEnhancer.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/NoiseSuppression.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Parameter.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/PresetReverb.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Processing.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Range.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Spatializer.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/State.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/VendorExtension.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Virtualizer.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Visualizer.aidl create mode 100644 audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Volume.aidl create mode 100644 audio/aidl/sounddose/aidl_api/android.hardware.audio.sounddose/2/.hash create mode 100644 audio/aidl/sounddose/aidl_api/android.hardware.audio.sounddose/2/android/hardware/audio/sounddose/ISoundDoseFactory.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/.hash create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioFocusChange.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioGainConfigInfo.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/DuckingInfo.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioControl.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioGainCallback.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IFocusListener.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IModuleChangeCallback.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/MutingInfo.aidl create mode 100644 automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/Reasons.aidl create mode 100644 automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/.hash create mode 100644 automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ApState.aidl create mode 100644 automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl create mode 100644 automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl create mode 100644 automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl create mode 100644 automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/TaskType.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/.hash create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequest.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequests.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResult.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResults.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicle.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicleCallback.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/RawPropValues.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequest.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequests.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResult.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResults.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/StatusCode.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SubscribeOptions.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfig.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfigs.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropError.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropErrors.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValue.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValues.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyAccess.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyChangeMode.aidl create mode 100644 automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyStatus.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/.hash create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/AutomaticEmergencyBrakingState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/BlindSpotWarningState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CameraServiceState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserRequest.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserResponse.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserStatus.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CrossTrafficMonitoringWarningState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlCommand.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CustomInputType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticFloatSensorIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticIntegerSensorIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionWarning.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionWarning.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicStabilityControlState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardStatus.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EmergencyLaneKeepAssistState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ErrorState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvChargeState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvConnectorType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvRegenerativeBrakingState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvStoppingMode.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceRequestIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ForwardCollisionWarningState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/FuelType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/GsrComplianceRequirementType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionDriverState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionWarning.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ImpactSensorLocation.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequest.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequestType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponse.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponseAction.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistCommand.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneDepartureWarningState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneKeepAssistState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LocationCharacterization.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedCollisionWarningState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CommonIgnitionMonitors.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CompressionIgnitionMonitors.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelSystemStatus.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2IgnitionMonitorKind.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SecondaryAirStatus.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SparkIgnitionMonitors.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/PortLocationType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ProcessTerminationReason.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RemoveUserRequest.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RotaryInputType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserMessageType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserRequest.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserResponse.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserStatus.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/TrailerState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociation.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationSetValue.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationValue.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationGetRequest.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationResponse.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetAssociation.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetRequest.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserInfo.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UsersInfo.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAirbagLocation.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateConfigFlag.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReport.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReq.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReqIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleArea.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaDoor.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaMirror.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaSeat.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWheel.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWindow.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAutonomousState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleDisplay.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleGear.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHvacFanDirection.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwKeyInputAction.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionButtonStateFlag.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputAction.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputSource.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionToolType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleIgnitionState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightSwitch.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleOilLevel.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleProperty.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyGroup.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleSeatOccupancyState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleTurnSignal.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleUnit.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleVendorPermission.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsAvailabilityStateIntegerValuesIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsBaseMessageIntegerValuesIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageType.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerIntegerValuesIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsOfferingMessageIntegerValuesIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsPublisherInformationIntegerValuesIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsStartSessionMessageIntegerValuesIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsSubscriptionsStateIntegerValuesIndex.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersState.aidl create mode 100644 automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersSwitch.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/.hash create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/AuthenticateReason.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/CommonProps.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ComponentInfo.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/DisplayState.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/FoldState.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ICancellationSignal.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationContext.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationReason.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationState.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/SensorStrength.aidl create mode 100644 biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/WakeReason.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/.hash create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/AcquiredInfo.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/Error.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/FingerprintSensorType.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/IFingerprint.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISession.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISessionCallback.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/PointerContext.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorLocation.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorProps.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorShape.aidl create mode 100644 biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/TouchDetectionParameters.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/.hash create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfigurationHint.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStatus.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacObjectType.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveChannelMode.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveInputMode.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveTimeToPlay.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxMode.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxSinkBuffering.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioContext.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioLocation.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BluetoothAudioStatus.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BroadcastCapability.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ChannelMode.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecId.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecInfo.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecParameters.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificConfigurationLtv.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecType.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ConfigurationFlags.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/HfpConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioPort.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LatencyMode.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Capabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Configuration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacChannelMode.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacQualityIndex.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioAseConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBisConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBroadcastConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecCapabilitiesSetting.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/MetadataLtv.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Phy.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PresentationPosition.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcAllocMethod.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcCapabilities.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcChannelMode.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcConfiguration.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SessionType.aidl create mode 100644 bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/UnicastCapability.aidl create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/.hash create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/AddressType.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Direction.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/LmpEventId.aidl create mode 100644 bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Timestamp.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/.hash create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/AddressType.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/BluetoothChannelSoundingParameters.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ComplexNumber.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Config.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/CsSecurityLevel.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/DeviceAddress.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSounding.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSession.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSessionCallback.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/LocationType.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ModeType.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Nadm.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RangingResult.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Reason.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ResultType.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Role.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RttType.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SessionType.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SightType.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/StepTonePct.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SubModeType.aidl create mode 100644 bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/VendorSpecificData.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/.hash create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmBandRange.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmRegionConfig.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Announcement.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AnnouncementType.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ConfigFlag.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/DabTableEntry.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/HdSubChannel.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IAnnouncementListener.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IBroadcastRadio.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ICloseHandle.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ITunerCallback.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IdentifierType.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Metadata.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramFilter.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramIdentifier.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramInfo.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramListChunk.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramSelector.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Properties.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Result.aidl create mode 100644 broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/VendorKeyValue.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/.hash create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferCache.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequest.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequestStatus.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferStatus.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlob.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlobId.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraMetadata.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraOfflineSessionInfo.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureRequest.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureResult.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ConfigureStreamsRet.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorCode.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorMsg.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/HalStream.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDevice.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceCallback.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceSession.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraInjectionSession.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraOfflineSession.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/NotifyMsg.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineRequest.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineStream.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraMetadata.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraSetting.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/RequestTemplate.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ShutterMsg.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/Stream.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffer.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRequestError.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRet.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffersVal.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfiguration.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfigurationMode.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamRotation.aidl create mode 100644 camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamType.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/.hash create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLensFacing.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLocation.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/BlackLevelLock.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSection.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataTag.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLock.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLockAvailable.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeState.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfSceneChange.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfState.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfTrigger.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframing.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingState.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLock.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbState.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlCaptureIntent.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEffectMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEnableZsl.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlLowLightBoostState.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSceneMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSettingsOverride.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DemosaicMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DistortionCorrectionMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/EdgeMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashInfoAvailable.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashState.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicInfoSupported.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HotPixelMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedAvailableLeds.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedTransmit.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensFacing.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensPoseReference.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensState.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/NoiseReductionMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/QuirksPartialResult.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestMetadataMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestType.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableFormats.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerCroppingType.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorPixelMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorTestPatternMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ShadingMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHistogramMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsOisDataMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncFrameNumber.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncMaxLatency.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapMode.aidl create mode 100644 camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapPresetCurve.aidl create mode 100644 camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/.hash create mode 100644 camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/CameraIdAndStreamCombination.aidl create mode 100644 camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ConcurrentCameraIdCombination.aidl create mode 100644 camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProvider.aidl create mode 100644 camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProviderCallback.aidl create mode 100644 compatibility_matrices/compatibility_matrix.202504.xml create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/.hash create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/AsyncEventType.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubInfo.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubMessage.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ErrorCode.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/HostEndpointInfo.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHub.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHubCallback.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/MessageDeliveryStatus.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionRequest.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionStateUpdate.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappBinary.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappInfo.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappRpcService.aidl create mode 100644 contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/Setting.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/.hash create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/BlocklistedSource.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/CorrelationVector.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/ElapsedRealtime.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssClock.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssConstellationType.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssData.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssLocation.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMeasurement.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMultipathIndicator.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssPowerStats.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssSignalType.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnss.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRil.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRilCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnss.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfo.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfoCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatching.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatchingCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssConfiguration.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssDebug.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofence.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofenceCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementInterface.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageInterface.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndication.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndicationCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsds.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsdsCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/PsdsType.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteClockInfo.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePositionEcef.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePvt.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteVelocityEcef.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsCallback.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsInterface.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/MeasurementCorrections.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/ReflectingPlane.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/SingleSatCorrection.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControl.aidl create mode 100644 gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControlCallback.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/.hash create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/AlphaInterpretation.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BlendMode.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BufferUsage.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ChromaSiting.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ColorTransform.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Compression.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Cta861_3.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Dataspace.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayDecorationSupport.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayHotplugEvent.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ExtendableType.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/FRect.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBuffer.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBufferDescription.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Hdr.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionCapability.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionStrategy.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Interlaced.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PixelFormat.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayout.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponent.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponentType.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Point.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Rect.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Smpte2086.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/StandardMetadataType.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Transform.aidl create mode 100644 graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/XyColor.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/.hash create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Buffer.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Capability.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionLayer.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionTypes.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTarget.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetProperty.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetPropertyWithBrightness.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClockMonotonicTimestamp.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Color.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ColorMode.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandError.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandResultPayload.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Composition.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ContentType.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DimmingStage.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayAttribute.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayBrightness.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCapability.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCommand.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConfiguration.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConnectionType.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSample.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSamplingAttributes.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayIdentification.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayRequest.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/FormatColorComponent.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/HdrCapabilities.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposer.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerCallback.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerClient.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerBrightness.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerCommand.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/OverlayProperties.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableBlendMode.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableComposition.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableDataspace.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableTransform.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadata.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataBlob.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataKey.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PlaneAlpha.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PowerMode.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentFence.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentOrValidate.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReadbackBufferAttributes.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RefreshRateChangedDebugData.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReleaseFences.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RenderIntent.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VirtualDisplay.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VrrConfig.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeConstraints.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeTimeline.aidl create mode 100644 graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ZOrder.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/.hash create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryCapacityLevel.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingPolicy.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingState.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealth.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealthData.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryPartStatus.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryStatus.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/DiskStats.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/HealthInfo.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealth.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealthInfoCallback.aidl create mode 100644 health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/StorageInfo.aidl create mode 100644 macsec/aidl/aidl_api/android.hardware.macsec/1/.hash create mode 100644 macsec/aidl/aidl_api/android.hardware.macsec/1/android/hardware/macsec/IMacsecPskPlugin.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/.hash create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/Buffer.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferInvalidationMessage.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatus.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatusMessage.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IAccessor.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IConnection.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IObserver.aidl create mode 100644 media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/ResultStatus.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/.hash create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/BaseBlock.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Block.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Buffer.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldDescriptor.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldId.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValues.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQuery.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQueryResult.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FrameData.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponent.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentInterface.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentListener.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentStore.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IConfigurable.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IGraphicBufferAllocator.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSink.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurface.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurfaceConnection.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/InfoBuffer.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamDescriptor.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamField.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamFieldValues.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Params.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/SettingResult.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Status.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/StructDescriptor.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ValueRange.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Work.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkBundle.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkOrdinal.aidl create mode 100644 media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Worklet.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/.hash create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Boost.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelConfig.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelMessage.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPower.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPowerHintSession.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Mode.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionConfig.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionHint.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionMode.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionTag.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDuration.aidl create mode 100644 power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDurationFixedV1.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfig.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigIndication.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigResponse.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/MultipleEnabledProfilesMode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/PhoneCapability.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimPortInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimSlotStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SlotPortMapping.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnAuthType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnTypes.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataCallFailCause.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataProfileInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataRequestReason.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataThrottlingAction.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/EpsQos.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioData.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataIndication.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataResponse.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveRequest.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/LinkAddress.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/NrQos.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/OsAppId.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PcoDataInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PdpProtocolType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PortRange.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/Qos.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosBandwidth.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilter.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpsecSpi.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpv6FlowLabel.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterTypeOfService.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosSession.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/RouteSelectionDescriptor.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SetupDataCallResult.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SliceInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SlicingConfig.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/TrafficDescriptor.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/UrspRule.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrMode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrParams.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AnbrMode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CallQuality.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecMode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecParams.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecSpecificParams.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/DtmfParams.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsBandwidth.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsMode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsParams.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMedia.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaListener.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSession.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/LocalEndPoint.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaDirection.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityThreshold.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpConfig.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpXrReportBlockType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpAddress.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpConfig.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpError.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpHeaderExtension.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpReceptionStats.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpSessionParams.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ConnectionFailureInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/EpsFallbackReason.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioIms.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsIndication.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsResponse.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsCall.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsDeregistrationReason.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistration.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistrationState.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamDirection.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsTrafficType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SrvccCall.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SuggestedAction.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAck.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAddress.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsMessage.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmBroadcastSmsConfigInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmSmsMessage.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessaging.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingIndication.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingResponse.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/ImsSmsMessage.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SendSmsResult.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsAcknowledgeFailCause.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsWriteArgs.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsTechSpecificInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/DeviceStateType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfig.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigModem.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigSim.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModem.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemIndication.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemResponse.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ImeiInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvItem.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvWriteItem.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioCapability.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioState.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ResetNvType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringTypeSpecificInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaRoamingType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaSignalStrength.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellConnectionStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentity.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityCdma.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityGsm.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityLte.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityNr.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityTdscdma.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityWcdma.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoCdma.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoGsm.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoLte.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoNr.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoTdscdma.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoWcdma.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifier.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifierDisclosure.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ClosedSubscriberGroupInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ConnectionEvent.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Domain.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyMode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyNetworkScanTrigger.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyRegResult.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyScanType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranBands.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranRegistrationInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EvdoSignalStrength.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GeranBands.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GsmSignalStrength.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetwork.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkIndication.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkResponse.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IndicationFilter.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LceDataInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LinkCapacityEstimate.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteSignalStrength.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteVopsInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NasProtocolMessage.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanRequest.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanResult.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NgranBands.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrDualConnectivityState.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrIndicators.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrSignalStrength.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrVopsInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/OperatorInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhoneRestrictedState.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfig.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfigBand.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifier.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifierBands.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioBandMode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegState.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegStateResult.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegistrationFailCause.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithm.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithmUpdate.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalStrength.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalThresholdInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SuppSvcNotification.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/TdscdmaSignalStrength.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UsageSetting.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UtranBands.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/WcdmaSignalStrength.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/AppStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardPowerState.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Carrier.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierRestrictions.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CdmaSubscriptionSource.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSim.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimIndication.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimResponse.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIoResult.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/ImsiEncryptionInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PbReceivedStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PersoSubstate.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookCapacity.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookRecordInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PinState.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Plmn.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SelectUiccSub.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SessionInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimApdu.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimLockMultiSimPolicy.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimRefreshResult.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/AudioQuality.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Call.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CallForwardInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaCallWaiting.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaInformationRecord.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CfData.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/ClipStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Dial.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyCallRouting.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyNumber.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyServiceCategory.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoice.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceIndication.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceResponse.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCause.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCauseInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SrvccState.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SsInfoData.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/StkCcUnsolSsResult.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/TtyMode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UssdModeType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UusInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/.hash create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/AccessNetwork.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioAccessFamily.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioConst.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioError.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioIndicationType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfo.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfoModem.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnology.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnologyFamily.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/.hash create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Arc.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Error.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/IAuthGraphKeyExchange.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Identity.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/KeInitResult.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Key.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PlainPubKey.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PubKey.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionIdSignature.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInfo.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInitiationInfo.aidl create mode 100644 security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SignedPubKey.aidl create mode 100644 security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/.hash create mode 100644 security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/ISecretkeeper.aidl create mode 100644 security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/SecretId.aidl create mode 100644 soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/.hash create mode 100644 soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHw.aidl create mode 100644 soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwCallback.aidl create mode 100644 soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/.hash create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingDevice.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingType.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermal.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermalChangedCallback.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/Temperature.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureThreshold.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureType.aidl create mode 100644 thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ThrottlingSeverity.aidl create mode 100644 threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/.hash create mode 100644 threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChip.aidl create mode 100644 threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChipCallback.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/.hash create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/CableConnectionStatus.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInput.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInputCallback.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputDeviceInfo.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEvent.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEventType.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputType.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessage.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEvent.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEventType.aidl create mode 100644 tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvStreamConfig.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/.hash create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/AltModeData.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ComplianceWarning.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantDetectionStatus.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionMode.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionStatus.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModePinAssignment.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModeStatus.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsb.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsbCallback.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/LinkTrainingStatus.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PlugOrientation.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortDataRole.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortMode.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortPowerRole.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortRole.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortStatus.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PowerBrickStatus.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/Status.aidl create mode 100644 usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/UsbDataStatus.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/.hash create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AfcChannelAllowance.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcChannelInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcFrequencyInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanData.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanResult.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifi.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiApIface.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChip.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChipEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIface.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiP2pIface.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttController.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttControllerEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIface.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceConcurrencyType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/MacAddress.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandIndex.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandSpecificConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingConfirmInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingMethod.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequestInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponse.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponseCode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCipherSuiteType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequestSupplemental.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelCfg.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathConfirmInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathRequestInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDebugConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDiscoveryCommonConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanEnableRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanFollowupReceivedInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanIdentityResolutionAttribute.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanInitiateDataPathRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchAlg.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingAkm.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfirmInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRangingIndication.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToPairingIndicationRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSrfType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatus.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatusCode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSuspensionModeChangeInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTransmitFollowupRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTxType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NpkSecurityAssociation.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttBw.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLciInformation.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLcrInformation.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttMotionPattern.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPeerType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPreamble.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResponder.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResult.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttStatus.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/Ssid.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanLimits.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanParameters.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerLinkStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerRadioStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaPeerInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRateStat.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingState.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanData.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanDataFlagMask.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanResult.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSession.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSessionStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiAntennaMode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiBand.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelWidthInMhz.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChipCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferFlags.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferStatus.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFate.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFate.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiIfaceMode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiInformationElement.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioCombination.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioConfiguration.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateNss.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRatePreamble.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiStatusCode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiUsableChannel.aidl create mode 100644 wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/.hash create mode 100644 wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/android/hardware/wifi/common/OuiKeyedData.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/.hash create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ApInfo.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/BandMask.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelBandwidth.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelParams.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ClientInfo.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/DebugLevel.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/EncryptionType.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/FrequencyRange.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Generation.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HostapdStatusCode.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HwModeParams.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapd.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapdCallback.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IfaceParams.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/NetworkParams.aidl create mode 100644 wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ParamSizeLimits.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/.hash create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpInfoId.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AssociationRejectionData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuthAlgMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuxiliarySupplicantEventCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmDataFlagsMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmStatusCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssidChangeReason.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BtCoexistenceMode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ConnectionCapabilities.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DebugLevel.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppAkm.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConfigurationData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConnectionKeys.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppCurve.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppEventType.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppFailureCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppNetRole.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppProgressCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppResponderBootstrapInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppStatusErrorCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapErrorCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapMethod.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapPhase2Method.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ExtRadioWorkDefaults.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/FreqRange.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupCipherMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupMgmtCipherMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GsmRand.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpSubtypes.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/INonStandardCertCallback.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicant.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantCallback.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pNetwork.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetwork.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetworkCallback.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceType.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IpVersion.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/KeyMgmtMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/LegacyMode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MacAddress.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboAssocDisallowedReasonCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboCellularDataConnectionPrefValue.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboTransitionReasonCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MiracastMode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLink.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLinksInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MscsParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MsduDeliveryInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimGsmAuthParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimUmtsAuthParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimGsmAuthParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimUmtsAuthParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OceRssiBasedAssocRejectAttr.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OcspType.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OsuMethod.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pClientEapolIpAddressInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pConnectInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDeviceFoundEventParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDiscoveryInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pFrameTypeMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupCapabilityMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvDiscStatusCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pScanType.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pStatusCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PairwiseCipherMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PmkSaCacheData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PortRange.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtoMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtocolNextHeader.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosCharacteristics.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParams.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParamsMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyRequestType.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatus.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatusCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatus.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatusCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatus.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatusCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/RxFilterType.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SaeH2eMode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SignalPollResult.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceCallbackState.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceReasonCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceStatusCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStatusCode.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TlsVersion.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TransitionDisableIndication.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WifiTechnology.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpaDriverCapabilitiesMask.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigError.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigMethods.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsDevPasswordId.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsErrorIndication.aidl create mode 100644 wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsProvisionMethod.aidl diff --git a/audio/aidl/Android.bp b/audio/aidl/Android.bp index 3963ce339d..8bb8cd5612 100644 --- a/audio/aidl/Android.bp +++ b/audio/aidl/Android.bp @@ -44,7 +44,7 @@ aidl_interface { "android/hardware/audio/common/SinkMetadata.aidl", "android/hardware/audio/common/SourceMetadata.aidl", ], - frozen: false, + frozen: true, backend: { cpp: { enabled: true, @@ -74,6 +74,10 @@ aidl_interface { version: "2", imports: ["android.media.audio.common.types-V2"], }, + { + version: "3", + imports: ["android.media.audio.common.types-V3"], + }, // IMPORTANT: Update latest_android_hardware_audio_common every time you // add the latest frozen version to versions_with_info @@ -169,11 +173,22 @@ aidl_interface { "android.media.audio.common.types-V2", ], }, + { + version: "2", + imports: [ + "android.media.audio.common.types-V3", + "android.hardware.audio.effect-V2", + "android.hardware.audio.core.sounddose-V2", + "android.hardware.audio.common-V3", + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + ], + }, // IMPORTANT: Update latest_android_hardware_audio_core every time you // add the latest frozen version to versions_with_info ], - frozen: false, + frozen: true, } // Note: This should always be one version ahead of the last frozen version @@ -227,11 +242,15 @@ aidl_interface { version: "1", imports: ["android.media.audio.common.types-V2"], }, + { + version: "2", + imports: ["android.media.audio.common.types-V3"], + }, // IMPORTANT: Update latest_android_hardware_audio_core_sounddose every time you // add the latest frozen version to versions_with_info ], - frozen: false, + frozen: true, } // Note: This should always be one version ahead of the last frozen version @@ -328,8 +347,18 @@ aidl_interface { "android.media.audio.common.types-V2", ], }, + { + version: "2", + imports: [ + "android.media.audio.common.types-V3", + "android.hardware.audio.common-V3", + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + ], + }, + ], - frozen: false, + frozen: true, } diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/.hash b/audio/aidl/aidl_api/android.hardware.audio.common/3/.hash new file mode 100644 index 0000000000..6addcf52a6 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/.hash @@ -0,0 +1 @@ +57ce9506b87e721f0d994b16d7cd16a494f699b9 diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/AudioOffloadMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/AudioOffloadMetadata.aidl new file mode 100644 index 0000000000..000504bd40 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/AudioOffloadMetadata.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AudioOffloadMetadata { + int sampleRate; + android.media.audio.common.AudioChannelLayout channelMask; + int averageBitRatePerSecond; + int delayFrames; + int paddingFrames; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/PlaybackTrackMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/PlaybackTrackMetadata.aidl new file mode 100644 index 0000000000..be4941c751 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/PlaybackTrackMetadata.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable PlaybackTrackMetadata { + android.media.audio.common.AudioUsage usage = android.media.audio.common.AudioUsage.INVALID; + android.media.audio.common.AudioContentType contentType = android.media.audio.common.AudioContentType.UNKNOWN; + float gain; + android.media.audio.common.AudioChannelLayout channelMask; + @nullable android.media.audio.common.AudioDevice sourceDevice; + @utf8InCpp String[] tags; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/RecordTrackMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/RecordTrackMetadata.aidl new file mode 100644 index 0000000000..8f667d1081 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/RecordTrackMetadata.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable RecordTrackMetadata { + android.media.audio.common.AudioSource source = android.media.audio.common.AudioSource.SYS_RESERVED_INVALID; + float gain; + @nullable android.media.audio.common.AudioDevice destinationDevice; + android.media.audio.common.AudioChannelLayout channelMask; + @utf8InCpp String[] tags; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SinkMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SinkMetadata.aidl new file mode 100644 index 0000000000..270147d2bb --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SinkMetadata.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SinkMetadata { + android.hardware.audio.common.RecordTrackMetadata[] tracks; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SourceMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SourceMetadata.aidl new file mode 100644 index 0000000000..2d4a982352 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SourceMetadata.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SourceMetadata { + android.hardware.audio.common.PlaybackTrackMetadata[] tracks; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/.hash b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/.hash new file mode 100644 index 0000000000..b49d59bf1c --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/.hash @@ -0,0 +1 @@ +daed2ce165b383deb25a388fb04396a6b53746f3 diff --git a/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/android/hardware/audio/core/sounddose/ISoundDose.aidl b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/android/hardware/audio/core/sounddose/ISoundDose.aidl new file mode 100644 index 0000000000..580009192d --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/android/hardware/audio/core/sounddose/ISoundDose.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core.sounddose; +@VintfStability +interface ISoundDose { + void setOutputRs2UpperBound(float rs2ValueDbA); + float getOutputRs2UpperBound(); + void registerSoundDoseCallback(in android.hardware.audio.core.sounddose.ISoundDose.IHalSoundDoseCallback callback); + const int DEFAULT_MAX_RS2 = 100; + const int MIN_RS2 = 80; + @VintfStability + interface IHalSoundDoseCallback { + oneway void onMomentaryExposureWarning(float currentDbA, in android.media.audio.common.AudioDevice audioDevice); + oneway void onNewMelValues(in android.hardware.audio.core.sounddose.ISoundDose.IHalSoundDoseCallback.MelRecord melRecord, in android.media.audio.common.AudioDevice audioDevice); + @VintfStability + parcelable MelRecord { + float[] melValues; + long timestamp; + } + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/.hash b/audio/aidl/aidl_api/android.hardware.audio.core/2/.hash new file mode 100644 index 0000000000..aaca981657 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/.hash @@ -0,0 +1 @@ +003735b3fd3c94c53b02a6eb5e099731f7062610 diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioPatch.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioPatch.aidl new file mode 100644 index 0000000000..078b5ea329 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioPatch.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AudioPatch { + int id; + int[] sourcePortConfigIds; + int[] sinkPortConfigIds; + int minimumStreamBufferSizeFrames; + int[] latenciesMs; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioRoute.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioRoute.aidl new file mode 100644 index 0000000000..deeef872d7 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioRoute.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AudioRoute { + int[] sourcePortIds; + int sinkPortId; + boolean isExclusive; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetooth.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetooth.aidl new file mode 100644 index 0000000000..9357a1587e --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetooth.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IBluetooth { + android.hardware.audio.core.IBluetooth.ScoConfig setScoConfig(in android.hardware.audio.core.IBluetooth.ScoConfig config); + android.hardware.audio.core.IBluetooth.HfpConfig setHfpConfig(in android.hardware.audio.core.IBluetooth.HfpConfig config); + @JavaDerive(equals=true, toString=true) @VintfStability + parcelable ScoConfig { + @nullable android.media.audio.common.Boolean isEnabled; + @nullable android.media.audio.common.Boolean isNrecEnabled; + android.hardware.audio.core.IBluetooth.ScoConfig.Mode mode = android.hardware.audio.core.IBluetooth.ScoConfig.Mode.UNSPECIFIED; + @nullable @utf8InCpp String debugName; + @VintfStability + enum Mode { + UNSPECIFIED, + SCO, + SCO_WB, + SCO_SWB, + } + } + @JavaDerive(equals=true, toString=true) @VintfStability + parcelable HfpConfig { + @nullable android.media.audio.common.Boolean isEnabled; + @nullable android.media.audio.common.Int sampleRate; + @nullable android.media.audio.common.Float volume; + const int VOLUME_MIN = 0; + const int VOLUME_MAX = 1; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothA2dp.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothA2dp.aidl new file mode 100644 index 0000000000..0f4c46d73f --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothA2dp.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IBluetoothA2dp { + boolean isEnabled(); + void setEnabled(boolean enabled); + boolean supportsOffloadReconfiguration(); + void reconfigureOffload(in android.hardware.audio.core.VendorParameter[] parameters); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothLe.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothLe.aidl new file mode 100644 index 0000000000..2068daf431 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothLe.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IBluetoothLe { + boolean isEnabled(); + void setEnabled(boolean enabled); + boolean supportsOffloadReconfiguration(); + void reconfigureOffload(in android.hardware.audio.core.VendorParameter[] parameters); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IConfig.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IConfig.aidl new file mode 100644 index 0000000000..9ce45bb652 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IConfig.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IConfig { + android.hardware.audio.core.SurroundSoundConfig getSurroundSoundConfig(); + android.media.audio.common.AudioHalEngineConfig getEngineConfig(); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IModule.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IModule.aidl new file mode 100644 index 0000000000..07a85f8fd8 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IModule.aidl @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IModule { + void setModuleDebug(in android.hardware.audio.core.ModuleDebug debug); + @nullable android.hardware.audio.core.ITelephony getTelephony(); + @nullable android.hardware.audio.core.IBluetooth getBluetooth(); + @nullable android.hardware.audio.core.IBluetoothA2dp getBluetoothA2dp(); + @nullable android.hardware.audio.core.IBluetoothLe getBluetoothLe(); + android.media.audio.common.AudioPort connectExternalDevice(in android.media.audio.common.AudioPort templateIdAndAdditionalData); + void disconnectExternalDevice(int portId); + android.hardware.audio.core.AudioPatch[] getAudioPatches(); + android.media.audio.common.AudioPort getAudioPort(int portId); + android.media.audio.common.AudioPortConfig[] getAudioPortConfigs(); + android.media.audio.common.AudioPort[] getAudioPorts(); + android.hardware.audio.core.AudioRoute[] getAudioRoutes(); + android.hardware.audio.core.AudioRoute[] getAudioRoutesForAudioPort(int portId); + android.hardware.audio.core.IModule.OpenInputStreamReturn openInputStream(in android.hardware.audio.core.IModule.OpenInputStreamArguments args); + android.hardware.audio.core.IModule.OpenOutputStreamReturn openOutputStream(in android.hardware.audio.core.IModule.OpenOutputStreamArguments args); + android.hardware.audio.core.IModule.SupportedPlaybackRateFactors getSupportedPlaybackRateFactors(); + android.hardware.audio.core.AudioPatch setAudioPatch(in android.hardware.audio.core.AudioPatch requested); + boolean setAudioPortConfig(in android.media.audio.common.AudioPortConfig requested, out android.media.audio.common.AudioPortConfig suggested); + void resetAudioPatch(int patchId); + void resetAudioPortConfig(int portConfigId); + boolean getMasterMute(); + void setMasterMute(boolean mute); + float getMasterVolume(); + void setMasterVolume(float volume); + boolean getMicMute(); + void setMicMute(boolean mute); + android.media.audio.common.MicrophoneInfo[] getMicrophones(); + void updateAudioMode(android.media.audio.common.AudioMode mode); + void updateScreenRotation(android.hardware.audio.core.IModule.ScreenRotation rotation); + void updateScreenState(boolean isTurnedOn); + @nullable android.hardware.audio.core.sounddose.ISoundDose getSoundDose(); + int generateHwAvSyncId(); + android.hardware.audio.core.VendorParameter[] getVendorParameters(in @utf8InCpp String[] ids); + void setVendorParameters(in android.hardware.audio.core.VendorParameter[] parameters, boolean async); + void addDeviceEffect(int portConfigId, in android.hardware.audio.effect.IEffect effect); + void removeDeviceEffect(int portConfigId, in android.hardware.audio.effect.IEffect effect); + android.media.audio.common.AudioMMapPolicyInfo[] getMmapPolicyInfos(android.media.audio.common.AudioMMapPolicyType mmapPolicyType); + boolean supportsVariableLatency(); + int getAAudioMixerBurstCount(); + int getAAudioHardwareBurstMinUsec(); + void prepareToDisconnectExternalDevice(int portId); + const int DEFAULT_AAUDIO_MIXER_BURST_COUNT = 2; + const int DEFAULT_AAUDIO_HARDWARE_BURST_MIN_DURATION_US = 1000; + @VintfStability + parcelable OpenInputStreamArguments { + int portConfigId; + android.hardware.audio.common.SinkMetadata sinkMetadata; + long bufferSizeFrames; + } + @VintfStability + parcelable OpenInputStreamReturn { + android.hardware.audio.core.IStreamIn stream; + android.hardware.audio.core.StreamDescriptor desc; + } + @VintfStability + parcelable OpenOutputStreamArguments { + int portConfigId; + android.hardware.audio.common.SourceMetadata sourceMetadata; + @nullable android.media.audio.common.AudioOffloadInfo offloadInfo; + long bufferSizeFrames; + @nullable android.hardware.audio.core.IStreamCallback callback; + @nullable android.hardware.audio.core.IStreamOutEventCallback eventCallback; + } + @VintfStability + parcelable OpenOutputStreamReturn { + android.hardware.audio.core.IStreamOut stream; + android.hardware.audio.core.StreamDescriptor desc; + } + @VintfStability + parcelable SupportedPlaybackRateFactors { + float minSpeed; + float maxSpeed; + float minPitch; + float maxPitch; + } + @Backing(type="int") @VintfStability + enum ScreenRotation { + DEG_0 = 0, + DEG_90 = 1, + DEG_180 = 2, + DEG_270 = 3, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCallback.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCallback.aidl new file mode 100644 index 0000000000..5a2ab78d88 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamCallback { + oneway void onTransferReady(); + oneway void onError(); + oneway void onDrainReady(); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCommon.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCommon.aidl new file mode 100644 index 0000000000..65a2ee4542 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCommon.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamCommon { + void close(); + void prepareToClose(); + void updateHwAvSyncId(int hwAvSyncId); + android.hardware.audio.core.VendorParameter[] getVendorParameters(in @utf8InCpp String[] ids); + void setVendorParameters(in android.hardware.audio.core.VendorParameter[] parameters, boolean async); + void addEffect(in android.hardware.audio.effect.IEffect effect); + void removeEffect(in android.hardware.audio.effect.IEffect effect); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamIn.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamIn.aidl new file mode 100644 index 0000000000..a01f877e86 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamIn.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamIn { + android.hardware.audio.core.IStreamCommon getStreamCommon(); + android.media.audio.common.MicrophoneDynamicInfo[] getActiveMicrophones(); + android.hardware.audio.core.IStreamIn.MicrophoneDirection getMicrophoneDirection(); + void setMicrophoneDirection(android.hardware.audio.core.IStreamIn.MicrophoneDirection direction); + float getMicrophoneFieldDimension(); + void setMicrophoneFieldDimension(float zoom); + void updateMetadata(in android.hardware.audio.common.SinkMetadata sinkMetadata); + float[] getHwGain(); + void setHwGain(in float[] channelGains); + const int MIC_FIELD_DIMENSION_WIDE_ANGLE = (-1) /* -1 */; + const int MIC_FIELD_DIMENSION_NO_ZOOM = 0; + const int MIC_FIELD_DIMENSION_MAX_ZOOM = 1; + const int HW_GAIN_MIN = 0; + const int HW_GAIN_MAX = 1; + @Backing(type="int") @VintfStability + enum MicrophoneDirection { + UNSPECIFIED = 0, + FRONT = 1, + BACK = 2, + EXTERNAL = 3, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOut.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOut.aidl new file mode 100644 index 0000000000..ec3078efd7 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOut.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamOut { + android.hardware.audio.core.IStreamCommon getStreamCommon(); + void updateMetadata(in android.hardware.audio.common.SourceMetadata sourceMetadata); + void updateOffloadMetadata(in android.hardware.audio.common.AudioOffloadMetadata offloadMetadata); + float[] getHwVolume(); + void setHwVolume(in float[] channelVolumes); + float getAudioDescriptionMixLevel(); + void setAudioDescriptionMixLevel(float leveldB); + android.media.audio.common.AudioDualMonoMode getDualMonoMode(); + void setDualMonoMode(android.media.audio.common.AudioDualMonoMode mode); + android.media.audio.common.AudioLatencyMode[] getRecommendedLatencyModes(); + void setLatencyMode(android.media.audio.common.AudioLatencyMode mode); + android.media.audio.common.AudioPlaybackRate getPlaybackRateParameters(); + void setPlaybackRateParameters(in android.media.audio.common.AudioPlaybackRate playbackRate); + void selectPresentation(int presentationId, int programId); + const int HW_VOLUME_MIN = 0; + const int HW_VOLUME_MAX = 1; + const int AUDIO_DESCRIPTION_MIX_LEVEL_MAX = 48; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOutEventCallback.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOutEventCallback.aidl new file mode 100644 index 0000000000..31cf0b7fc7 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOutEventCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamOutEventCallback { + oneway void onCodecFormatChanged(in byte[] audioMetadata); + oneway void onRecommendedLatencyModeChanged(in android.media.audio.common.AudioLatencyMode[] modes); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ITelephony.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ITelephony.aidl new file mode 100644 index 0000000000..84d7aa1aa4 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ITelephony.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface ITelephony { + android.media.audio.common.AudioMode[] getSupportedAudioModes(); + void switchAudioMode(android.media.audio.common.AudioMode mode); + android.hardware.audio.core.ITelephony.TelecomConfig setTelecomConfig(in android.hardware.audio.core.ITelephony.TelecomConfig config); + @JavaDerive(equals=true, toString=true) @VintfStability + parcelable TelecomConfig { + @nullable android.media.audio.common.Float voiceVolume; + android.hardware.audio.core.ITelephony.TelecomConfig.TtyMode ttyMode = android.hardware.audio.core.ITelephony.TelecomConfig.TtyMode.UNSPECIFIED; + @nullable android.media.audio.common.Boolean isHacEnabled; + const int VOICE_VOLUME_MIN = 0; + const int VOICE_VOLUME_MAX = 1; + @Backing(type="int") @VintfStability + enum TtyMode { + UNSPECIFIED = (-1) /* -1 */, + OFF = 0, + FULL = 1, + HCO = 2, + VCO = 3, + } + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/MmapBufferDescriptor.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/MmapBufferDescriptor.aidl new file mode 100644 index 0000000000..6ea1c69526 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/MmapBufferDescriptor.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable MmapBufferDescriptor { + android.hardware.common.Ashmem sharedMemory; + long burstSizeFrames; + int flags; + const int FLAG_INDEX_APPLICATION_SHAREABLE = 0; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ModuleDebug.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ModuleDebug.aidl new file mode 100644 index 0000000000..467d37b6f7 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ModuleDebug.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ModuleDebug { + boolean simulateDeviceConnections; + int streamTransientStateDelayMs; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/StreamDescriptor.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/StreamDescriptor.aidl new file mode 100644 index 0000000000..3e3dc38b2a --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/StreamDescriptor.aidl @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable StreamDescriptor { + android.hardware.common.fmq.MQDescriptor command; + android.hardware.common.fmq.MQDescriptor reply; + int frameSizeBytes; + long bufferSizeFrames; + android.hardware.audio.core.StreamDescriptor.AudioBuffer audio; + const int LATENCY_UNKNOWN = (-1) /* -1 */; + @FixedSize @VintfStability + parcelable Position { + long frames = UNKNOWN /* -1 */; + long timeNs = UNKNOWN /* -1 */; + const long UNKNOWN = (-1) /* -1 */; + } + @Backing(type="int") @VintfStability + enum State { + STANDBY = 1, + IDLE = 2, + ACTIVE = 3, + PAUSED = 4, + DRAINING = 5, + DRAIN_PAUSED = 6, + TRANSFERRING = 7, + TRANSFER_PAUSED = 8, + ERROR = 100, + } + @Backing(type="byte") @VintfStability + enum DrainMode { + DRAIN_UNSPECIFIED = 0, + DRAIN_ALL = 1, + DRAIN_EARLY_NOTIFY = 2, + } + @FixedSize @VintfStability + union Command { + int halReservedExit; + android.media.audio.common.Void getStatus; + android.media.audio.common.Void start; + int burst; + android.hardware.audio.core.StreamDescriptor.DrainMode drain; + android.media.audio.common.Void standby; + android.media.audio.common.Void pause; + android.media.audio.common.Void flush; + } + @FixedSize @VintfStability + parcelable Reply { + int status; + int fmqByteCount; + android.hardware.audio.core.StreamDescriptor.Position observable; + android.hardware.audio.core.StreamDescriptor.Position hardware; + int latencyMs; + int xrunFrames; + android.hardware.audio.core.StreamDescriptor.State state = android.hardware.audio.core.StreamDescriptor.State.STANDBY; + } + @VintfStability + union AudioBuffer { + android.hardware.common.fmq.MQDescriptor fmq; + android.hardware.audio.core.MmapBufferDescriptor mmap; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/SurroundSoundConfig.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/SurroundSoundConfig.aidl new file mode 100644 index 0000000000..08a153778f --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/SurroundSoundConfig.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SurroundSoundConfig { + android.hardware.audio.core.SurroundSoundConfig.SurroundFormatFamily[] formatFamilies; + @VintfStability + parcelable SurroundFormatFamily { + android.media.audio.common.AudioFormatDescription primaryFormat; + android.media.audio.common.AudioFormatDescription[] subFormats; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/VendorParameter.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/VendorParameter.aidl new file mode 100644 index 0000000000..bfe33ee4b4 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/VendorParameter.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VendorParameter { + @utf8InCpp String id; + ParcelableHolder ext; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/.hash b/audio/aidl/aidl_api/android.hardware.audio.effect/2/.hash new file mode 100644 index 0000000000..1c70e872e6 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/.hash @@ -0,0 +1 @@ +54d5a2e1d59066b57e35eb7bcb5ebc72a1259c1c diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AcousticEchoCanceler.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AcousticEchoCanceler.aidl new file mode 100644 index 0000000000..16367c0b80 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AcousticEchoCanceler.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union AcousticEchoCanceler { + android.hardware.audio.effect.VendorExtension vendor; + int echoDelayUs; + boolean mobileMode; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.AcousticEchoCanceler.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV1.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV1.aidl new file mode 100644 index 0000000000..e69e2bd81d --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV1.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union AutomaticGainControlV1 { + android.hardware.audio.effect.VendorExtension vendor; + int targetPeakLevelDbFs; + int maxCompressionGainDb; + boolean enableLimiter; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.AutomaticGainControlV1.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV2.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV2.aidl new file mode 100644 index 0000000000..46ffcafb31 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV2.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union AutomaticGainControlV2 { + android.hardware.audio.effect.VendorExtension vendor; + int fixedDigitalGainMb; + android.hardware.audio.effect.AutomaticGainControlV2.LevelEstimator levelEstimator; + int saturationMarginMb; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.AutomaticGainControlV2.Tag commonTag; + } + @Backing(type="int") @VintfStability + enum LevelEstimator { + RMS = 0, + PEAK = 1, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/BassBoost.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/BassBoost.aidl new file mode 100644 index 0000000000..c248ce8a8a --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/BassBoost.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union BassBoost { + android.hardware.audio.effect.VendorExtension vendor; + int strengthPm; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.BassBoost.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Capability.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Capability.aidl new file mode 100644 index 0000000000..c9df073489 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Capability.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable Capability { + android.hardware.audio.effect.VendorExtension vendorExtension; + android.hardware.audio.effect.Range range; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/CommandId.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/CommandId.aidl new file mode 100644 index 0000000000..86b69fa2f2 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/CommandId.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@Backing(type="int") @VintfStability +enum CommandId { + START = 0, + STOP = 1, + RESET = 2, + VENDOR_COMMAND_0 = 0x100, + VENDOR_COMMAND_1, + VENDOR_COMMAND_2, + VENDOR_COMMAND_3, + VENDOR_COMMAND_4, + VENDOR_COMMAND_5, + VENDOR_COMMAND_6, + VENDOR_COMMAND_7, + VENDOR_COMMAND_8, + VENDOR_COMMAND_9, +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DefaultExtension.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DefaultExtension.aidl new file mode 100644 index 0000000000..f1cf3898c5 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DefaultExtension.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable DefaultExtension { + byte[] bytes; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Descriptor.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Descriptor.aidl new file mode 100644 index 0000000000..115da1db57 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Descriptor.aidl @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable Descriptor { + android.hardware.audio.effect.Descriptor.Common common; + android.hardware.audio.effect.Capability capability; + const String EFFECT_TYPE_UUID_AEC = "7b491460-8d4d-11e0-bd61-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_AGC1 = "0a8abfe0-654c-11e0-ba26-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_AGC2 = "ae3c653b-be18-4ab8-8938-418f0a7f06ac"; + const String EFFECT_TYPE_UUID_BASS_BOOST = "0634f220-ddd4-11db-a0fc-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_DOWNMIX = "381e49cc-a858-4aa2-87f6-e8388e7601b2"; + const String EFFECT_TYPE_UUID_DYNAMICS_PROCESSING = "7261676f-6d75-7369-6364-28e2fd3ac39e"; + const String EFFECT_TYPE_UUID_ENV_REVERB = "c2e5d5f0-94bd-4763-9cac-4e234d06839e"; + const String EFFECT_TYPE_UUID_EQUALIZER = "0bed4300-ddd6-11db-8f34-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_HAPTIC_GENERATOR = "1411e6d6-aecd-4021-a1cf-a6aceb0d71e5"; + const String EFFECT_TYPE_UUID_LOUDNESS_ENHANCER = "fe3199be-aed0-413f-87bb-11260eb63cf1"; + const String EFFECT_TYPE_UUID_NS = "58b4b260-8e06-11e0-aa8e-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_PRESET_REVERB = "47382d60-ddd8-11db-bf3a-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_SPATIALIZER = "ccd4cf09-a79d-46c2-9aae-06a1698d6c8f"; + const String EFFECT_TYPE_UUID_VIRTUALIZER = "37cc2c00-dddd-11db-8577-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_VISUALIZER = "e46b26a0-dddd-11db-8afd-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_VOLUME = "09e8ede0-ddde-11db-b4f6-0002a5d5c51b"; + @VintfStability + parcelable Identity { + android.media.audio.common.AudioUuid type; + android.media.audio.common.AudioUuid uuid; + @nullable android.media.audio.common.AudioUuid proxy; + } + @VintfStability + parcelable Common { + android.hardware.audio.effect.Descriptor.Identity id; + android.hardware.audio.effect.Flags flags; + int cpuLoad; + int memoryUsage; + @utf8InCpp String name; + @utf8InCpp String implementor; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Downmix.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Downmix.aidl new file mode 100644 index 0000000000..ce0a7df1ff --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Downmix.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Downmix { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.Downmix.Type type; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Downmix.Tag commonTag; + } + @VintfStability + enum Type { + STRIP, + FOLD, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DynamicsProcessing.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DynamicsProcessing.aidl new file mode 100644 index 0000000000..04f627d07b --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DynamicsProcessing.aidl @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union DynamicsProcessing { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.DynamicsProcessing.EngineArchitecture engineArchitecture; + android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] preEq; + android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] postEq; + android.hardware.audio.effect.DynamicsProcessing.EqBandConfig[] preEqBand; + android.hardware.audio.effect.DynamicsProcessing.EqBandConfig[] postEqBand; + android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] mbc; + android.hardware.audio.effect.DynamicsProcessing.MbcBandConfig[] mbcBand; + android.hardware.audio.effect.DynamicsProcessing.LimiterConfig[] limiter; + android.hardware.audio.effect.DynamicsProcessing.InputGain[] inputGain; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.DynamicsProcessing.Tag commonTag; + } + enum ResolutionPreference { + FAVOR_FREQUENCY_RESOLUTION, + FAVOR_TIME_RESOLUTION, + } + @VintfStability + parcelable StageEnablement { + boolean inUse; + int bandCount; + } + @VintfStability + parcelable EngineArchitecture { + android.hardware.audio.effect.DynamicsProcessing.ResolutionPreference resolutionPreference = android.hardware.audio.effect.DynamicsProcessing.ResolutionPreference.FAVOR_FREQUENCY_RESOLUTION; + float preferredProcessingDurationMs; + android.hardware.audio.effect.DynamicsProcessing.StageEnablement preEqStage; + android.hardware.audio.effect.DynamicsProcessing.StageEnablement postEqStage; + android.hardware.audio.effect.DynamicsProcessing.StageEnablement mbcStage; + boolean limiterInUse; + } + @VintfStability + parcelable ChannelConfig { + int channel; + boolean enable; + } + @VintfStability + parcelable EqBandConfig { + int channel; + int band; + boolean enable; + float cutoffFrequencyHz; + float gainDb; + } + @VintfStability + parcelable MbcBandConfig { + int channel; + int band; + boolean enable; + float cutoffFrequencyHz; + float attackTimeMs; + float releaseTimeMs; + float ratio; + float thresholdDb; + float kneeWidthDb; + float noiseGateThresholdDb; + float expanderRatio; + float preGainDb; + float postGainDb; + } + @VintfStability + parcelable LimiterConfig { + int channel; + boolean enable; + int linkGroup; + float attackTimeMs; + float releaseTimeMs; + float ratio; + float thresholdDb; + float postGainDb; + } + @VintfStability + parcelable InputGain { + int channel; + float gainDb; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/EnvironmentalReverb.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/EnvironmentalReverb.aidl new file mode 100644 index 0000000000..00b7d1acfb --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/EnvironmentalReverb.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union EnvironmentalReverb { + android.hardware.audio.effect.VendorExtension vendor; + int roomLevelMb; + int roomHfLevelMb; + int decayTimeMs; + int decayHfRatioPm; + int reflectionsLevelMb; + int reflectionsDelayMs; + int levelMb; + int delayMs; + int diffusionPm; + int densityPm; + boolean bypass; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.EnvironmentalReverb.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Equalizer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Equalizer.aidl new file mode 100644 index 0000000000..80f7c7e952 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Equalizer.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Equalizer { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.Equalizer.BandLevel[] bandLevels; + int preset; + int[] centerFreqMh; + android.hardware.audio.effect.Equalizer.BandFrequency[] bandFrequencies; + android.hardware.audio.effect.Equalizer.Preset[] presets; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Equalizer.Tag commonTag; + } + @VintfStability + parcelable BandLevel { + int index; + int levelMb; + } + @VintfStability + parcelable BandFrequency { + int index; + int minMh; + int maxMh; + } + @VintfStability + parcelable Preset { + int index; + @utf8InCpp String name; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Flags.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Flags.aidl new file mode 100644 index 0000000000..046c220ea0 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Flags.aidl @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable Flags { + android.hardware.audio.effect.Flags.Type type = android.hardware.audio.effect.Flags.Type.INSERT; + android.hardware.audio.effect.Flags.Insert insert = android.hardware.audio.effect.Flags.Insert.ANY; + android.hardware.audio.effect.Flags.Volume volume = android.hardware.audio.effect.Flags.Volume.NONE; + android.hardware.audio.effect.Flags.HardwareAccelerator hwAcceleratorMode = android.hardware.audio.effect.Flags.HardwareAccelerator.NONE; + boolean offloadIndication; + boolean deviceIndication; + boolean audioModeIndication; + boolean audioSourceIndication; + boolean bypass; + boolean sinkMetadataIndication; + boolean sourceMetadataIndication; + @Backing(type="byte") @VintfStability + enum Type { + INSERT = 0, + AUXILIARY = 1, + REPLACE = 2, + PRE_PROC = 3, + POST_PROC = 4, + } + @Backing(type="byte") @VintfStability + enum Insert { + ANY = 0, + FIRST = 1, + LAST = 2, + EXCLUSIVE = 3, + } + @Backing(type="byte") @VintfStability + enum Volume { + NONE = 0, + CTRL = 1, + IND = 2, + MONITOR = 3, + } + @Backing(type="byte") @VintfStability + enum HardwareAccelerator { + NONE = 0, + SIMPLE = 1, + TUNNEL = 2, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/HapticGenerator.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/HapticGenerator.aidl new file mode 100644 index 0000000000..8addab7b5f --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/HapticGenerator.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union HapticGenerator { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.HapticGenerator.HapticScale[] hapticScales; + android.hardware.audio.effect.HapticGenerator.VibratorInformation vibratorInfo; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.HapticGenerator.Tag commonTag; + } + @Backing(type="int") @VintfStability + enum VibratorScale { + MUTE = (-100) /* -100 */, + VERY_LOW = (-2) /* -2 */, + LOW = (-1) /* -1 */, + NONE = 0, + HIGH = 1, + VERY_HIGH = 2, + } + @VintfStability + parcelable HapticScale { + int id; + android.hardware.audio.effect.HapticGenerator.VibratorScale scale = android.hardware.audio.effect.HapticGenerator.VibratorScale.MUTE; + } + @VintfStability + parcelable VibratorInformation { + float resonantFrequencyHz; + float qFactor; + float maxAmplitude; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IEffect.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IEffect.aidl new file mode 100644 index 0000000000..a1b00be41f --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IEffect.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +interface IEffect { + android.hardware.audio.effect.IEffect.OpenEffectReturn open(in android.hardware.audio.effect.Parameter.Common common, in @nullable android.hardware.audio.effect.Parameter.Specific specific); + void close(); + android.hardware.audio.effect.Descriptor getDescriptor(); + void command(in android.hardware.audio.effect.CommandId commandId); + android.hardware.audio.effect.State getState(); + void setParameter(in android.hardware.audio.effect.Parameter param); + android.hardware.audio.effect.Parameter getParameter(in android.hardware.audio.effect.Parameter.Id paramId); + android.hardware.audio.effect.IEffect.OpenEffectReturn reopen(); + @FixedSize @VintfStability + parcelable Status { + int status; + int fmqConsumed; + int fmqProduced; + } + @VintfStability + parcelable OpenEffectReturn { + android.hardware.common.fmq.MQDescriptor statusMQ; + android.hardware.common.fmq.MQDescriptor inputDataMQ; + android.hardware.common.fmq.MQDescriptor outputDataMQ; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IFactory.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IFactory.aidl new file mode 100644 index 0000000000..a6c138c0ef --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IFactory.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +interface IFactory { + android.hardware.audio.effect.Descriptor[] queryEffects(in @nullable android.media.audio.common.AudioUuid type, in @nullable android.media.audio.common.AudioUuid implementation, in @nullable android.media.audio.common.AudioUuid proxy); + android.hardware.audio.effect.Processing[] queryProcessing(in @nullable android.hardware.audio.effect.Processing.Type type); + android.hardware.audio.effect.IEffect createEffect(in android.media.audio.common.AudioUuid implUuid); + void destroyEffect(in android.hardware.audio.effect.IEffect handle); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/LoudnessEnhancer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/LoudnessEnhancer.aidl new file mode 100644 index 0000000000..fc276d67bc --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/LoudnessEnhancer.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union LoudnessEnhancer { + android.hardware.audio.effect.VendorExtension vendor; + int gainMb; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.LoudnessEnhancer.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/NoiseSuppression.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/NoiseSuppression.aidl new file mode 100644 index 0000000000..7f30fe2ab7 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/NoiseSuppression.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union NoiseSuppression { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.NoiseSuppression.Level level; + android.hardware.audio.effect.NoiseSuppression.Type type; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.NoiseSuppression.Tag commonTag; + } + @Backing(type="int") @VintfStability + enum Level { + LOW, + MEDIUM, + HIGH, + VERY_HIGH, + } + @Backing(type="int") @VintfStability + enum Type { + SINGLE_CHANNEL, + MULTI_CHANNEL, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Parameter.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Parameter.aidl new file mode 100644 index 0000000000..ff33c42047 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Parameter.aidl @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Parameter { + android.hardware.audio.effect.Parameter.Common common; + android.media.audio.common.AudioDeviceDescription[] deviceDescription; + android.media.audio.common.AudioMode mode; + android.media.audio.common.AudioSource source; + boolean offload; + android.hardware.audio.effect.Parameter.VolumeStereo volumeStereo; + android.hardware.audio.effect.Parameter.Specific specific; + android.hardware.audio.common.SinkMetadata sinkMetadata; + android.hardware.audio.common.SourceMetadata sourceMetadata; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorEffectTag; + android.hardware.audio.effect.AcousticEchoCanceler.Id acousticEchoCancelerTag; + android.hardware.audio.effect.AutomaticGainControlV1.Id automaticGainControlV1Tag; + android.hardware.audio.effect.AutomaticGainControlV2.Id automaticGainControlV2Tag; + android.hardware.audio.effect.BassBoost.Id bassBoostTag; + android.hardware.audio.effect.Downmix.Id downmixTag; + android.hardware.audio.effect.DynamicsProcessing.Id dynamicsProcessingTag; + android.hardware.audio.effect.EnvironmentalReverb.Id environmentalReverbTag; + android.hardware.audio.effect.Equalizer.Id equalizerTag; + android.hardware.audio.effect.HapticGenerator.Id hapticGeneratorTag; + android.hardware.audio.effect.LoudnessEnhancer.Id loudnessEnhancerTag; + android.hardware.audio.effect.NoiseSuppression.Id noiseSuppressionTag; + android.hardware.audio.effect.PresetReverb.Id presetReverbTag; + android.hardware.audio.effect.Virtualizer.Id virtualizerTag; + android.hardware.audio.effect.Visualizer.Id visualizerTag; + android.hardware.audio.effect.Volume.Id volumeTag; + android.hardware.audio.effect.Parameter.Tag commonTag; + android.hardware.audio.effect.Spatializer.Id spatializerTag; + } + @VintfStability + parcelable Common { + int session; + int ioHandle; + android.media.audio.common.AudioConfig input; + android.media.audio.common.AudioConfig output; + } + @VintfStability + parcelable VolumeStereo { + float left; + float right; + } + @VintfStability + union Specific { + android.hardware.audio.effect.VendorExtension vendorEffect; + android.hardware.audio.effect.AcousticEchoCanceler acousticEchoCanceler; + android.hardware.audio.effect.AutomaticGainControlV1 automaticGainControlV1; + android.hardware.audio.effect.AutomaticGainControlV2 automaticGainControlV2; + android.hardware.audio.effect.BassBoost bassBoost; + android.hardware.audio.effect.Downmix downmix; + android.hardware.audio.effect.DynamicsProcessing dynamicsProcessing; + android.hardware.audio.effect.EnvironmentalReverb environmentalReverb; + android.hardware.audio.effect.Equalizer equalizer; + android.hardware.audio.effect.HapticGenerator hapticGenerator; + android.hardware.audio.effect.LoudnessEnhancer loudnessEnhancer; + android.hardware.audio.effect.NoiseSuppression noiseSuppression; + android.hardware.audio.effect.PresetReverb presetReverb; + android.hardware.audio.effect.Virtualizer virtualizer; + android.hardware.audio.effect.Visualizer visualizer; + android.hardware.audio.effect.Volume volume; + android.hardware.audio.effect.Spatializer spatializer; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/PresetReverb.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/PresetReverb.aidl new file mode 100644 index 0000000000..26d96b54f3 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/PresetReverb.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union PresetReverb { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.PresetReverb.Presets[] supportedPresets; + android.hardware.audio.effect.PresetReverb.Presets preset; + @Backing(type="int") @VintfStability + enum Presets { + NONE, + SMALLROOM, + MEDIUMROOM, + LARGEROOM, + MEDIUMHALL, + LARGEHALL, + PLATE, + } + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.PresetReverb.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Processing.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Processing.aidl new file mode 100644 index 0000000000..f6d6ee25bf --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Processing.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable Processing { + android.hardware.audio.effect.Processing.Type type; + android.hardware.audio.effect.Descriptor[] ids; + @VintfStability + union Type { + android.media.audio.common.AudioStreamType streamType = android.media.audio.common.AudioStreamType.INVALID; + android.media.audio.common.AudioSource source; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Range.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Range.aidl new file mode 100644 index 0000000000..40ee6b5488 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Range.aidl @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Range { + android.hardware.audio.effect.Range.VendorExtensionRange[] vendorExtension = {}; + android.hardware.audio.effect.Range.AcousticEchoCancelerRange[] acousticEchoCanceler; + android.hardware.audio.effect.Range.AutomaticGainControlV1Range[] automaticGainControlV1; + android.hardware.audio.effect.Range.AutomaticGainControlV2Range[] automaticGainControlV2; + android.hardware.audio.effect.Range.BassBoostRange[] bassBoost; + android.hardware.audio.effect.Range.DownmixRange[] downmix; + android.hardware.audio.effect.Range.DynamicsProcessingRange[] dynamicsProcessing; + android.hardware.audio.effect.Range.EnvironmentalReverbRange[] environmentalReverb; + android.hardware.audio.effect.Range.EqualizerRange[] equalizer; + android.hardware.audio.effect.Range.HapticGeneratorRange[] hapticGenerator; + android.hardware.audio.effect.Range.LoudnessEnhancerRange[] loudnessEnhancer; + android.hardware.audio.effect.Range.NoiseSuppressionRange[] noiseSuppression; + android.hardware.audio.effect.Range.PresetReverbRange[] presetReverb; + android.hardware.audio.effect.Range.VirtualizerRange[] virtualizer; + android.hardware.audio.effect.Range.VisualizerRange[] visualizer; + android.hardware.audio.effect.Range.VolumeRange[] volume; + android.hardware.audio.effect.Range.SpatializerRange[] spatializer; + @VintfStability + parcelable AcousticEchoCancelerRange { + android.hardware.audio.effect.AcousticEchoCanceler min; + android.hardware.audio.effect.AcousticEchoCanceler max; + } + @VintfStability + parcelable AutomaticGainControlV1Range { + android.hardware.audio.effect.AutomaticGainControlV1 min; + android.hardware.audio.effect.AutomaticGainControlV1 max; + } + @VintfStability + parcelable AutomaticGainControlV2Range { + android.hardware.audio.effect.AutomaticGainControlV2 min; + android.hardware.audio.effect.AutomaticGainControlV2 max; + } + @VintfStability + parcelable BassBoostRange { + android.hardware.audio.effect.BassBoost min; + android.hardware.audio.effect.BassBoost max; + } + @VintfStability + parcelable DownmixRange { + android.hardware.audio.effect.Downmix min; + android.hardware.audio.effect.Downmix max; + } + @VintfStability + parcelable DynamicsProcessingRange { + android.hardware.audio.effect.DynamicsProcessing min; + android.hardware.audio.effect.DynamicsProcessing max; + } + @VintfStability + parcelable EnvironmentalReverbRange { + android.hardware.audio.effect.EnvironmentalReverb min; + android.hardware.audio.effect.EnvironmentalReverb max; + } + @VintfStability + parcelable EqualizerRange { + android.hardware.audio.effect.Equalizer min; + android.hardware.audio.effect.Equalizer max; + } + @VintfStability + parcelable HapticGeneratorRange { + android.hardware.audio.effect.HapticGenerator min; + android.hardware.audio.effect.HapticGenerator max; + } + @VintfStability + parcelable LoudnessEnhancerRange { + android.hardware.audio.effect.LoudnessEnhancer min; + android.hardware.audio.effect.LoudnessEnhancer max; + } + @VintfStability + parcelable NoiseSuppressionRange { + android.hardware.audio.effect.NoiseSuppression min; + android.hardware.audio.effect.NoiseSuppression max; + } + @VintfStability + parcelable PresetReverbRange { + android.hardware.audio.effect.PresetReverb min; + android.hardware.audio.effect.PresetReverb max; + } + @VintfStability + parcelable SpatializerRange { + android.hardware.audio.effect.Spatializer min; + android.hardware.audio.effect.Spatializer max; + } + @VintfStability + parcelable VendorExtensionRange { + android.hardware.audio.effect.VendorExtension min; + android.hardware.audio.effect.VendorExtension max; + } + @VintfStability + parcelable VirtualizerRange { + android.hardware.audio.effect.Virtualizer min; + android.hardware.audio.effect.Virtualizer max; + } + @VintfStability + parcelable VisualizerRange { + android.hardware.audio.effect.Visualizer min; + android.hardware.audio.effect.Visualizer max; + } + @VintfStability + parcelable VolumeRange { + android.hardware.audio.effect.Volume min; + android.hardware.audio.effect.Volume max; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Spatializer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Spatializer.aidl new file mode 100644 index 0000000000..98ecee061a --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Spatializer.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Spatializer { + android.hardware.audio.effect.VendorExtension vendor; + android.media.audio.common.AudioChannelLayout[] supportedChannelLayout; + android.media.audio.common.Spatialization.Level spatializationLevel; + android.media.audio.common.Spatialization.Mode spatializationMode; + int headTrackingSensorId; + android.media.audio.common.HeadTracking.Mode headTrackingMode; + android.media.audio.common.HeadTracking.ConnectionMode headTrackingConnectionMode; + android.media.audio.common.HeadTracking.SensorData headTrackingSensorData; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Spatializer.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/State.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/State.aidl new file mode 100644 index 0000000000..17f98142f8 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/State.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@Backing(type="byte") @VintfStability +enum State { + INIT, + IDLE, + PROCESSING, +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/VendorExtension.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/VendorExtension.aidl new file mode 100644 index 0000000000..b806334a90 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/VendorExtension.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable VendorExtension { + ParcelableHolder extension; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Virtualizer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Virtualizer.aidl new file mode 100644 index 0000000000..6092b140c2 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Virtualizer.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Virtualizer { + android.hardware.audio.effect.VendorExtension vendor; + int strengthPm; + android.hardware.audio.effect.Virtualizer.ChannelAngle[] speakerAngles; + android.media.audio.common.AudioDeviceDescription device; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Virtualizer.Tag commonTag; + android.hardware.audio.effect.Virtualizer.SpeakerAnglesPayload speakerAnglesPayload; + } + @VintfStability + parcelable SpeakerAnglesPayload { + android.media.audio.common.AudioChannelLayout layout; + android.media.audio.common.AudioDeviceDescription device; + } + @VintfStability + parcelable ChannelAngle { + int channel; + int azimuthDegree; + int elevationDegree; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Visualizer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Visualizer.aidl new file mode 100644 index 0000000000..7d319da751 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Visualizer.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Visualizer { + android.hardware.audio.effect.Visualizer.Id id; + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.Visualizer.Measurement measurement; + byte[] captureSampleBuffer; + int latencyMs; + int captureSamples; + android.hardware.audio.effect.Visualizer.ScalingMode scalingMode; + android.hardware.audio.effect.Visualizer.MeasurementMode measurementMode; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Visualizer.Tag commonTag; + } + @VintfStability + enum ScalingMode { + NORMALIZED = 0, + AS_PLAYED, + } + @VintfStability + enum MeasurementMode { + NONE = 0, + PEAK_RMS, + } + @VintfStability + parcelable Measurement { + int rms; + int peak; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Volume.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Volume.aidl new file mode 100644 index 0000000000..8227118d72 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Volume.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Volume { + android.hardware.audio.effect.VendorExtension vendor; + int levelDb; + boolean mute; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Volume.Tag commonTag; + } +} diff --git a/audio/aidl/sounddose/Android.bp b/audio/aidl/sounddose/Android.bp index c65e4ff041..de3ed64186 100644 --- a/audio/aidl/sounddose/Android.bp +++ b/audio/aidl/sounddose/Android.bp @@ -48,11 +48,15 @@ aidl_interface { version: "1", imports: ["android.hardware.audio.core.sounddose-V1"], }, + { + version: "2", + imports: ["android.hardware.audio.core.sounddose-V2"], + }, // IMPORTANT: Update latest_android_hardware_audio_sounddose every time you // add the latest frozen version to versions_with_info ], - frozen: false, + frozen: true, } // Note: This should always be one version ahead of the last frozen version diff --git a/audio/aidl/sounddose/aidl_api/android.hardware.audio.sounddose/2/.hash b/audio/aidl/sounddose/aidl_api/android.hardware.audio.sounddose/2/.hash new file mode 100644 index 0000000000..1aaad0e7a2 --- /dev/null +++ b/audio/aidl/sounddose/aidl_api/android.hardware.audio.sounddose/2/.hash @@ -0,0 +1 @@ +f4469ffc7efc70957cbc2c7175c55adda2272f70 diff --git a/audio/aidl/sounddose/aidl_api/android.hardware.audio.sounddose/2/android/hardware/audio/sounddose/ISoundDoseFactory.aidl b/audio/aidl/sounddose/aidl_api/android.hardware.audio.sounddose/2/android/hardware/audio/sounddose/ISoundDoseFactory.aidl new file mode 100644 index 0000000000..148720ce4f --- /dev/null +++ b/audio/aidl/sounddose/aidl_api/android.hardware.audio.sounddose/2/android/hardware/audio/sounddose/ISoundDoseFactory.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.sounddose; +@VintfStability +interface ISoundDoseFactory { + @nullable android.hardware.audio.core.sounddose.ISoundDose getSoundDose(in @utf8InCpp String module); +} diff --git a/automotive/audiocontrol/aidl/Android.bp b/automotive/audiocontrol/aidl/Android.bp index 86b63a6d9f..bedf5e4a96 100644 --- a/automotive/audiocontrol/aidl/Android.bp +++ b/automotive/audiocontrol/aidl/Android.bp @@ -50,9 +50,16 @@ aidl_interface { "android.media.audio.common.types-V2", ], }, + { + version: "4", + imports: [ + "android.media.audio.common.types-V3", + "android.hardware.audio.common-V3", + ], + }, ], - frozen: false, + frozen: true, } diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/.hash b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/.hash new file mode 100644 index 0000000000..8d73c8afd1 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/.hash @@ -0,0 +1 @@ +ee20ab2e2d0ffb894fc0b2ca33b72796d636793a diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioFocusChange.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioFocusChange.aidl new file mode 100644 index 0000000000..8eab521ce4 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioFocusChange.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@Backing(type="int") @VintfStability +enum AudioFocusChange { + NONE = 0, + GAIN = 1, + GAIN_TRANSIENT = 2, + GAIN_TRANSIENT_MAY_DUCK = 3, + GAIN_TRANSIENT_EXCLUSIVE = 4, + LOSS = ((-1) * GAIN) /* -1 */, + LOSS_TRANSIENT = ((-1) * GAIN_TRANSIENT) /* -2 */, + LOSS_TRANSIENT_CAN_DUCK = ((-1) * GAIN_TRANSIENT_MAY_DUCK) /* -3 */, +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioGainConfigInfo.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioGainConfigInfo.aidl new file mode 100644 index 0000000000..91ce035229 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioGainConfigInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +parcelable AudioGainConfigInfo { + int zoneId; + String devicePortAddress; + int volumeIndex; +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/DuckingInfo.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/DuckingInfo.aidl new file mode 100644 index 0000000000..23abb46bd7 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/DuckingInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +parcelable DuckingInfo { + int zoneId; + String[] deviceAddressesToDuck; + String[] deviceAddressesToUnduck; + String[] usagesHoldingFocus; + @nullable android.hardware.audio.common.PlaybackTrackMetadata[] playbackMetaDataHoldingFocus; +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioControl.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioControl.aidl new file mode 100644 index 0000000000..23fa20e3b4 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioControl.aidl @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//** + * Important note on Metadata: + * Metadata qualifies a playback track for an output stream. + * This is highly closed to {@link android.media.AudioAttributes}. + * It allows to identify the audio stream rendered / requesting / abandonning the focus. + * + * AudioControl 1.0 was limited to identification through {@code AttributeUsage} listed as + * {@code audioUsage} in audio_policy_configuration.xsd. + * + * Any new OEM needs would not be possible without extension. + * + * Relying on {@link android.hardware.automotive.audiocontrol.PlaybackTrackMetadata} allows + * to use a combination of {@code AttributeUsage}, {@code AttributeContentType} and + * {@code AttributeTags} to identify the use case / routing thanks to + * {@link android.media.audiopolicy.AudioProductStrategy}. + * The belonging to a strategy is deduced by an AOSP logic (in sync at native and java layer). + * + * IMPORTANT NOTE ON TAGS: + * To limit the possibilies and prevent from confusion, we expect the String to follow + * a given formalism that will be enforced. + * + * 1 / By convention, tags shall be a "key=value" pair. + * Vendor must namespace their tag's key (for example com.google.strategy=VR) to avoid conflicts. + * vendor specific applications and must be prefixed by "VX_". Vendor must + * + * 2 / Tags reported here shall be the same as the tags used to define a given + * {@link android.media.audiopolicy.AudioProductStrategy} and so in + * audio_policy_engine_configuration.xml file. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +interface IAudioControl { + /** + * @deprecated use {@link android.hardware.audio.common.PlaybackTrackMetadata} instead. + */ + oneway void onAudioFocusChange(in String usage, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusChange); + oneway void onDevicesToDuckChange(in android.hardware.automotive.audiocontrol.DuckingInfo[] duckingInfos); + oneway void onDevicesToMuteChange(in android.hardware.automotive.audiocontrol.MutingInfo[] mutingInfos); + oneway void registerFocusListener(in android.hardware.automotive.audiocontrol.IFocusListener listener); + oneway void setBalanceTowardRight(in float value); + oneway void setFadeTowardFront(in float value); + oneway void onAudioFocusChangeWithMetaData(in android.hardware.audio.common.PlaybackTrackMetadata playbackMetaData, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusChange); + oneway void setAudioDeviceGainsChanged(in android.hardware.automotive.audiocontrol.Reasons[] reasons, in android.hardware.automotive.audiocontrol.AudioGainConfigInfo[] gains); + oneway void registerGainCallback(in android.hardware.automotive.audiocontrol.IAudioGainCallback callback); + void setModuleChangeCallback(in android.hardware.automotive.audiocontrol.IModuleChangeCallback callback); + void clearModuleChangeCallback(); +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioGainCallback.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioGainCallback.aidl new file mode 100644 index 0000000000..17a087f20c --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioGainCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +interface IAudioGainCallback { + oneway void onAudioDeviceGainsChanged(in android.hardware.automotive.audiocontrol.Reasons[] reasons, in android.hardware.automotive.audiocontrol.AudioGainConfigInfo[] gains); +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IFocusListener.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IFocusListener.aidl new file mode 100644 index 0000000000..3e175529fa --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IFocusListener.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +interface IFocusListener { + oneway void abandonAudioFocus(in String usage, in int zoneId); + oneway void requestAudioFocus(in String usage, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusGain); + oneway void abandonAudioFocusWithMetaData(in android.hardware.audio.common.PlaybackTrackMetadata playbackMetaData, in int zoneId); + oneway void requestAudioFocusWithMetaData(in android.hardware.audio.common.PlaybackTrackMetadata playbackMetaData, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusGain); +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IModuleChangeCallback.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IModuleChangeCallback.aidl new file mode 100644 index 0000000000..2bbb9362b9 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IModuleChangeCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +interface IModuleChangeCallback { + oneway void onAudioPortsChanged(in android.media.audio.common.AudioPort[] audioPorts); +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/MutingInfo.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/MutingInfo.aidl new file mode 100644 index 0000000000..b25ed0f1e9 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/MutingInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +parcelable MutingInfo { + int zoneId; + String[] deviceAddressesToMute; + String[] deviceAddressesToUnmute; +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/Reasons.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/Reasons.aidl new file mode 100644 index 0000000000..8d669850a5 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/Reasons.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@Backing(type="int") @VintfStability +enum Reasons { + FORCED_MASTER_MUTE = 0x1, + REMOTE_MUTE = 0x2, + TCU_MUTE = 0x4, + ADAS_DUCKING = 0x8, + NAV_DUCKING = 0x10, + PROJECTION_DUCKING = 0x20, + THERMAL_LIMITATION = 0x40, + SUSPEND_EXIT_VOL_LIMITATION = 0x80, + EXTERNAL_AMP_VOL_FEEDBACK = 0x100, + OTHER = 0x80000000, +} diff --git a/automotive/remoteaccess/Android.bp b/automotive/remoteaccess/Android.bp index e1e90414c6..cb4ea40982 100644 --- a/automotive/remoteaccess/Android.bp +++ b/automotive/remoteaccess/Android.bp @@ -41,6 +41,11 @@ aidl_interface { version: "1", imports: [], }, + { + version: "2", + imports: [], + }, + ], - frozen: false, + frozen: true, } diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/.hash b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/.hash new file mode 100644 index 0000000000..84c1eb4254 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/.hash @@ -0,0 +1 @@ +65aaf23d323eed468f5d1e9ee4b7029ee6f1288a diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ApState.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ApState.aidl new file mode 100644 index 0000000000..da4f1d4304 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ApState.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@VintfStability +parcelable ApState { + boolean isReadyForRemoteTask; + boolean isWakeupRequired; +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl new file mode 100644 index 0000000000..5c5917b5b8 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@VintfStability +interface IRemoteAccess { + String getVehicleId(); + String getWakeupServiceName(); + String getProcessorId(); + void setRemoteTaskCallback(android.hardware.automotive.remoteaccess.IRemoteTaskCallback callback); + void clearRemoteTaskCallback(); + void notifyApStateChange(in android.hardware.automotive.remoteaccess.ApState state); + boolean isTaskScheduleSupported(); + android.hardware.automotive.remoteaccess.TaskType[] getSupportedTaskTypesForScheduling(); + void scheduleTask(in android.hardware.automotive.remoteaccess.ScheduleInfo scheduleInfo); + void unscheduleTask(String clientId, String scheduleId); + void unscheduleAllTasks(String clientId); + boolean isTaskScheduled(String clientId, String scheduleId); + List getAllPendingScheduledTasks(String clientId); +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl new file mode 100644 index 0000000000..295100ea51 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@VintfStability +interface IRemoteTaskCallback { + oneway void onRemoteTaskRequested(String clientId, in byte[] data); +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl new file mode 100644 index 0000000000..ec8733a1bc --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ScheduleInfo { + String clientId; + String scheduleId; + android.hardware.automotive.remoteaccess.TaskType taskType; + byte[] taskData; + int count; + long startTimeInEpochSeconds; + long periodicInSeconds; + const int MAX_TASK_DATA_SIZE_IN_BYTES = 10240; +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/TaskType.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/TaskType.aidl new file mode 100644 index 0000000000..da706269f0 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/TaskType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@Backing(type="int") @VintfStability +enum TaskType { + CUSTOM = 0, + ENTER_GARAGE_MODE = 1, +} diff --git a/automotive/vehicle/aidl/Android.bp b/automotive/vehicle/aidl/Android.bp index 5ca1fc8262..ed18ebcb4b 100644 --- a/automotive/vehicle/aidl/Android.bp +++ b/automotive/vehicle/aidl/Android.bp @@ -27,7 +27,7 @@ aidl_interface { srcs: [ "android/hardware/automotive/vehicle/*.aidl", ], - frozen: false, + frozen: true, stability: "vintf", backend: { cpp: { @@ -54,6 +54,10 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/.hash b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/.hash new file mode 100644 index 0000000000..312f8580ed --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/.hash @@ -0,0 +1 @@ +c6f1cc74f83dc53c6a5c08e6dbbb6e25e83e3a6b diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequest.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequest.aidl new file mode 100644 index 0000000000..d88cd8b076 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequest.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable GetValueRequest { + long requestId; + android.hardware.automotive.vehicle.VehiclePropValue prop; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequests.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequests.aidl new file mode 100644 index 0000000000..a7df2ff24d --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequests.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable GetValueRequests { + android.hardware.automotive.vehicle.GetValueRequest[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResult.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResult.aidl new file mode 100644 index 0000000000..25f3575862 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResult.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable GetValueResult { + long requestId; + android.hardware.automotive.vehicle.StatusCode status = android.hardware.automotive.vehicle.StatusCode.OK; + @nullable android.hardware.automotive.vehicle.VehiclePropValue prop; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResults.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResults.aidl new file mode 100644 index 0000000000..4c365b1074 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResults.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable GetValueResults { + android.hardware.automotive.vehicle.GetValueResult[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicle.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicle.aidl new file mode 100644 index 0000000000..b5f62aa3bf --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicle.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@VintfStability +interface IVehicle { + android.hardware.automotive.vehicle.VehiclePropConfigs getAllPropConfigs(); + android.hardware.automotive.vehicle.VehiclePropConfigs getPropConfigs(in int[] props); + void getValues(android.hardware.automotive.vehicle.IVehicleCallback callback, in android.hardware.automotive.vehicle.GetValueRequests requests); + void setValues(android.hardware.automotive.vehicle.IVehicleCallback callback, in android.hardware.automotive.vehicle.SetValueRequests requests); + void subscribe(in android.hardware.automotive.vehicle.IVehicleCallback callback, in android.hardware.automotive.vehicle.SubscribeOptions[] options, int maxSharedMemoryFileCount); + void unsubscribe(in android.hardware.automotive.vehicle.IVehicleCallback callback, in int[] propIds); + void returnSharedMemory(in android.hardware.automotive.vehicle.IVehicleCallback callback, long sharedMemoryId); + const long INVALID_MEMORY_ID = 0; + const int MAX_SHARED_MEMORY_FILES_PER_CLIENT = 3; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicleCallback.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicleCallback.aidl new file mode 100644 index 0000000000..2c5a333dde --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicleCallback.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@VintfStability +interface IVehicleCallback { + oneway void onGetValues(in android.hardware.automotive.vehicle.GetValueResults responses); + oneway void onSetValues(in android.hardware.automotive.vehicle.SetValueResults responses); + oneway void onPropertyEvent(in android.hardware.automotive.vehicle.VehiclePropValues propValues, int sharedMemoryFileCount); + oneway void onPropertySetError(in android.hardware.automotive.vehicle.VehiclePropErrors errors); +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/RawPropValues.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/RawPropValues.aidl new file mode 100644 index 0000000000..e7b0a137cf --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/RawPropValues.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable RawPropValues { + int[] int32Values = {}; + float[] floatValues; + long[] int64Values; + byte[] byteValues; + @utf8InCpp String stringValue; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequest.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequest.aidl new file mode 100644 index 0000000000..6a65307f3c --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequest.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SetValueRequest { + long requestId; + android.hardware.automotive.vehicle.VehiclePropValue value; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequests.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequests.aidl new file mode 100644 index 0000000000..15fd7ea8a8 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequests.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SetValueRequests { + android.hardware.automotive.vehicle.SetValueRequest[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResult.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResult.aidl new file mode 100644 index 0000000000..ec5fabb0b4 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResult.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SetValueResult { + long requestId; + android.hardware.automotive.vehicle.StatusCode status = android.hardware.automotive.vehicle.StatusCode.OK; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResults.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResults.aidl new file mode 100644 index 0000000000..47f16563ce --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResults.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SetValueResults { + android.hardware.automotive.vehicle.SetValueResult[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/StatusCode.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/StatusCode.aidl new file mode 100644 index 0000000000..f7e8c5abf7 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/StatusCode.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum StatusCode { + OK = 0, + TRY_AGAIN = 1, + INVALID_ARG = 2, + NOT_AVAILABLE = 3, + ACCESS_DENIED = 4, + INTERNAL_ERROR = 5, + NOT_AVAILABLE_DISABLED = 6, + NOT_AVAILABLE_SPEED_LOW = 7, + NOT_AVAILABLE_SPEED_HIGH = 8, + NOT_AVAILABLE_POOR_VISIBILITY = 9, + NOT_AVAILABLE_SAFETY = 10, +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SubscribeOptions.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SubscribeOptions.aidl new file mode 100644 index 0000000000..1b1696b240 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SubscribeOptions.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SubscribeOptions { + int propId; + int[] areaIds; + float sampleRate; + float resolution = 0.0f; + boolean enableVariableUpdateRate; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl new file mode 100644 index 0000000000..08d4ee46e8 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehicleAreaConfig { + int areaId; + int minInt32Value; + int maxInt32Value; + long minInt64Value; + long maxInt64Value; + float minFloatValue; + float maxFloatValue; + @nullable long[] supportedEnumValues; + android.hardware.automotive.vehicle.VehiclePropertyAccess access = android.hardware.automotive.vehicle.VehiclePropertyAccess.NONE; + boolean supportVariableUpdateRate; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfig.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfig.aidl new file mode 100644 index 0000000000..8602d2d03d --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfig.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropConfig { + int prop; + android.hardware.automotive.vehicle.VehiclePropertyAccess access = android.hardware.automotive.vehicle.VehiclePropertyAccess.NONE; + android.hardware.automotive.vehicle.VehiclePropertyChangeMode changeMode = android.hardware.automotive.vehicle.VehiclePropertyChangeMode.STATIC; + android.hardware.automotive.vehicle.VehicleAreaConfig[] areaConfigs; + int[] configArray; + @utf8InCpp String configString; + float minSampleRate; + float maxSampleRate; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfigs.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfigs.aidl new file mode 100644 index 0000000000..04c8006983 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfigs.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropConfigs { + android.hardware.automotive.vehicle.VehiclePropConfig[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropError.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropError.aidl new file mode 100644 index 0000000000..983529542f --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropError.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropError { + int propId; + int areaId; + android.hardware.automotive.vehicle.StatusCode errorCode = android.hardware.automotive.vehicle.StatusCode.OK; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropErrors.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropErrors.aidl new file mode 100644 index 0000000000..9dcb10bc9e --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropErrors.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropErrors { + android.hardware.automotive.vehicle.VehiclePropError[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValue.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValue.aidl new file mode 100644 index 0000000000..c87379fd9b --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValue.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropValue { + long timestamp; + int areaId; + int prop; + android.hardware.automotive.vehicle.VehiclePropertyStatus status = android.hardware.automotive.vehicle.VehiclePropertyStatus.AVAILABLE; + android.hardware.automotive.vehicle.RawPropValues value; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValues.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValues.aidl new file mode 100644 index 0000000000..e09a6b95df --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValues.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropValues { + android.hardware.automotive.vehicle.VehiclePropValue[] payloads; + long sharedMemoryId; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyAccess.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyAccess.aidl new file mode 100644 index 0000000000..dde9a88fd3 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyAccess.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyAccess { + NONE = 0x00, + READ = 0x01, + WRITE = 0x02, + READ_WRITE = 0x03, +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyChangeMode.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyChangeMode.aidl new file mode 100644 index 0000000000..2f9d107e88 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyChangeMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyChangeMode { + STATIC = 0x00, + ON_CHANGE = 0x01, + CONTINUOUS = 0x02, +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyStatus.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyStatus.aidl new file mode 100644 index 0000000000..642ce83f21 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyStatus { + AVAILABLE = 0x00, + UNAVAILABLE = 0x01, + ERROR = 0x02, +} diff --git a/automotive/vehicle/aidl_property/Android.bp b/automotive/vehicle/aidl_property/Android.bp index 5db39d84f7..bce22846af 100644 --- a/automotive/vehicle/aidl_property/Android.bp +++ b/automotive/vehicle/aidl_property/Android.bp @@ -28,7 +28,7 @@ aidl_interface { // This HAL was originally part of android.hardware.automotive.vehicle "android/hardware/automotive/vehicle/*.aidl", ], - frozen: false, + frozen: true, stability: "vintf", backend: { cpp: { @@ -55,6 +55,11 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, + ], } diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/.hash b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/.hash new file mode 100644 index 0000000000..fa66801a0a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/.hash @@ -0,0 +1 @@ +2190f6d54b998635069a8d87d3d053cc3bc041dc diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/AutomaticEmergencyBrakingState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/AutomaticEmergencyBrakingState.aidl new file mode 100644 index 0000000000..b316df7454 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/AutomaticEmergencyBrakingState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum AutomaticEmergencyBrakingState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, + USER_OVERRIDE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/BlindSpotWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/BlindSpotWarningState.aidl new file mode 100644 index 0000000000..535b0b1e2f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/BlindSpotWarningState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum BlindSpotWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CameraServiceState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CameraServiceState.aidl new file mode 100644 index 0000000000..84f5ec70d5 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CameraServiceState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CameraServiceState { + UNAVAILABLE = 0, + INACTIVE = 1, + REQUESTED = 2, + ACTIVE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserRequest.aidl new file mode 100644 index 0000000000..22c690c00f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable CreateUserRequest { + int requestId; + android.hardware.automotive.vehicle.UserInfo newUserInfo; + @utf8InCpp String newUserName; + android.hardware.automotive.vehicle.UsersInfo usersInfo; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserResponse.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserResponse.aidl new file mode 100644 index 0000000000..7d0196b4e5 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserResponse.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable CreateUserResponse { + int requestId; + android.hardware.automotive.vehicle.CreateUserStatus status = android.hardware.automotive.vehicle.CreateUserStatus.SUCCESS; + @utf8InCpp String errorMessage; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserStatus.aidl new file mode 100644 index 0000000000..4c3b751656 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CreateUserStatus { + SUCCESS = 1, + FAILURE = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CrossTrafficMonitoringWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CrossTrafficMonitoringWarningState.aidl new file mode 100644 index 0000000000..90e2d8dfb8 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CrossTrafficMonitoringWarningState.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CrossTrafficMonitoringWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING_FRONT_LEFT = 2, + WARNING_FRONT_RIGHT = 3, + WARNING_FRONT_BOTH = 4, + WARNING_REAR_LEFT = 5, + WARNING_REAR_RIGHT = 6, + WARNING_REAR_BOTH = 7, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlCommand.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlCommand.aidl new file mode 100644 index 0000000000..d6a104d25b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlCommand.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CruiseControlCommand { + ACTIVATE = 1, + SUSPEND = 2, + INCREASE_TARGET_SPEED = 3, + DECREASE_TARGET_SPEED = 4, + INCREASE_TARGET_TIME_GAP = 5, + DECREASE_TARGET_TIME_GAP = 6, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlState.aidl new file mode 100644 index 0000000000..ddaffa30c2 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CruiseControlState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, + USER_OVERRIDE = 3, + SUSPENDED = 4, + FORCED_DEACTIVATION_WARNING = 5, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlType.aidl new file mode 100644 index 0000000000..aab9dfe966 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CruiseControlType { + OTHER = 0, + STANDARD = 1, + ADAPTIVE = 2, + PREDICTIVE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CustomInputType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CustomInputType.aidl new file mode 100644 index 0000000000..4decb6985d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CustomInputType.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CustomInputType { + CUSTOM_EVENT_F1 = 1001, + CUSTOM_EVENT_F2 = 1002, + CUSTOM_EVENT_F3 = 1003, + CUSTOM_EVENT_F4 = 1004, + CUSTOM_EVENT_F5 = 1005, + CUSTOM_EVENT_F6 = 1006, + CUSTOM_EVENT_F7 = 1007, + CUSTOM_EVENT_F8 = 1008, + CUSTOM_EVENT_F9 = 1009, + CUSTOM_EVENT_F10 = 1010, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticFloatSensorIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticFloatSensorIndex.aidl new file mode 100644 index 0000000000..9704704eab --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticFloatSensorIndex.aidl @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DiagnosticFloatSensorIndex { + CALCULATED_ENGINE_LOAD = 0, + ENGINE_COOLANT_TEMPERATURE = 1, + SHORT_TERM_FUEL_TRIM_BANK1 = 2, + LONG_TERM_FUEL_TRIM_BANK1 = 3, + SHORT_TERM_FUEL_TRIM_BANK2 = 4, + LONG_TERM_FUEL_TRIM_BANK2 = 5, + FUEL_PRESSURE = 6, + INTAKE_MANIFOLD_ABSOLUTE_PRESSURE = 7, + ENGINE_RPM = 8, + VEHICLE_SPEED = 9, + TIMING_ADVANCE = 10, + MAF_AIR_FLOW_RATE = 11, + THROTTLE_POSITION = 12, + OXYGEN_SENSOR1_VOLTAGE = 13, + OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM = 14, + OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO = 15, + OXYGEN_SENSOR2_VOLTAGE = 16, + OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM = 17, + OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO = 18, + OXYGEN_SENSOR3_VOLTAGE = 19, + OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM = 20, + OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO = 21, + OXYGEN_SENSOR4_VOLTAGE = 22, + OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM = 23, + OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO = 24, + OXYGEN_SENSOR5_VOLTAGE = 25, + OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM = 26, + OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO = 27, + OXYGEN_SENSOR6_VOLTAGE = 28, + OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM = 29, + OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO = 30, + OXYGEN_SENSOR7_VOLTAGE = 31, + OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM = 32, + OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO = 33, + OXYGEN_SENSOR8_VOLTAGE = 34, + OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM = 35, + OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO = 36, + FUEL_RAIL_PRESSURE = 37, + FUEL_RAIL_GAUGE_PRESSURE = 38, + COMMANDED_EXHAUST_GAS_RECIRCULATION = 39, + EXHAUST_GAS_RECIRCULATION_ERROR = 40, + COMMANDED_EVAPORATIVE_PURGE = 41, + FUEL_TANK_LEVEL_INPUT = 42, + EVAPORATION_SYSTEM_VAPOR_PRESSURE = 43, + CATALYST_TEMPERATURE_BANK1_SENSOR1 = 44, + CATALYST_TEMPERATURE_BANK2_SENSOR1 = 45, + CATALYST_TEMPERATURE_BANK1_SENSOR2 = 46, + CATALYST_TEMPERATURE_BANK2_SENSOR2 = 47, + ABSOLUTE_LOAD_VALUE = 48, + FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO = 49, + RELATIVE_THROTTLE_POSITION = 50, + ABSOLUTE_THROTTLE_POSITION_B = 51, + ABSOLUTE_THROTTLE_POSITION_C = 52, + ACCELERATOR_PEDAL_POSITION_D = 53, + ACCELERATOR_PEDAL_POSITION_E = 54, + ACCELERATOR_PEDAL_POSITION_F = 55, + COMMANDED_THROTTLE_ACTUATOR = 56, + ETHANOL_FUEL_PERCENTAGE = 57, + ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE = 58, + SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1 = 59, + SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2 = 60, + SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3 = 61, + SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4 = 62, + LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1 = 63, + LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2 = 64, + LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3 = 65, + LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4 = 66, + RELATIVE_ACCELERATOR_PEDAL_POSITION = 67, + HYBRID_BATTERY_PACK_REMAINING_LIFE = 68, + FUEL_INJECTION_TIMING = 69, + ENGINE_FUEL_RATE = 70, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticIntegerSensorIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticIntegerSensorIndex.aidl new file mode 100644 index 0000000000..b3f13d4263 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticIntegerSensorIndex.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DiagnosticIntegerSensorIndex { + FUEL_SYSTEM_STATUS = 0, + MALFUNCTION_INDICATOR_LIGHT_ON = 1, + IGNITION_MONITORS_SUPPORTED = 2, + IGNITION_SPECIFIC_MONITORS = 3, + INTAKE_AIR_TEMPERATURE = 4, + COMMANDED_SECONDARY_AIR_STATUS = 5, + NUM_OXYGEN_SENSORS_PRESENT = 6, + RUNTIME_SINCE_ENGINE_START = 7, + DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON = 8, + WARMUPS_SINCE_CODES_CLEARED = 9, + DISTANCE_TRAVELED_SINCE_CODES_CLEARED = 10, + ABSOLUTE_BAROMETRIC_PRESSURE = 11, + CONTROL_MODULE_VOLTAGE = 12, + AMBIENT_AIR_TEMPERATURE = 13, + TIME_WITH_MALFUNCTION_LIGHT_ON = 14, + TIME_SINCE_TROUBLE_CODES_CLEARED = 15, + MAX_FUEL_AIR_EQUIVALENCE_RATIO = 16, + MAX_OXYGEN_SENSOR_VOLTAGE = 17, + MAX_OXYGEN_SENSOR_CURRENT = 18, + MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE = 19, + MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR = 20, + FUEL_TYPE = 21, + FUEL_RAIL_ABSOLUTE_PRESSURE = 22, + ENGINE_OIL_TEMPERATURE = 23, + DRIVER_DEMAND_PERCENT_TORQUE = 24, + ENGINE_ACTUAL_PERCENT_TORQUE = 25, + ENGINE_REFERENCE_PERCENT_TORQUE = 26, + ENGINE_PERCENT_TORQUE_DATA_IDLE = 27, + ENGINE_PERCENT_TORQUE_DATA_POINT1 = 28, + ENGINE_PERCENT_TORQUE_DATA_POINT2 = 29, + ENGINE_PERCENT_TORQUE_DATA_POINT3 = 30, + ENGINE_PERCENT_TORQUE_DATA_POINT4 = 31, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionState.aidl new file mode 100644 index 0000000000..54c02d53d1 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DriverDistractionState { + OTHER = 0, + NOT_DISTRACTED = 1, + DISTRACTED = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionWarning.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionWarning.aidl new file mode 100644 index 0000000000..9236b1c278 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionWarning.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DriverDistractionWarning { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionState.aidl new file mode 100644 index 0000000000..22a90f3657 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionState.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DriverDrowsinessAttentionState { + OTHER = 0, + KSS_RATING_1_EXTREMELY_ALERT = 1, + KSS_RATING_2_VERY_ALERT = 2, + KSS_RATING_3_ALERT = 3, + KSS_RATING_4_RATHER_ALERT = 4, + KSS_RATING_5_NEITHER_ALERT_NOR_SLEEPY = 5, + KSS_RATING_6_SOME_SLEEPINESS = 6, + KSS_RATING_7_SLEEPY_NO_EFFORT = 7, + KSS_RATING_8_SLEEPY_SOME_EFFORT = 8, + KSS_RATING_9_VERY_SLEEPY = 9, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionWarning.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionWarning.aidl new file mode 100644 index 0000000000..dbf2364d4b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionWarning.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DriverDrowsinessAttentionWarning { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicStabilityControlState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicStabilityControlState.aidl new file mode 100644 index 0000000000..b061a25ecf --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicStabilityControlState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ElectronicStabilityControlState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardStatus.aidl new file mode 100644 index 0000000000..9772aeeba0 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ElectronicTollCollectionCardStatus { + UNKNOWN = 0, + ELECTRONIC_TOLL_COLLECTION_CARD_VALID = 1, + ELECTRONIC_TOLL_COLLECTION_CARD_INVALID = 2, + ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardType.aidl new file mode 100644 index 0000000000..22cf2c388b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ElectronicTollCollectionCardType { + UNKNOWN = 0, + JP_ELECTRONIC_TOLL_COLLECTION_CARD = 1, + JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2 = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EmergencyLaneKeepAssistState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EmergencyLaneKeepAssistState.aidl new file mode 100644 index 0000000000..078acde168 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EmergencyLaneKeepAssistState.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EmergencyLaneKeepAssistState { + OTHER = 0, + ENABLED = 1, + WARNING_LEFT = 2, + WARNING_RIGHT = 3, + ACTIVATED_STEER_LEFT = 4, + ACTIVATED_STEER_RIGHT = 5, + USER_OVERRIDE = 6, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ErrorState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ErrorState.aidl new file mode 100644 index 0000000000..dd950ce88c --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ErrorState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ErrorState { + OTHER_ERROR_STATE = (-1) /* -1 */, + NOT_AVAILABLE_DISABLED = (-2) /* -2 */, + NOT_AVAILABLE_SPEED_LOW = (-3) /* -3 */, + NOT_AVAILABLE_SPEED_HIGH = (-4) /* -4 */, + NOT_AVAILABLE_POOR_VISIBILITY = (-5) /* -5 */, + NOT_AVAILABLE_SAFETY = (-6) /* -6 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvChargeState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvChargeState.aidl new file mode 100644 index 0000000000..fe1c240a2d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvChargeState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvChargeState { + UNKNOWN = 0, + CHARGING = 1, + FULLY_CHARGED = 2, + NOT_CHARGING = 3, + ERROR = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvConnectorType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvConnectorType.aidl new file mode 100644 index 0000000000..b469578e77 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvConnectorType.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvConnectorType { + UNKNOWN = 0, + IEC_TYPE_1_AC = 1, + IEC_TYPE_2_AC = 2, + IEC_TYPE_3_AC = 3, + IEC_TYPE_4_DC = 4, + IEC_TYPE_1_CCS_DC = 5, + IEC_TYPE_2_CCS_DC = 6, + TESLA_ROADSTER = 7, + TESLA_HPWC = 8, + TESLA_SUPERCHARGER = 9, + GBT_AC = 10, + GBT_DC = 11, + OTHER = 101, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvRegenerativeBrakingState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvRegenerativeBrakingState.aidl new file mode 100644 index 0000000000..b8695623fb --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvRegenerativeBrakingState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvRegenerativeBrakingState { + UNKNOWN = 0, + DISABLED = 1, + PARTIALLY_ENABLED = 2, + FULLY_ENABLED = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvStoppingMode.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvStoppingMode.aidl new file mode 100644 index 0000000000..3be8d1263f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvStoppingMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvStoppingMode { + OTHER = 0, + CREEP = 1, + ROLL = 2, + HOLD = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceRequestIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceRequestIndex.aidl new file mode 100644 index 0000000000..2fdb9b5a8d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceRequestIndex.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvsServiceRequestIndex { + TYPE = 0, + STATE = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceState.aidl new file mode 100644 index 0000000000..df81ee7d27 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceState.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvsServiceState { + OFF = 0, + ON = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceType.aidl new file mode 100644 index 0000000000..285732cc39 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvsServiceType { + REARVIEW = 0, + SURROUNDVIEW = 1, + FRONTVIEW = 2, + LEFTVIEW = 3, + RIGHTVIEW = 4, + DRIVERVIEW = 5, + FRONTPASSENGERSVIEW = 6, + REARPASSENGERSVIEW = 7, + USER_DEFINED = 1000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ForwardCollisionWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ForwardCollisionWarningState.aidl new file mode 100644 index 0000000000..371885d3b5 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ForwardCollisionWarningState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ForwardCollisionWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/FuelType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/FuelType.aidl new file mode 100644 index 0000000000..14bb61b7af --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/FuelType.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum FuelType { + FUEL_TYPE_UNKNOWN = 0, + FUEL_TYPE_UNLEADED = 1, + FUEL_TYPE_LEADED = 2, + FUEL_TYPE_DIESEL_1 = 3, + FUEL_TYPE_DIESEL_2 = 4, + FUEL_TYPE_BIODIESEL = 5, + FUEL_TYPE_E85 = 6, + FUEL_TYPE_LPG = 7, + FUEL_TYPE_CNG = 8, + FUEL_TYPE_LNG = 9, + FUEL_TYPE_ELECTRIC = 10, + FUEL_TYPE_HYDROGEN = 11, + FUEL_TYPE_OTHER = 12, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/GsrComplianceRequirementType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/GsrComplianceRequirementType.aidl new file mode 100644 index 0000000000..9c565ee818 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/GsrComplianceRequirementType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum GsrComplianceRequirementType { + GSR_COMPLIANCE_NOT_REQUIRED = 0, + GSR_COMPLIANCE_REQUIRED_V1 = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionDriverState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionDriverState.aidl new file mode 100644 index 0000000000..bb390f2224 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionDriverState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum HandsOnDetectionDriverState { + OTHER = 0, + HANDS_ON = 1, + HANDS_OFF = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionWarning.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionWarning.aidl new file mode 100644 index 0000000000..4ea4d1d450 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionWarning.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum HandsOnDetectionWarning { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ImpactSensorLocation.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ImpactSensorLocation.aidl new file mode 100644 index 0000000000..6b75d8cd51 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ImpactSensorLocation.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ImpactSensorLocation { + OTHER = 0x01, + FRONT = 0x02, + FRONT_LEFT_DOOR_SIDE = 0x04, + FRONT_RIGHT_DOOR_SIDE = 0x08, + REAR_LEFT_DOOR_SIDE = 0x10, + REAR_RIGHT_DOOR_SIDE = 0x20, + REAR = 0x40, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequest.aidl new file mode 100644 index 0000000000..a4c048aadb --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequest.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable InitialUserInfoRequest { + int requestId; + android.hardware.automotive.vehicle.InitialUserInfoRequestType requestType = android.hardware.automotive.vehicle.InitialUserInfoRequestType.UNKNOWN; + android.hardware.automotive.vehicle.UsersInfo usersInfo; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequestType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequestType.aidl new file mode 100644 index 0000000000..51260fa7b0 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequestType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum InitialUserInfoRequestType { + UNKNOWN = 0, + FIRST_BOOT = 1, + FIRST_BOOT_AFTER_OTA = 2, + COLD_BOOT = 3, + RESUME = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponse.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponse.aidl new file mode 100644 index 0000000000..f0e161261d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponse.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable InitialUserInfoResponse { + int requestId; + android.hardware.automotive.vehicle.InitialUserInfoResponseAction action = android.hardware.automotive.vehicle.InitialUserInfoResponseAction.DEFAULT; + android.hardware.automotive.vehicle.UserInfo userToSwitchOrCreate; + @utf8InCpp String userLocales; + @utf8InCpp String userNameToCreate; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponseAction.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponseAction.aidl new file mode 100644 index 0000000000..d654b5c23e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponseAction.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum InitialUserInfoResponseAction { + DEFAULT = 0, + SWITCH = 1, + CREATE = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistCommand.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistCommand.aidl new file mode 100644 index 0000000000..9e726052e8 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistCommand.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LaneCenteringAssistCommand { + ACTIVATE = 1, + DEACTIVATE = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistState.aidl new file mode 100644 index 0000000000..c5afe2be1a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LaneCenteringAssistState { + OTHER = 0, + ENABLED = 1, + ACTIVATION_REQUESTED = 2, + ACTIVATED = 3, + USER_OVERRIDE = 4, + FORCED_DEACTIVATION_WARNING = 5, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneDepartureWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneDepartureWarningState.aidl new file mode 100644 index 0000000000..cdddb6f2d2 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneDepartureWarningState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LaneDepartureWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING_LEFT = 2, + WARNING_RIGHT = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneKeepAssistState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneKeepAssistState.aidl new file mode 100644 index 0000000000..9c92ff69c5 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneKeepAssistState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LaneKeepAssistState { + OTHER = 0, + ENABLED = 1, + ACTIVATED_STEER_LEFT = 2, + ACTIVATED_STEER_RIGHT = 3, + USER_OVERRIDE = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LocationCharacterization.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LocationCharacterization.aidl new file mode 100644 index 0000000000..27abe417dc --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LocationCharacterization.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LocationCharacterization { + PRIOR_LOCATIONS = 0x1, + GYROSCOPE_FUSION = 0x2, + ACCELEROMETER_FUSION = 0x4, + COMPASS_FUSION = 0x8, + WHEEL_SPEED_FUSION = 0x10, + STEERING_ANGLE_FUSION = 0x20, + CAR_SPEED_FUSION = 0x40, + DEAD_RECKONED = 0x80, + RAW_GNSS_ONLY = 0x100, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl new file mode 100644 index 0000000000..70014e1dda --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LowSpeedAutomaticEmergencyBrakingState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, + USER_OVERRIDE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedCollisionWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedCollisionWarningState.aidl new file mode 100644 index 0000000000..6f6338b2fd --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedCollisionWarningState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LowSpeedCollisionWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CommonIgnitionMonitors.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CommonIgnitionMonitors.aidl new file mode 100644 index 0000000000..7d122241eb --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CommonIgnitionMonitors.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2CommonIgnitionMonitors { + COMPONENTS_AVAILABLE = (0x1 << 0) /* 1 */, + COMPONENTS_INCOMPLETE = (0x1 << 1) /* 2 */, + FUEL_SYSTEM_AVAILABLE = (0x1 << 2) /* 4 */, + FUEL_SYSTEM_INCOMPLETE = (0x1 << 3) /* 8 */, + MISFIRE_AVAILABLE = (0x1 << 4) /* 16 */, + MISFIRE_INCOMPLETE = (0x1 << 5) /* 32 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CompressionIgnitionMonitors.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CompressionIgnitionMonitors.aidl new file mode 100644 index 0000000000..90240bf4bf --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CompressionIgnitionMonitors.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2CompressionIgnitionMonitors { + COMPONENTS_AVAILABLE = (0x1 << 0) /* 1 */, + COMPONENTS_INCOMPLETE = (0x1 << 1) /* 2 */, + FUEL_SYSTEM_AVAILABLE = (0x1 << 2) /* 4 */, + FUEL_SYSTEM_INCOMPLETE = (0x1 << 3) /* 8 */, + MISFIRE_AVAILABLE = (0x1 << 4) /* 16 */, + MISFIRE_INCOMPLETE = (0x1 << 5) /* 32 */, + EGR_OR_VVT_AVAILABLE = (0x1 << 6) /* 64 */, + EGR_OR_VVT_INCOMPLETE = (0x1 << 7) /* 128 */, + PM_FILTER_AVAILABLE = (0x1 << 8) /* 256 */, + PM_FILTER_INCOMPLETE = (0x1 << 9) /* 512 */, + EXHAUST_GAS_SENSOR_AVAILABLE = (0x1 << 10) /* 1024 */, + EXHAUST_GAS_SENSOR_INCOMPLETE = (0x1 << 11) /* 2048 */, + BOOST_PRESSURE_AVAILABLE = (0x1 << 12) /* 4096 */, + BOOST_PRESSURE_INCOMPLETE = (0x1 << 13) /* 8192 */, + NOx_SCR_AVAILABLE = (0x1 << 14) /* 16384 */, + NOx_SCR_INCOMPLETE = (0x1 << 15) /* 32768 */, + NMHC_CATALYST_AVAILABLE = (0x1 << 16) /* 65536 */, + NMHC_CATALYST_INCOMPLETE = (0x1 << 17) /* 131072 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelSystemStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelSystemStatus.aidl new file mode 100644 index 0000000000..9d588ead1c --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelSystemStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2FuelSystemStatus { + OPEN_INSUFFICIENT_ENGINE_TEMPERATURE = 1, + CLOSED_LOOP = 2, + OPEN_ENGINE_LOAD_OR_DECELERATION = 4, + OPEN_SYSTEM_FAILURE = 8, + CLOSED_LOOP_BUT_FEEDBACK_FAULT = 16, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelType.aidl new file mode 100644 index 0000000000..3ab3920d04 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelType.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2FuelType { + NOT_AVAILABLE = 0, + GASOLINE = 1, + METHANOL = 2, + ETHANOL = 3, + DIESEL = 4, + LPG = 5, + CNG = 6, + PROPANE = 7, + ELECTRIC = 8, + BIFUEL_RUNNING_GASOLINE = 9, + BIFUEL_RUNNING_METHANOL = 10, + BIFUEL_RUNNING_ETHANOL = 11, + BIFUEL_RUNNING_LPG = 12, + BIFUEL_RUNNING_CNG = 13, + BIFUEL_RUNNING_PROPANE = 14, + BIFUEL_RUNNING_ELECTRIC = 15, + BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION = 16, + HYBRID_GASOLINE = 17, + HYBRID_ETHANOL = 18, + HYBRID_DIESEL = 19, + HYBRID_ELECTRIC = 20, + HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION = 21, + HYBRID_REGENERATIVE = 22, + BIFUEL_RUNNING_DIESEL = 23, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2IgnitionMonitorKind.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2IgnitionMonitorKind.aidl new file mode 100644 index 0000000000..ec8f1c2e57 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2IgnitionMonitorKind.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2IgnitionMonitorKind { + SPARK = 0, + COMPRESSION = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SecondaryAirStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SecondaryAirStatus.aidl new file mode 100644 index 0000000000..7f445bf564 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SecondaryAirStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2SecondaryAirStatus { + UPSTREAM = 1, + DOWNSTREAM_OF_CATALYCIC_CONVERTER = 2, + FROM_OUTSIDE_OR_OFF = 4, + PUMP_ON_FOR_DIAGNOSTICS = 8, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SparkIgnitionMonitors.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SparkIgnitionMonitors.aidl new file mode 100644 index 0000000000..51e321b828 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SparkIgnitionMonitors.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2SparkIgnitionMonitors { + COMPONENTS_AVAILABLE = (0x1 << 0) /* 1 */, + COMPONENTS_INCOMPLETE = (0x1 << 1) /* 2 */, + FUEL_SYSTEM_AVAILABLE = (0x1 << 2) /* 4 */, + FUEL_SYSTEM_INCOMPLETE = (0x1 << 3) /* 8 */, + MISFIRE_AVAILABLE = (0x1 << 4) /* 16 */, + MISFIRE_INCOMPLETE = (0x1 << 5) /* 32 */, + EGR_AVAILABLE = (0x1 << 6) /* 64 */, + EGR_INCOMPLETE = (0x1 << 7) /* 128 */, + OXYGEN_SENSOR_HEATER_AVAILABLE = (0x1 << 8) /* 256 */, + OXYGEN_SENSOR_HEATER_INCOMPLETE = (0x1 << 9) /* 512 */, + OXYGEN_SENSOR_AVAILABLE = (0x1 << 10) /* 1024 */, + OXYGEN_SENSOR_INCOMPLETE = (0x1 << 11) /* 2048 */, + AC_REFRIGERANT_AVAILABLE = (0x1 << 12) /* 4096 */, + AC_REFRIGERANT_INCOMPLETE = (0x1 << 13) /* 8192 */, + SECONDARY_AIR_SYSTEM_AVAILABLE = (0x1 << 14) /* 16384 */, + SECONDARY_AIR_SYSTEM_INCOMPLETE = (0x1 << 15) /* 32768 */, + EVAPORATIVE_SYSTEM_AVAILABLE = (0x1 << 16) /* 65536 */, + EVAPORATIVE_SYSTEM_INCOMPLETE = (0x1 << 17) /* 131072 */, + HEATED_CATALYST_AVAILABLE = (0x1 << 18) /* 262144 */, + HEATED_CATALYST_INCOMPLETE = (0x1 << 19) /* 524288 */, + CATALYST_AVAILABLE = (0x1 << 20) /* 1048576 */, + CATALYST_INCOMPLETE = (0x1 << 21) /* 2097152 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/PortLocationType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/PortLocationType.aidl new file mode 100644 index 0000000000..b831c7ebd9 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/PortLocationType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum PortLocationType { + UNKNOWN = 0, + FRONT_LEFT = 1, + FRONT_RIGHT = 2, + REAR_RIGHT = 3, + REAR_LEFT = 4, + FRONT = 5, + REAR = 6, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ProcessTerminationReason.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ProcessTerminationReason.aidl new file mode 100644 index 0000000000..f2838ad818 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ProcessTerminationReason.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ProcessTerminationReason { + NOT_RESPONDING = 1, + IO_OVERUSE = 2, + MEMORY_OVERUSE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RemoveUserRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RemoveUserRequest.aidl new file mode 100644 index 0000000000..74457b9ab7 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RemoveUserRequest.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable RemoveUserRequest { + int requestId; + android.hardware.automotive.vehicle.UserInfo removedUserInfo; + android.hardware.automotive.vehicle.UsersInfo usersInfo; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RotaryInputType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RotaryInputType.aidl new file mode 100644 index 0000000000..ff90034711 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RotaryInputType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum RotaryInputType { + ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION = 0, + ROTARY_INPUT_TYPE_AUDIO_VOLUME = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserMessageType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserMessageType.aidl new file mode 100644 index 0000000000..a3e59f128d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserMessageType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum SwitchUserMessageType { + UNKNOWN = 0, + LEGACY_ANDROID_SWITCH = 1, + ANDROID_SWITCH = 2, + VEHICLE_RESPONSE = 3, + VEHICLE_REQUEST = 4, + ANDROID_POST_SWITCH = 5, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserRequest.aidl new file mode 100644 index 0000000000..3012b7a51d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SwitchUserRequest { + int requestId; + android.hardware.automotive.vehicle.SwitchUserMessageType messageType = android.hardware.automotive.vehicle.SwitchUserMessageType.UNKNOWN; + android.hardware.automotive.vehicle.UserInfo targetUser; + android.hardware.automotive.vehicle.UsersInfo usersInfo; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserResponse.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserResponse.aidl new file mode 100644 index 0000000000..8915d1b866 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserResponse.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SwitchUserResponse { + int requestId; + android.hardware.automotive.vehicle.SwitchUserMessageType messageType = android.hardware.automotive.vehicle.SwitchUserMessageType.UNKNOWN; + android.hardware.automotive.vehicle.SwitchUserStatus status = android.hardware.automotive.vehicle.SwitchUserStatus.SUCCESS; + @utf8InCpp String errorMessage; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserStatus.aidl new file mode 100644 index 0000000000..c7be9ec949 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum SwitchUserStatus { + SUCCESS = 1, + FAILURE = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/TrailerState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/TrailerState.aidl new file mode 100644 index 0000000000..2491340acd --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/TrailerState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum TrailerState { + UNKNOWN = 0, + NOT_PRESENT = 1, + PRESENT = 2, + ERROR = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociation.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociation.aidl new file mode 100644 index 0000000000..a540f8ead8 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociation.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationAssociation { + android.hardware.automotive.vehicle.UserIdentificationAssociationType type = android.hardware.automotive.vehicle.UserIdentificationAssociationType.INVALID; + android.hardware.automotive.vehicle.UserIdentificationAssociationValue value = android.hardware.automotive.vehicle.UserIdentificationAssociationValue.UNKNOWN; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationSetValue.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationSetValue.aidl new file mode 100644 index 0000000000..1fd9ee8c31 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationSetValue.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum UserIdentificationAssociationSetValue { + INVALID = 0, + ASSOCIATE_CURRENT_USER = 1, + DISASSOCIATE_CURRENT_USER = 2, + DISASSOCIATE_ALL_USERS = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationType.aidl new file mode 100644 index 0000000000..6498375b0f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum UserIdentificationAssociationType { + INVALID = 0, + KEY_FOB = 1, + CUSTOM_1 = 101, + CUSTOM_2 = 102, + CUSTOM_3 = 103, + CUSTOM_4 = 104, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationValue.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationValue.aidl new file mode 100644 index 0000000000..d5e01691fa --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationValue.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum UserIdentificationAssociationValue { + UNKNOWN = 1, + ASSOCIATED_CURRENT_USER = 2, + ASSOCIATED_ANOTHER_USER = 3, + NOT_ASSOCIATED_ANY_USER = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationGetRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationGetRequest.aidl new file mode 100644 index 0000000000..fe7fd6f6bc --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationGetRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationGetRequest { + int requestId; + android.hardware.automotive.vehicle.UserInfo userInfo; + int numberAssociationTypes; + android.hardware.automotive.vehicle.UserIdentificationAssociationType[] associationTypes; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationResponse.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationResponse.aidl new file mode 100644 index 0000000000..3e2a2579cc --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationResponse.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationResponse { + int requestId; + int numberAssociation; + android.hardware.automotive.vehicle.UserIdentificationAssociation[] associations; + @utf8InCpp String errorMessage; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetAssociation.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetAssociation.aidl new file mode 100644 index 0000000000..57840fb77c --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetAssociation.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationSetAssociation { + android.hardware.automotive.vehicle.UserIdentificationAssociationType type = android.hardware.automotive.vehicle.UserIdentificationAssociationType.INVALID; + android.hardware.automotive.vehicle.UserIdentificationAssociationSetValue value = android.hardware.automotive.vehicle.UserIdentificationAssociationSetValue.INVALID; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetRequest.aidl new file mode 100644 index 0000000000..db01b515a8 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationSetRequest { + int requestId; + android.hardware.automotive.vehicle.UserInfo userInfo; + int numberAssociations; + android.hardware.automotive.vehicle.UserIdentificationSetAssociation[] associations; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserInfo.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserInfo.aidl new file mode 100644 index 0000000000..feb5a73ed4 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserInfo { + int userId = 0; + int flags; + const int USER_FLAG_SYSTEM = 0x01; + const int USER_FLAG_GUEST = 0x02; + const int USER_FLAG_EPHEMERAL = 0x04; + const int USER_FLAG_ADMIN = 0x08; + const int USER_FLAG_DISABLED = 0x10; + const int USER_FLAG_PROFILE = 0x20; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UsersInfo.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UsersInfo.aidl new file mode 100644 index 0000000000..edcef2edfd --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UsersInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UsersInfo { + android.hardware.automotive.vehicle.UserInfo currentUser; + int numberUsers; + android.hardware.automotive.vehicle.UserInfo[] existingUsers; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAirbagLocation.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAirbagLocation.aidl new file mode 100644 index 0000000000..9b966d7f94 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAirbagLocation.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAirbagLocation { + OTHER = 0x01, + FRONT = 0x02, + KNEE = 0x04, + LEFT_SIDE = 0x08, + RIGHT_SIDE = 0x10, + CURTAIN = 0x20, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl new file mode 100644 index 0000000000..55af2ab0fa --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerBootupReason { + USER_POWER_ON = 0, + SYSTEM_USER_DETECTION = 1, + SYSTEM_REMOTE_ACCESS = 2, + SYSTEM_ENTER_GARAGE_MODE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateConfigFlag.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateConfigFlag.aidl new file mode 100644 index 0000000000..cc12490233 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateConfigFlag.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateConfigFlag { + ENABLE_DEEP_SLEEP_FLAG = 0x1, + CONFIG_SUPPORT_TIMER_POWER_ON_FLAG = 0x2, + ENABLE_HIBERNATION_FLAG = 0x4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReport.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReport.aidl new file mode 100644 index 0000000000..e4f7e54f75 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReport.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateReport { + WAIT_FOR_VHAL = 0x1, + DEEP_SLEEP_ENTRY = 0x2, + DEEP_SLEEP_EXIT = 0x3, + SHUTDOWN_POSTPONE = 0x4, + SHUTDOWN_START = 0x5, + ON = 0x6, + SHUTDOWN_PREPARE = 0x7, + SHUTDOWN_CANCELLED = 0x8, + HIBERNATION_ENTRY = 0x9, + HIBERNATION_EXIT = 0xA, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReq.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReq.aidl new file mode 100644 index 0000000000..8b94d31598 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReq.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateReq { + ON = 0, + SHUTDOWN_PREPARE = 1, + CANCEL_SHUTDOWN = 2, + FINISHED = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReqIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReqIndex.aidl new file mode 100644 index 0000000000..f995c73ee5 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReqIndex.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateReqIndex { + STATE = 0, + ADDITIONAL = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl new file mode 100644 index 0000000000..8b345b2bd1 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateShutdownParam { + SHUTDOWN_IMMEDIATELY = 1, + CAN_SLEEP = 2, + SHUTDOWN_ONLY = 3, + SLEEP_IMMEDIATELY = 4, + HIBERNATE_IMMEDIATELY = 5, + CAN_HIBERNATE = 6, + EMERGENCY_SHUTDOWN = 7, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleArea.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleArea.aidl new file mode 100644 index 0000000000..b63003a733 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleArea.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleArea { + GLOBAL = 0x01000000, + WINDOW = 0x03000000, + MIRROR = 0x04000000, + SEAT = 0x05000000, + DOOR = 0x06000000, + WHEEL = 0x07000000, + VENDOR = 0x08000000, + MASK = 0x0f000000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaDoor.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaDoor.aidl new file mode 100644 index 0000000000..04976d631d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaDoor.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaDoor { + ROW_1_LEFT = 0x00000001, + ROW_1_RIGHT = 0x00000004, + ROW_2_LEFT = 0x00000010, + ROW_2_RIGHT = 0x00000040, + ROW_3_LEFT = 0x00000100, + ROW_3_RIGHT = 0x00000400, + HOOD = 0x10000000, + REAR = 0x20000000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaMirror.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaMirror.aidl new file mode 100644 index 0000000000..2d1c0483a2 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaMirror.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaMirror { + DRIVER_LEFT = 0x00000001, + DRIVER_RIGHT = 0x00000002, + DRIVER_CENTER = 0x00000004, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaSeat.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaSeat.aidl new file mode 100644 index 0000000000..a24f515697 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaSeat.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaSeat { + UNKNOWN = 0x0000, + ROW_1_LEFT = 0x0001, + ROW_1_CENTER = 0x0002, + ROW_1_RIGHT = 0x0004, + ROW_2_LEFT = 0x0010, + ROW_2_CENTER = 0x0020, + ROW_2_RIGHT = 0x0040, + ROW_3_LEFT = 0x0100, + ROW_3_CENTER = 0x0200, + ROW_3_RIGHT = 0x0400, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWheel.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWheel.aidl new file mode 100644 index 0000000000..d1b314e0ac --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWheel.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaWheel { + UNKNOWN = 0x0, + LEFT_FRONT = 0x1, + RIGHT_FRONT = 0x2, + LEFT_REAR = 0x4, + RIGHT_REAR = 0x8, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWindow.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWindow.aidl new file mode 100644 index 0000000000..2afcca3dd1 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWindow.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaWindow { + FRONT_WINDSHIELD = 0x00000001, + REAR_WINDSHIELD = 0x00000002, + ROW_1_LEFT = 0x00000010, + ROW_1_RIGHT = 0x00000040, + ROW_2_LEFT = 0x00000100, + ROW_2_RIGHT = 0x00000400, + ROW_3_LEFT = 0x00001000, + ROW_3_RIGHT = 0x00004000, + ROOF_TOP_1 = 0x00010000, + ROOF_TOP_2 = 0x00020000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAutonomousState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAutonomousState.aidl new file mode 100644 index 0000000000..e15e71ed3e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAutonomousState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAutonomousState { + LEVEL_0 = 0, + LEVEL_1 = 1, + LEVEL_2 = 2, + LEVEL_3 = 3, + LEVEL_4 = 4, + LEVEL_5 = 5, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleDisplay.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleDisplay.aidl new file mode 100644 index 0000000000..be335ec7e7 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleDisplay.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleDisplay { + MAIN = 0, + INSTRUMENT_CLUSTER = 1, + HUD = 2, + INPUT = 3, + AUXILIARY = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleGear.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleGear.aidl new file mode 100644 index 0000000000..b8a299c41a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleGear.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleGear { + GEAR_UNKNOWN = 0x0000, + GEAR_NEUTRAL = 0x0001, + GEAR_REVERSE = 0x0002, + GEAR_PARK = 0x0004, + GEAR_DRIVE = 0x0008, + GEAR_1 = 0x0010, + GEAR_2 = 0x0020, + GEAR_3 = 0x0040, + GEAR_4 = 0x0080, + GEAR_5 = 0x0100, + GEAR_6 = 0x0200, + GEAR_7 = 0x0400, + GEAR_8 = 0x0800, + GEAR_9 = 0x1000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHvacFanDirection.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHvacFanDirection.aidl new file mode 100644 index 0000000000..4f9870a674 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHvacFanDirection.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHvacFanDirection { + UNKNOWN = 0x0, + FACE = 0x1, + FLOOR = 0x2, + FACE_AND_FLOOR = 0x3, + DEFROST = 0x4, + DEFROST_AND_FLOOR = 0x06, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwKeyInputAction.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwKeyInputAction.aidl new file mode 100644 index 0000000000..c4ac002067 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwKeyInputAction.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwKeyInputAction { + ACTION_DOWN = 0, + ACTION_UP = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionButtonStateFlag.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionButtonStateFlag.aidl new file mode 100644 index 0000000000..29c5ed6f6e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionButtonStateFlag.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwMotionButtonStateFlag { + BUTTON_PRIMARY = 0x0001, + BUTTON_SECONDARY = 0x0002, + BUTTON_TERTIARY = 0x0004, + BUTTON_BACK = 0x0008, + BUTTON_FORWARD = 0x0010, + BUTTON_STYLUS_PRIMARY = 0x0020, + BUTTON_STYLUS_SECONDARY = 0x0040, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputAction.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputAction.aidl new file mode 100644 index 0000000000..db4b41eb9d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputAction.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwMotionInputAction { + ACTION_DOWN = 0, + ACTION_UP = 1, + ACTION_MOVE = 2, + ACTION_CANCEL = 3, + ACTION_OUTSIDE = 4, + ACTION_POINTER_DOWN = 5, + ACTION_POINTER_UP = 6, + ACTION_HOVER_MOVE = 7, + ACTION_SCROLL = 8, + ACTION_HOVER_ENTER = 9, + ACTION_HOVER_EXIT = 10, + ACTION_BUTTON_PRESS = 11, + ACTION_BUTTON_RELEASE = 12, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputSource.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputSource.aidl new file mode 100644 index 0000000000..88c7873a43 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputSource.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwMotionInputSource { + SOURCE_UNKNOWN = 0, + SOURCE_KEYBOARD = 1, + SOURCE_DPAD = 2, + SOURCE_GAMEPAD = 3, + SOURCE_TOUCHSCREEN = 4, + SOURCE_MOUSE = 5, + SOURCE_STYLUS = 6, + SOURCE_BLUETOOTH_STYLUS = 7, + SOURCE_TRACKBALL = 8, + SOURCE_MOUSE_RELATIVE = 9, + SOURCE_TOUCHPAD = 10, + SOURCE_TOUCH_NAVIGATION = 11, + SOURCE_ROTARY_ENCODER = 12, + SOURCE_JOYSTICK = 13, + SOURCE_HDMI = 14, + SOURCE_SENSOR = 15, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionToolType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionToolType.aidl new file mode 100644 index 0000000000..2b3bc7f157 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionToolType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwMotionToolType { + TOOL_TYPE_UNKNOWN = 0, + TOOL_TYPE_FINGER = 1, + TOOL_TYPE_STYLUS = 2, + TOOL_TYPE_MOUSE = 3, + TOOL_TYPE_ERASER = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleIgnitionState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleIgnitionState.aidl new file mode 100644 index 0000000000..f572a128bb --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleIgnitionState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleIgnitionState { + UNDEFINED = 0, + LOCK = 1, + OFF, + ACC, + ON, + START, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightState.aidl new file mode 100644 index 0000000000..d569851407 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleLightState { + OFF = 0, + ON = 1, + DAYTIME_RUNNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightSwitch.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightSwitch.aidl new file mode 100644 index 0000000000..f244884f98 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightSwitch.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleLightSwitch { + OFF = 0, + ON = 1, + DAYTIME_RUNNING = 2, + AUTOMATIC = 0x100, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleOilLevel.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleOilLevel.aidl new file mode 100644 index 0000000000..f2eb5aa913 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleOilLevel.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleOilLevel { + CRITICALLY_LOW = 0, + LOW = 1, + NORMAL = 2, + HIGH = 3, + ERROR = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleProperty.aidl new file mode 100644 index 0000000000..be8d3ac6ab --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -0,0 +1,304 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleProperty { + INVALID = 0x00000000, + INFO_VIN = (((0x0100 + 0x10000000) + 0x01000000) + 0x00100000) /* 286261504 */, + INFO_MAKE = (((0x0101 + 0x10000000) + 0x01000000) + 0x00100000) /* 286261505 */, + INFO_MODEL = (((0x0102 + 0x10000000) + 0x01000000) + 0x00100000) /* 286261506 */, + INFO_MODEL_YEAR = (((0x0103 + 0x10000000) + 0x01000000) + 0x00400000) /* 289407235 */, + INFO_FUEL_CAPACITY = (((0x0104 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504388 */, + INFO_FUEL_TYPE = (((0x0105 + 0x10000000) + 0x01000000) + 0x00410000) /* 289472773 */, + INFO_EV_BATTERY_CAPACITY = (((0x0106 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504390 */, + INFO_EV_CONNECTOR_TYPE = (((0x0107 + 0x10000000) + 0x01000000) + 0x00410000) /* 289472775 */, + INFO_FUEL_DOOR_LOCATION = (((0x0108 + 0x10000000) + 0x01000000) + 0x00400000) /* 289407240 */, + INFO_EV_PORT_LOCATION = (((0x0109 + 0x10000000) + 0x01000000) + 0x00400000) /* 289407241 */, + INFO_DRIVER_SEAT = (((0x010A + 0x10000000) + 0x05000000) + 0x00400000) /* 356516106 */, + INFO_EXTERIOR_DIMENSIONS = (((0x010B + 0x10000000) + 0x01000000) + 0x00410000) /* 289472779 */, + INFO_MULTI_EV_PORT_LOCATIONS = (((0x010C + 0x10000000) + 0x01000000) + 0x00410000) /* 289472780 */, + PERF_ODOMETER = (((0x0204 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504644 */, + PERF_VEHICLE_SPEED = (((0x0207 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504647 */, + PERF_VEHICLE_SPEED_DISPLAY = (((0x0208 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504648 */, + PERF_STEERING_ANGLE = (((0x0209 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504649 */, + PERF_REAR_STEERING_ANGLE = (((0x0210 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504656 */, + ENGINE_COOLANT_TEMP = (((0x0301 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504897 */, + ENGINE_OIL_LEVEL = (((0x0303 + 0x10000000) + 0x01000000) + 0x00400000) /* 289407747 */, + ENGINE_OIL_TEMP = (((0x0304 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504900 */, + ENGINE_RPM = (((0x0305 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504901 */, + WHEEL_TICK = (((0x0306 + 0x10000000) + 0x01000000) + 0x00510000) /* 290521862 */, + FUEL_LEVEL = (((0x0307 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504903 */, + FUEL_DOOR_OPEN = (((0x0308 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310600 */, + EV_BATTERY_LEVEL = (((0x0309 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504905 */, + EV_CURRENT_BATTERY_CAPACITY = (((0x030D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT) /* 291504909 */, + EV_CHARGE_PORT_OPEN = (((0x030A + 0x10000000) + 0x01000000) + 0x00200000) /* 287310602 */, + EV_CHARGE_PORT_CONNECTED = (((0x030B + 0x10000000) + 0x01000000) + 0x00200000) /* 287310603 */, + EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = (((0x030C + 0x10000000) + 0x01000000) + 0x00600000) /* 291504908 */, + RANGE_REMAINING = (((0x0308 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504904 */, + EV_BATTERY_AVERAGE_TEMPERATURE = (((0x030E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT) /* 291504910 */, + TIRE_PRESSURE = (((0x0309 + 0x10000000) + 0x07000000) + 0x00600000) /* 392168201 */, + CRITICALLY_LOW_TIRE_PRESSURE = (((0x030A + 0x10000000) + 0x07000000) + 0x00600000) /* 392168202 */, + ENGINE_IDLE_AUTO_STOP_ENABLED = (((0x0320 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287310624 */, + IMPACT_DETECTED = (((0x0330 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289407792 */, + GEAR_SELECTION = (((0x0400 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408000 */, + CURRENT_GEAR = (((0x0401 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408001 */, + PARKING_BRAKE_ON = (((0x0402 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310850 */, + PARKING_BRAKE_AUTO_APPLY = (((0x0403 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310851 */, + EV_BRAKE_REGENERATION_LEVEL = (((0x040C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289408012 */, + FUEL_LEVEL_LOW = (((0x0405 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310853 */, + NIGHT_MODE = (((0x0407 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310855 */, + TURN_SIGNAL_STATE = (((0x0408 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408008 */, + IGNITION_STATE = (((0x0409 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408009 */, + ABS_ACTIVE = (((0x040A + 0x10000000) + 0x01000000) + 0x00200000) /* 287310858 */, + TRACTION_CONTROL_ACTIVE = (((0x040B + 0x10000000) + 0x01000000) + 0x00200000) /* 287310859 */, + EV_STOPPING_MODE = (((0x040D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289408013 */, + ELECTRONIC_STABILITY_CONTROL_ENABLED = (((0x040E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287310862 */, + ELECTRONIC_STABILITY_CONTROL_STATE = (((0x040F + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289408015 */, + HVAC_FAN_SPEED = (((0x0500 + 0x10000000) + 0x05000000) + 0x00400000) /* 356517120 */, + HVAC_FAN_DIRECTION = (((0x0501 + 0x10000000) + 0x05000000) + 0x00400000) /* 356517121 */, + HVAC_TEMPERATURE_CURRENT = (((0x0502 + 0x10000000) + 0x05000000) + 0x00600000) /* 358614274 */, + HVAC_TEMPERATURE_SET = (((0x0503 + 0x10000000) + 0x05000000) + 0x00600000) /* 358614275 */, + HVAC_DEFROSTER = (((0x0504 + 0x10000000) + 0x03000000) + 0x00200000) /* 320865540 */, + HVAC_AC_ON = (((0x0505 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419973 */, + HVAC_MAX_AC_ON = (((0x0506 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419974 */, + HVAC_MAX_DEFROST_ON = (((0x0507 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419975 */, + HVAC_RECIRC_ON = (((0x0508 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419976 */, + HVAC_DUAL_ON = (((0x0509 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419977 */, + HVAC_AUTO_ON = (((0x050A + 0x10000000) + 0x05000000) + 0x00200000) /* 354419978 */, + HVAC_SEAT_TEMPERATURE = (((0x050B + 0x10000000) + 0x05000000) + 0x00400000) /* 356517131 */, + HVAC_SIDE_MIRROR_HEAT = (((0x050C + 0x10000000) + 0x04000000) + 0x00400000) /* 339739916 */, + HVAC_STEERING_WHEEL_HEAT = (((0x050D + 0x10000000) + 0x01000000) + 0x00400000) /* 289408269 */, + HVAC_TEMPERATURE_DISPLAY_UNITS = (((0x050E + 0x10000000) + 0x01000000) + 0x00400000) /* 289408270 */, + HVAC_ACTUAL_FAN_SPEED_RPM = (((0x050F + 0x10000000) + 0x05000000) + 0x00400000) /* 356517135 */, + HVAC_POWER_ON = (((0x0510 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419984 */, + HVAC_FAN_DIRECTION_AVAILABLE = (((0x0511 + 0x10000000) + 0x05000000) + 0x00410000) /* 356582673 */, + HVAC_AUTO_RECIRC_ON = (((0x0512 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419986 */, + HVAC_SEAT_VENTILATION = (((0x0513 + 0x10000000) + 0x05000000) + 0x00400000) /* 356517139 */, + HVAC_ELECTRIC_DEFROSTER_ON = (((0x0514 + 0x10000000) + 0x03000000) + 0x00200000) /* 320865556 */, + HVAC_TEMPERATURE_VALUE_SUGGESTION = (((0x0515 + 0x10000000) + 0x01000000) + 0x00610000) /* 291570965 */, + DISTANCE_DISPLAY_UNITS = (((0x0600 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408512 */, + FUEL_VOLUME_DISPLAY_UNITS = (((0x0601 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408513 */, + TIRE_PRESSURE_DISPLAY_UNITS = (((0x0602 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408514 */, + EV_BATTERY_DISPLAY_UNITS = (((0x0603 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408515 */, + FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = (((0x0604 + 0x10000000) + 0x01000000) + 0x00200000) /* 287311364 */, + VEHICLE_SPEED_DISPLAY_UNITS = (((0x0605 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408517 */, + EXTERNAL_CAR_TIME = (((0x0608 + 0x10000000) + 0x01000000) + 0x00500000) /* 290457096 */, + ANDROID_EPOCH_TIME = (((0x0606 + 0x10000000) + 0x01000000) + 0x00500000) /* 290457094 */, + STORAGE_ENCRYPTION_BINDING_SEED = (((0x0607 + 0x10000000) + 0x01000000) + 0x00700000) /* 292554247 */, + ENV_OUTSIDE_TEMPERATURE = (((0x0703 + 0x10000000) + 0x01000000) + 0x00600000) /* 291505923 */, + AP_POWER_STATE_REQ = (((0x0A00 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475072 */, + AP_POWER_STATE_REPORT = (((0x0A01 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475073 */, + AP_POWER_BOOTUP_REASON = (((0x0A02 + 0x10000000) + 0x01000000) + 0x00400000) /* 289409538 */, + DISPLAY_BRIGHTNESS = (((0x0A03 + 0x10000000) + 0x01000000) + 0x00400000) /* 289409539 */, + PER_DISPLAY_BRIGHTNESS = (((0x0A04 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475076 */, + VALET_MODE_ENABLED = (((0x0A05 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312389 */, + HEAD_UP_DISPLAY_ENABLED = (((0x0A06 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421254 */, + HW_KEY_INPUT = (((0x0A10 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475088 */, + HW_KEY_INPUT_V2 = (((0x0A11 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 367004177 */, + HW_MOTION_INPUT = (((0x0A12 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 367004178 */, + HW_ROTARY_INPUT = (((0x0A20 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475104 */, + HW_CUSTOM_INPUT = (((0X0A30 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475120 */, + DOOR_POS = (((0x0B00 + 0x10000000) + 0x06000000) + 0x00400000) /* 373295872 */, + DOOR_MOVE = (((0x0B01 + 0x10000000) + 0x06000000) + 0x00400000) /* 373295873 */, + DOOR_LOCK = (((0x0B02 + 0x10000000) + 0x06000000) + 0x00200000) /* 371198722 */, + DOOR_CHILD_LOCK_ENABLED = (((0x0B03 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.DOOR) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 371198723 */, + MIRROR_Z_POS = (((0x0B40 + 0x10000000) + 0x04000000) + 0x00400000) /* 339741504 */, + MIRROR_Z_MOVE = (((0x0B41 + 0x10000000) + 0x04000000) + 0x00400000) /* 339741505 */, + MIRROR_Y_POS = (((0x0B42 + 0x10000000) + 0x04000000) + 0x00400000) /* 339741506 */, + MIRROR_Y_MOVE = (((0x0B43 + 0x10000000) + 0x04000000) + 0x00400000) /* 339741507 */, + MIRROR_LOCK = (((0x0B44 + 0x10000000) + 0x01000000) + 0x00200000) /* 287312708 */, + MIRROR_FOLD = (((0x0B45 + 0x10000000) + 0x01000000) + 0x00200000) /* 287312709 */, + MIRROR_AUTO_FOLD_ENABLED = (((0x0B46 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.MIRROR) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 337644358 */, + MIRROR_AUTO_TILT_ENABLED = (((0x0B47 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.MIRROR) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 337644359 */, + SEAT_MEMORY_SELECT = (((0x0B80 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518784 */, + SEAT_MEMORY_SET = (((0x0B81 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518785 */, + SEAT_BELT_BUCKLED = (((0x0B82 + 0x10000000) + 0x05000000) + 0x00200000) /* 354421634 */, + SEAT_BELT_HEIGHT_POS = (((0x0B83 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518787 */, + SEAT_BELT_HEIGHT_MOVE = (((0x0B84 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518788 */, + SEAT_FORE_AFT_POS = (((0x0B85 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518789 */, + SEAT_FORE_AFT_MOVE = (((0x0B86 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518790 */, + SEAT_BACKREST_ANGLE_1_POS = (((0x0B87 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518791 */, + SEAT_BACKREST_ANGLE_1_MOVE = (((0x0B88 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518792 */, + SEAT_BACKREST_ANGLE_2_POS = (((0x0B89 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518793 */, + SEAT_BACKREST_ANGLE_2_MOVE = (((0x0B8A + 0x10000000) + 0x05000000) + 0x00400000) /* 356518794 */, + SEAT_HEIGHT_POS = (((0x0B8B + 0x10000000) + 0x05000000) + 0x00400000) /* 356518795 */, + SEAT_HEIGHT_MOVE = (((0x0B8C + 0x10000000) + 0x05000000) + 0x00400000) /* 356518796 */, + SEAT_DEPTH_POS = (((0x0B8D + 0x10000000) + 0x05000000) + 0x00400000) /* 356518797 */, + SEAT_DEPTH_MOVE = (((0x0B8E + 0x10000000) + 0x05000000) + 0x00400000) /* 356518798 */, + SEAT_TILT_POS = (((0x0B8F + 0x10000000) + 0x05000000) + 0x00400000) /* 356518799 */, + SEAT_TILT_MOVE = (((0x0B90 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518800 */, + SEAT_LUMBAR_FORE_AFT_POS = (((0x0B91 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518801 */, + SEAT_LUMBAR_FORE_AFT_MOVE = (((0x0B92 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518802 */, + SEAT_LUMBAR_SIDE_SUPPORT_POS = (((0x0B93 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518803 */, + SEAT_LUMBAR_SIDE_SUPPORT_MOVE = (((0x0B94 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518804 */, + SEAT_HEADREST_HEIGHT_POS = (((0x0B95 + 0x10000000) + 0x01000000) + 0x00400000) /* 289409941 */, + SEAT_HEADREST_HEIGHT_POS_V2 = (((0x0BA4 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518820 */, + SEAT_HEADREST_HEIGHT_MOVE = (((0x0B96 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518806 */, + SEAT_HEADREST_ANGLE_POS = (((0x0B97 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518807 */, + SEAT_HEADREST_ANGLE_MOVE = (((0x0B98 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518808 */, + SEAT_HEADREST_FORE_AFT_POS = (((0x0B99 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518809 */, + SEAT_HEADREST_FORE_AFT_MOVE = (((0x0B9A + 0x10000000) + 0x05000000) + 0x00400000) /* 356518810 */, + SEAT_FOOTWELL_LIGHTS_STATE = (((0x0B9B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518811 */, + SEAT_FOOTWELL_LIGHTS_SWITCH = (((0x0B9C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518812 */, + SEAT_EASY_ACCESS_ENABLED = (((0x0B9D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421661 */, + SEAT_AIRBAG_ENABLED = (((0x0B9E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421662 */, + SEAT_AIRBAGS_DEPLOYED = (((0x0BA5 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518821 */, + SEAT_CUSHION_SIDE_SUPPORT_POS = (((0x0B9F + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518815 */, + SEAT_CUSHION_SIDE_SUPPORT_MOVE = (((0x0BA0 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518816 */, + SEAT_LUMBAR_VERTICAL_POS = (((0x0BA1 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518817 */, + SEAT_LUMBAR_VERTICAL_MOVE = (((0x0BA2 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518818 */, + SEAT_WALK_IN_POS = (((0x0BA3 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518819 */, + SEAT_BELT_PRETENSIONER_DEPLOYED = (((0x0BA6 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421670 */, + SEAT_OCCUPANCY = (((0x0BB0 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518832 */, + WINDOW_POS = (((0x0BC0 + 0x10000000) + 0x03000000) + 0x00400000) /* 322964416 */, + WINDOW_MOVE = (((0x0BC1 + 0x10000000) + 0x03000000) + 0x00400000) /* 322964417 */, + WINDOW_LOCK = (((0x0BC4 + 0x10000000) + 0x03000000) + 0x00200000) /* 320867268 */, + WINDSHIELD_WIPERS_PERIOD = (((0x0BC5 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.WINDOW) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 322964421 */, + WINDSHIELD_WIPERS_STATE = (((0x0BC6 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.WINDOW) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 322964422 */, + WINDSHIELD_WIPERS_SWITCH = (((0x0BC7 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.WINDOW) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 322964423 */, + STEERING_WHEEL_DEPTH_POS = (((0x0BE0 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410016 */, + STEERING_WHEEL_DEPTH_MOVE = (((0x0BE1 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410017 */, + STEERING_WHEEL_HEIGHT_POS = (((0x0BE2 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410018 */, + STEERING_WHEEL_HEIGHT_MOVE = (((0x0BE3 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410019 */, + STEERING_WHEEL_THEFT_LOCK_ENABLED = (((0x0BE4 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312868 */, + STEERING_WHEEL_LOCKED = (((0x0BE5 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312869 */, + STEERING_WHEEL_EASY_ACCESS_ENABLED = (((0x0BE6 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312870 */, + GLOVE_BOX_DOOR_POS = (((0x0BF0 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518896 */, + GLOVE_BOX_LOCKED = (((0x0BF1 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421745 */, + VEHICLE_MAP_SERVICE = (((0x0C00 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299895808 */, + LOCATION_CHARACTERIZATION = (((0x0C10 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410064 */, + ULTRASONICS_SENSOR_POSITION = (((0x0C20 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916128 */, + ULTRASONICS_SENSOR_ORIENTATION = (((0x0C21 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT_VEC) /* 409013281 */, + ULTRASONICS_SENSOR_FIELD_OF_VIEW = (((0x0C22 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916130 */, + ULTRASONICS_SENSOR_DETECTION_RANGE = (((0x0C23 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916131 */, + ULTRASONICS_SENSOR_SUPPORTED_RANGES = (((0x0C24 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916132 */, + ULTRASONICS_SENSOR_MEASURED_DISTANCE = (((0x0C25 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916133 */, + OBD2_LIVE_FRAME = (((0x0D00 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896064 */, + OBD2_FREEZE_FRAME = (((0x0D01 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896065 */, + OBD2_FREEZE_FRAME_INFO = (((0x0D02 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896066 */, + OBD2_FREEZE_FRAME_CLEAR = (((0x0D03 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896067 */, + HEADLIGHTS_STATE = (((0x0E00 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410560 */, + HIGH_BEAM_LIGHTS_STATE = (((0x0E01 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410561 */, + FOG_LIGHTS_STATE = (((0x0E02 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410562 */, + HAZARD_LIGHTS_STATE = (((0x0E03 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410563 */, + HEADLIGHTS_SWITCH = (((0x0E10 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410576 */, + HIGH_BEAM_LIGHTS_SWITCH = (((0x0E11 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410577 */, + FOG_LIGHTS_SWITCH = (((0x0E12 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410578 */, + HAZARD_LIGHTS_SWITCH = (((0x0E13 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410579 */, + CABIN_LIGHTS_STATE = (((0x0F01 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410817 */, + CABIN_LIGHTS_SWITCH = (((0x0F02 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410818 */, + READING_LIGHTS_STATE = (((0x0F03 + 0x10000000) + 0x05000000) + 0x00400000) /* 356519683 */, + READING_LIGHTS_SWITCH = (((0x0F04 + 0x10000000) + 0x05000000) + 0x00400000) /* 356519684 */, + STEERING_WHEEL_LIGHTS_STATE = (((0x0F0C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410828 */, + STEERING_WHEEL_LIGHTS_SWITCH = (((0x0F0D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410829 */, + SUPPORT_CUSTOMIZE_VENDOR_PERMISSION = (((0x0F05 + 0x10000000) + 0x01000000) + 0x00200000) /* 287313669 */, + DISABLED_OPTIONAL_FEATURES = (((0x0F06 + 0x10000000) + 0x01000000) + 0x00100000) /* 286265094 */, + INITIAL_USER_INFO = (((0x0F07 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896583 */, + SWITCH_USER = (((0x0F08 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896584 */, + CREATE_USER = (((0x0F09 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896585 */, + REMOVE_USER = (((0x0F0A + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896586 */, + USER_IDENTIFICATION_ASSOCIATION = (((0x0F0B + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896587 */, + EVS_SERVICE_REQUEST = (((0x0F10 + 0x10000000) + 0x01000000) + 0x00410000) /* 289476368 */, + POWER_POLICY_REQ = (((0x0F21 + 0x10000000) + 0x01000000) + 0x00100000) /* 286265121 */, + POWER_POLICY_GROUP_REQ = (((0x0F22 + 0x10000000) + 0x01000000) + 0x00100000) /* 286265122 */, + CURRENT_POWER_POLICY = (((0x0F23 + 0x10000000) + 0x01000000) + 0x00100000) /* 286265123 */, + WATCHDOG_ALIVE = (((0xF31 + 0x10000000) + 0x01000000) + 0x00500000) /* 290459441 */, + WATCHDOG_TERMINATED_PROCESS = (((0x0F32 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896626 */, + VHAL_HEARTBEAT = (((0x0F33 + 0x10000000) + 0x01000000) + 0x00500000) /* 290459443 */, + CLUSTER_SWITCH_UI = (((0x0F34 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410868 */, + CLUSTER_DISPLAY_STATE = (((0x0F35 + 0x10000000) + 0x01000000) + 0x00410000) /* 289476405 */, + CLUSTER_REPORT_STATE = (((0x0F36 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896630 */, + CLUSTER_REQUEST_DISPLAY = (((0x0F37 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410871 */, + CLUSTER_NAVIGATION_STATE = (((0x0F38 + 0x10000000) + 0x01000000) + 0x00700000) /* 292556600 */, + ELECTRONIC_TOLL_COLLECTION_CARD_TYPE = (((0x0F39 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410873 */, + ELECTRONIC_TOLL_COLLECTION_CARD_STATUS = (((0x0F3A + 0x10000000) + 0x01000000) + 0x00400000) /* 289410874 */, + FRONT_FOG_LIGHTS_STATE = (((0x0F3B + 0x10000000) + 0x01000000) + 0x00400000) /* 289410875 */, + FRONT_FOG_LIGHTS_SWITCH = (((0x0F3C + 0x10000000) + 0x01000000) + 0x00400000) /* 289410876 */, + REAR_FOG_LIGHTS_STATE = (((0x0F3D + 0x10000000) + 0x01000000) + 0x00400000) /* 289410877 */, + REAR_FOG_LIGHTS_SWITCH = (((0x0F3E + 0x10000000) + 0x01000000) + 0x00400000) /* 289410878 */, + EV_CHARGE_CURRENT_DRAW_LIMIT = (((0x0F3F + 0x10000000) + 0x01000000) + 0x00600000) /* 291508031 */, + EV_CHARGE_PERCENT_LIMIT = (((0x0F40 + 0x10000000) + 0x01000000) + 0x00600000) /* 291508032 */, + EV_CHARGE_STATE = (((0x0F41 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410881 */, + EV_CHARGE_SWITCH = (((0x0F42 + 0x10000000) + 0x01000000) + 0x00200000) /* 287313730 */, + EV_CHARGE_TIME_REMAINING = (((0x0F43 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410883 */, + EV_REGENERATIVE_BRAKING_STATE = (((0x0F44 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410884 */, + TRAILER_PRESENT = (((0x0F45 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410885 */, + VEHICLE_CURB_WEIGHT = (((0x0F46 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410886 */, + GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT = (((0x0F47 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410887 */, + SUPPORTED_PROPERTY_IDS = (((0x0F48 + 0x10000000) + 0x01000000) + 0x00410000) /* 289476424 */, + SHUTDOWN_REQUEST = (((0x0F49 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410889 */, + VEHICLE_IN_USE = (((0x0F4A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313738 */, + CLUSTER_HEARTBEAT = (((0x0F4B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 299896651 */, + VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = (((0x0F4C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410892 */, + CAMERA_SERVICE_CURRENT_STATE = (((0x0F4D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 289476429 */, + AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1000 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313920 */, + AUTOMATIC_EMERGENCY_BRAKING_STATE = (((0x1001 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411073 */, + FORWARD_COLLISION_WARNING_ENABLED = (((0x1002 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313922 */, + FORWARD_COLLISION_WARNING_STATE = (((0x1003 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411075 */, + BLIND_SPOT_WARNING_ENABLED = (((0x1004 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313924 */, + BLIND_SPOT_WARNING_STATE = (((0x1005 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.MIRROR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 339742725 */, + LANE_DEPARTURE_WARNING_ENABLED = (((0x1006 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313926 */, + LANE_DEPARTURE_WARNING_STATE = (((0x1007 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411079 */, + LANE_KEEP_ASSIST_ENABLED = (((0x1008 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313928 */, + LANE_KEEP_ASSIST_STATE = (((0x1009 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411081 */, + LANE_CENTERING_ASSIST_ENABLED = (((0x100A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313930 */, + LANE_CENTERING_ASSIST_COMMAND = (((0x100B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411083 */, + LANE_CENTERING_ASSIST_STATE = (((0x100C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411084 */, + EMERGENCY_LANE_KEEP_ASSIST_ENABLED = (((0x100D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313933 */, + EMERGENCY_LANE_KEEP_ASSIST_STATE = (((0x100E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411086 */, + CRUISE_CONTROL_ENABLED = (((0x100F + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313935 */, + CRUISE_CONTROL_TYPE = (((0x1010 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411088 */, + CRUISE_CONTROL_STATE = (((0x1011 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411089 */, + CRUISE_CONTROL_COMMAND = (((0x1012 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411090 */, + CRUISE_CONTROL_TARGET_SPEED = (((0x1013 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT) /* 291508243 */, + ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP = (((0x1014 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411092 */, + ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE = (((0x1015 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411093 */, + HANDS_ON_DETECTION_ENABLED = (((0x1016 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313942 */, + HANDS_ON_DETECTION_DRIVER_STATE = (((0x1017 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411095 */, + HANDS_ON_DETECTION_WARNING = (((0x1018 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411096 */, + DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED = (((0x1019 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313945 */, + DRIVER_DROWSINESS_ATTENTION_STATE = (((0x101A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411098 */, + DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED = (((0x101B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313947 */, + DRIVER_DROWSINESS_ATTENTION_WARNING = (((0x101C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411100 */, + DRIVER_DISTRACTION_SYSTEM_ENABLED = (((0x101D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313949 */, + DRIVER_DISTRACTION_STATE = (((0x101E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411102 */, + DRIVER_DISTRACTION_WARNING_ENABLED = (((0x101F + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313951 */, + DRIVER_DISTRACTION_WARNING = (((0x1020 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411104 */, + LOW_SPEED_COLLISION_WARNING_ENABLED = (((0x1021 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313953 */, + LOW_SPEED_COLLISION_WARNING_STATE = (((0x1022 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411106 */, + CROSS_TRAFFIC_MONITORING_ENABLED = (((0x1023 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313955 */, + CROSS_TRAFFIC_MONITORING_WARNING_STATE = (((0x1024 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411108 */, + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1025 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313957 */, + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE = (((0x1026 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411110 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyGroup.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyGroup.aidl new file mode 100644 index 0000000000..b4f6850bbf --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyGroup.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyGroup { + SYSTEM = 0x10000000, + VENDOR = 0x20000000, + BACKPORTED = 0x30000000, + MASK = 0xf0000000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyType.aidl new file mode 100644 index 0000000000..7525cbbf69 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyType.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyType { + STRING = 0x00100000, + BOOLEAN = 0x00200000, + INT32 = 0x00400000, + INT32_VEC = 0x00410000, + INT64 = 0x00500000, + INT64_VEC = 0x00510000, + FLOAT = 0x00600000, + FLOAT_VEC = 0x00610000, + BYTES = 0x00700000, + MIXED = 0x00e00000, + MASK = 0x00ff0000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleSeatOccupancyState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleSeatOccupancyState.aidl new file mode 100644 index 0000000000..3e870e8925 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleSeatOccupancyState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleSeatOccupancyState { + UNKNOWN = 0, + VACANT = 1, + OCCUPIED = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleTurnSignal.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleTurnSignal.aidl new file mode 100644 index 0000000000..0431b45b9a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleTurnSignal.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleTurnSignal { + NONE = 0x00, + RIGHT = 0x01, + LEFT = 0x02, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleUnit.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleUnit.aidl new file mode 100644 index 0000000000..9aca98bec2 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleUnit.aidl @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleUnit { + SHOULD_NOT_USE = 0x000, + METER_PER_SEC = 0x01, + RPM = 0x02, + HERTZ = 0x03, + PERCENTILE = 0x10, + MILLIMETER = 0x20, + METER = 0x21, + KILOMETER = 0x23, + MILE = 0x24, + CELSIUS = 0x30, + FAHRENHEIT = 0x31, + KELVIN = 0x32, + MILLILITER = 0x40, + LITER = 0x41, + GALLON = 0x42, + US_GALLON = 0x42, + IMPERIAL_GALLON = 0x43, + NANO_SECS = 0x50, + MILLI_SECS = 0x51, + SECS = 0x53, + YEAR = 0x59, + WATT_HOUR = 0x60, + MILLIAMPERE = 0x61, + MILLIVOLT = 0x62, + MILLIWATTS = 0x63, + AMPERE_HOURS = 0x64, + KILOWATT_HOUR = 0x65, + AMPERE = 0x66, + KILOPASCAL = 0x70, + PSI = 0x71, + BAR = 0x72, + DEGREES = 0x80, + MILES_PER_HOUR = 0x90, + KILOMETERS_PER_HOUR = 0x91, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleVendorPermission.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleVendorPermission.aidl new file mode 100644 index 0000000000..3aa326c9c7 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleVendorPermission.aidl @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleVendorPermission { + PERMISSION_DEFAULT = 0x00000000, + PERMISSION_SET_VENDOR_CATEGORY_WINDOW = 0X00000001, + PERMISSION_GET_VENDOR_CATEGORY_WINDOW = 0x00000002, + PERMISSION_SET_VENDOR_CATEGORY_DOOR = 0x00000003, + PERMISSION_GET_VENDOR_CATEGORY_DOOR = 0x00000004, + PERMISSION_SET_VENDOR_CATEGORY_SEAT = 0x00000005, + PERMISSION_GET_VENDOR_CATEGORY_SEAT = 0x00000006, + PERMISSION_SET_VENDOR_CATEGORY_MIRROR = 0x00000007, + PERMISSION_GET_VENDOR_CATEGORY_MIRROR = 0x00000008, + PERMISSION_SET_VENDOR_CATEGORY_INFO = 0x00000009, + PERMISSION_GET_VENDOR_CATEGORY_INFO = 0x0000000A, + PERMISSION_SET_VENDOR_CATEGORY_ENGINE = 0x0000000B, + PERMISSION_GET_VENDOR_CATEGORY_ENGINE = 0x0000000C, + PERMISSION_SET_VENDOR_CATEGORY_HVAC = 0x0000000D, + PERMISSION_GET_VENDOR_CATEGORY_HVAC = 0x0000000E, + PERMISSION_SET_VENDOR_CATEGORY_LIGHT = 0x0000000F, + PERMISSION_GET_VENDOR_CATEGORY_LIGHT = 0x00000010, + PERMISSION_SET_VENDOR_CATEGORY_1 = 0x00010000, + PERMISSION_GET_VENDOR_CATEGORY_1 = 0x00011000, + PERMISSION_SET_VENDOR_CATEGORY_2 = 0x00020000, + PERMISSION_GET_VENDOR_CATEGORY_2 = 0x00021000, + PERMISSION_SET_VENDOR_CATEGORY_3 = 0x00030000, + PERMISSION_GET_VENDOR_CATEGORY_3 = 0x00031000, + PERMISSION_SET_VENDOR_CATEGORY_4 = 0x00040000, + PERMISSION_GET_VENDOR_CATEGORY_4 = 0x00041000, + PERMISSION_SET_VENDOR_CATEGORY_5 = 0x00050000, + PERMISSION_GET_VENDOR_CATEGORY_5 = 0x00051000, + PERMISSION_SET_VENDOR_CATEGORY_6 = 0x00060000, + PERMISSION_GET_VENDOR_CATEGORY_6 = 0x00061000, + PERMISSION_SET_VENDOR_CATEGORY_7 = 0x00070000, + PERMISSION_GET_VENDOR_CATEGORY_7 = 0x00071000, + PERMISSION_SET_VENDOR_CATEGORY_8 = 0x00080000, + PERMISSION_GET_VENDOR_CATEGORY_8 = 0x00081000, + PERMISSION_SET_VENDOR_CATEGORY_9 = 0x00090000, + PERMISSION_GET_VENDOR_CATEGORY_9 = 0x00091000, + PERMISSION_SET_VENDOR_CATEGORY_10 = 0x000A0000, + PERMISSION_GET_VENDOR_CATEGORY_10 = 0x000A1000, + PERMISSION_NOT_ACCESSIBLE = 0xF0000000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsAvailabilityStateIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsAvailabilityStateIntegerValuesIndex.aidl new file mode 100644 index 0000000000..0dcfbc4a5d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsAvailabilityStateIntegerValuesIndex.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsAvailabilityStateIntegerValuesIndex { + MESSAGE_TYPE = 0, + SEQUENCE_NUMBER = 1, + NUMBER_OF_ASSOCIATED_LAYERS = 2, + LAYERS_START = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsBaseMessageIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsBaseMessageIntegerValuesIndex.aidl new file mode 100644 index 0000000000..45514d081a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsBaseMessageIntegerValuesIndex.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsBaseMessageIntegerValuesIndex { + MESSAGE_TYPE = 0, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageType.aidl new file mode 100644 index 0000000000..1248c069ce --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageType.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsMessageType { + SUBSCRIBE = 1, + SUBSCRIBE_TO_PUBLISHER = 2, + UNSUBSCRIBE = 3, + UNSUBSCRIBE_TO_PUBLISHER = 4, + OFFERING = 5, + AVAILABILITY_REQUEST = 6, + SUBSCRIPTIONS_REQUEST = 7, + AVAILABILITY_RESPONSE = 8, + AVAILABILITY_CHANGE = 9, + SUBSCRIPTIONS_RESPONSE = 10, + SUBSCRIPTIONS_CHANGE = 11, + DATA = 12, + PUBLISHER_ID_REQUEST = 13, + PUBLISHER_ID_RESPONSE = 14, + PUBLISHER_INFORMATION_REQUEST = 15, + PUBLISHER_INFORMATION_RESPONSE = 16, + START_SESSION = 17, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.aidl new file mode 100644 index 0000000000..8b0e3a5ef2 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsMessageWithLayerAndPublisherIdIntegerValuesIndex { + MESSAGE_TYPE = 0, + LAYER_TYPE = 1, + LAYER_SUBTYPE = 2, + LAYER_VERSION = 3, + PUBLISHER_ID = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerIntegerValuesIndex.aidl new file mode 100644 index 0000000000..65dd4ae395 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerIntegerValuesIndex.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsMessageWithLayerIntegerValuesIndex { + MESSAGE_TYPE = 0, + LAYER_TYPE = 1, + LAYER_SUBTYPE = 2, + LAYER_VERSION = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsOfferingMessageIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsOfferingMessageIntegerValuesIndex.aidl new file mode 100644 index 0000000000..fc2a9c1844 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsOfferingMessageIntegerValuesIndex.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsOfferingMessageIntegerValuesIndex { + MESSAGE_TYPE = 0, + PUBLISHER_ID = 1, + NUMBER_OF_OFFERS = 2, + OFFERING_START = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsPublisherInformationIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsPublisherInformationIntegerValuesIndex.aidl new file mode 100644 index 0000000000..a9b017fdb1 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsPublisherInformationIntegerValuesIndex.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsPublisherInformationIntegerValuesIndex { + MESSAGE_TYPE = 0, + PUBLISHER_ID = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsStartSessionMessageIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsStartSessionMessageIntegerValuesIndex.aidl new file mode 100644 index 0000000000..d942bc8392 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsStartSessionMessageIntegerValuesIndex.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsStartSessionMessageIntegerValuesIndex { + MESSAGE_TYPE = 0, + SERVICE_ID = 1, + CLIENT_ID = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsSubscriptionsStateIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsSubscriptionsStateIntegerValuesIndex.aidl new file mode 100644 index 0000000000..796d7f722c --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsSubscriptionsStateIntegerValuesIndex.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsSubscriptionsStateIntegerValuesIndex { + MESSAGE_TYPE = 0, + SEQUENCE_NUMBER = 1, + NUMBER_OF_LAYERS = 2, + NUMBER_OF_ASSOCIATED_LAYERS = 3, + SUBSCRIPTIONS_START = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersState.aidl new file mode 100644 index 0000000000..d0c1e8d70d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum WindshieldWipersState { + OTHER = 0, + OFF = 1, + ON = 2, + SERVICE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersSwitch.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersSwitch.aidl new file mode 100644 index 0000000000..6c170fe6a4 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersSwitch.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum WindshieldWipersSwitch { + OTHER = 0, + OFF = 1, + MIST = 2, + INTERMITTENT_LEVEL_1 = 3, + INTERMITTENT_LEVEL_2 = 4, + INTERMITTENT_LEVEL_3 = 5, + INTERMITTENT_LEVEL_4 = 6, + INTERMITTENT_LEVEL_5 = 7, + CONTINUOUS_LEVEL_1 = 8, + CONTINUOUS_LEVEL_2 = 9, + CONTINUOUS_LEVEL_3 = 10, + CONTINUOUS_LEVEL_4 = 11, + CONTINUOUS_LEVEL_5 = 12, + AUTO = 13, + SERVICE = 14, +} diff --git a/biometrics/common/aidl/Android.bp b/biometrics/common/aidl/Android.bp index 8502a82ee7..246bcf2a40 100644 --- a/biometrics/common/aidl/Android.bp +++ b/biometrics/common/aidl/Android.bp @@ -13,7 +13,7 @@ aidl_interface { srcs: [ "android/hardware/biometrics/common/*.aidl", ], - frozen: false, + frozen: true, stability: "vintf", backend: { java: { @@ -36,6 +36,10 @@ aidl_interface { version: "3", imports: [], }, + { + version: "4", + imports: [], + }, ], } diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/.hash b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/.hash new file mode 100644 index 0000000000..fce53f1e81 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/.hash @@ -0,0 +1 @@ +8a6cd86630181a4df6f20056259ec200ffe39209 diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/AuthenticateReason.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/AuthenticateReason.aidl new file mode 100644 index 0000000000..f639ead601 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/AuthenticateReason.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +union AuthenticateReason { + android.hardware.biometrics.common.AuthenticateReason.Vendor vendorAuthenticateReason; + android.hardware.biometrics.common.AuthenticateReason.Face faceAuthenticateReason; + android.hardware.biometrics.common.AuthenticateReason.Fingerprint fingerprintAuthenticateReason; + @VintfStability + parcelable Vendor { + ParcelableHolder extension; + } + @Backing(type="int") @VintfStability + enum Fingerprint { + UNKNOWN, + } + @Backing(type="int") @VintfStability + enum Face { + UNKNOWN, + STARTED_WAKING_UP, + PRIMARY_BOUNCER_SHOWN, + ASSISTANT_VISIBLE, + ALTERNATE_BIOMETRIC_BOUNCER_SHOWN, + NOTIFICATION_PANEL_CLICKED, + OCCLUDING_APP_REQUESTED, + PICK_UP_GESTURE_TRIGGERED, + QS_EXPANDED, + SWIPE_UP_ON_BOUNCER, + UDFPS_POINTER_DOWN, + } +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/CommonProps.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/CommonProps.aidl new file mode 100644 index 0000000000..1eb8541352 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/CommonProps.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +parcelable CommonProps { + int sensorId; + android.hardware.biometrics.common.SensorStrength sensorStrength = android.hardware.biometrics.common.SensorStrength.CONVENIENCE; + int maxEnrollmentsPerUser; + android.hardware.biometrics.common.ComponentInfo[] componentInfo; +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ComponentInfo.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ComponentInfo.aidl new file mode 100644 index 0000000000..471ed2ba37 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ComponentInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +parcelable ComponentInfo { + String componentId; + String hardwareVersion; + String firmwareVersion; + String serialNumber; + String softwareVersion; +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/DisplayState.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/DisplayState.aidl new file mode 100644 index 0000000000..176e8d603b --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/DisplayState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum DisplayState { + UNKNOWN, + LOCKSCREEN, + NO_UI, + SCREENSAVER, + AOD, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/FoldState.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/FoldState.aidl new file mode 100644 index 0000000000..06baf00638 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/FoldState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum FoldState { + UNKNOWN, + HALF_OPENED, + FULLY_OPENED, + FULLY_CLOSED, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ICancellationSignal.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ICancellationSignal.aidl new file mode 100644 index 0000000000..670114f10a --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ICancellationSignal.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +interface ICancellationSignal { + oneway void cancel(); +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationContext.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationContext.aidl new file mode 100644 index 0000000000..8d913c8f10 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationContext.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +parcelable OperationContext { + int id = 0; + android.hardware.biometrics.common.OperationReason reason = android.hardware.biometrics.common.OperationReason.UNKNOWN; + /** + * @deprecated use displayState instead. + */ + boolean isAod = false; + boolean isCrypto = false; + android.hardware.biometrics.common.WakeReason wakeReason = android.hardware.biometrics.common.WakeReason.UNKNOWN; + android.hardware.biometrics.common.DisplayState displayState = android.hardware.biometrics.common.DisplayState.UNKNOWN; + @nullable android.hardware.biometrics.common.AuthenticateReason authenticateReason; + android.hardware.biometrics.common.FoldState foldState = android.hardware.biometrics.common.FoldState.UNKNOWN; + @nullable android.hardware.biometrics.common.OperationState operationState; +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationReason.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationReason.aidl new file mode 100644 index 0000000000..188054a45a --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationReason.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="byte") @VintfStability +enum OperationReason { + UNKNOWN, + BIOMETRIC_PROMPT, + KEYGUARD, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationState.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationState.aidl new file mode 100644 index 0000000000..fca95252fc --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationState.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +union OperationState { + android.hardware.biometrics.common.OperationState.FingerprintOperationState fingerprintOperationState; + android.hardware.biometrics.common.OperationState.FaceOperationState faceOperationState; + @VintfStability + parcelable FingerprintOperationState { + ParcelableHolder extension; + boolean isHardwareIgnoringTouches = false; + } + @VintfStability + parcelable FaceOperationState { + ParcelableHolder extension; + } +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/SensorStrength.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/SensorStrength.aidl new file mode 100644 index 0000000000..c93178167d --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/SensorStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="byte") @VintfStability +enum SensorStrength { + CONVENIENCE, + WEAK, + STRONG, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/WakeReason.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/WakeReason.aidl new file mode 100644 index 0000000000..6a08776280 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/WakeReason.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum WakeReason { + UNKNOWN, + POWER_BUTTON, + GESTURE, + WAKE_KEY, + WAKE_MOTION, + LID, + DISPLAY_GROUP_ADDED, + TAP, + LIFT, + BIOMETRIC, +} diff --git a/biometrics/fingerprint/aidl/Android.bp b/biometrics/fingerprint/aidl/Android.bp index 1a099a54cb..282a702197 100644 --- a/biometrics/fingerprint/aidl/Android.bp +++ b/biometrics/fingerprint/aidl/Android.bp @@ -48,7 +48,14 @@ aidl_interface { "android.hardware.keymaster-V4", ], }, + { + version: "4", + imports: [ + "android.hardware.biometrics.common-V4", + "android.hardware.keymaster-V4", + ], + }, ], - frozen: false, + frozen: true, } diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/.hash b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/.hash new file mode 100644 index 0000000000..cdd540ed3f --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/.hash @@ -0,0 +1 @@ +41a730a7a6b5aa9cebebce70ee5b5e509b0af6fb diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/AcquiredInfo.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/AcquiredInfo.aidl new file mode 100644 index 0000000000..7075f715fd --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/AcquiredInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@Backing(type="byte") @VintfStability +enum AcquiredInfo { + UNKNOWN, + GOOD, + PARTIAL, + INSUFFICIENT, + SENSOR_DIRTY, + TOO_SLOW, + TOO_FAST, + VENDOR, + START, + TOO_DARK, + TOO_BRIGHT, + IMMOBILE, + RETRYING_CAPTURE, + LIFT_TOO_SOON, + POWER_PRESS, +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/Error.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/Error.aidl new file mode 100644 index 0000000000..9eeaac53ec --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/Error.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@Backing(type="byte") @VintfStability +enum Error { + UNKNOWN, + HW_UNAVAILABLE, + UNABLE_TO_PROCESS, + TIMEOUT, + NO_SPACE, + CANCELED, + UNABLE_TO_REMOVE, + VENDOR, + BAD_CALIBRATION, + POWER_PRESS, +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/FingerprintSensorType.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/FingerprintSensorType.aidl new file mode 100644 index 0000000000..381aaf7365 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/FingerprintSensorType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@Backing(type="byte") @VintfStability +enum FingerprintSensorType { + UNKNOWN, + REAR, + UNDER_DISPLAY_ULTRASONIC, + UNDER_DISPLAY_OPTICAL, + POWER_BUTTON, + HOME_BUTTON, +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/IFingerprint.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/IFingerprint.aidl new file mode 100644 index 0000000000..0b6f3008ac --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/IFingerprint.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +interface IFingerprint { + android.hardware.biometrics.fingerprint.SensorProps[] getSensorProps(); + android.hardware.biometrics.fingerprint.ISession createSession(in int sensorId, in int userId, in android.hardware.biometrics.fingerprint.ISessionCallback cb); +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISession.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISession.aidl new file mode 100644 index 0000000000..feb6ba3548 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISession.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +interface ISession { + void generateChallenge(); + void revokeChallenge(in long challenge); + android.hardware.biometrics.common.ICancellationSignal enroll(in android.hardware.keymaster.HardwareAuthToken hat); + android.hardware.biometrics.common.ICancellationSignal authenticate(in long operationId); + android.hardware.biometrics.common.ICancellationSignal detectInteraction(); + void enumerateEnrollments(); + void removeEnrollments(in int[] enrollmentIds); + void getAuthenticatorId(); + void invalidateAuthenticatorId(); + void resetLockout(in android.hardware.keymaster.HardwareAuthToken hat); + void close(); + /** + * @deprecated use onPointerDownWithContext instead. + */ + void onPointerDown(in int pointerId, in int x, in int y, in float minor, in float major); + /** + * @deprecated use onPointerUpWithContext instead. + */ + void onPointerUp(in int pointerId); + void onUiReady(); + android.hardware.biometrics.common.ICancellationSignal authenticateWithContext(in long operationId, in android.hardware.biometrics.common.OperationContext context); + android.hardware.biometrics.common.ICancellationSignal enrollWithContext(in android.hardware.keymaster.HardwareAuthToken hat, in android.hardware.biometrics.common.OperationContext context); + android.hardware.biometrics.common.ICancellationSignal detectInteractionWithContext(in android.hardware.biometrics.common.OperationContext context); + void onPointerDownWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); + void onPointerUpWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); + void onContextChanged(in android.hardware.biometrics.common.OperationContext context); + void onPointerCancelWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); + /** + * @deprecated use isHardwareIgnoringTouches in OperationContext from onContextChanged instead + */ + void setIgnoreDisplayTouches(in boolean shouldIgnore); +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISessionCallback.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISessionCallback.aidl new file mode 100644 index 0000000000..be18ffed1a --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISessionCallback.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +interface ISessionCallback { + void onChallengeGenerated(in long challenge); + void onChallengeRevoked(in long challenge); + void onAcquired(in android.hardware.biometrics.fingerprint.AcquiredInfo info, in int vendorCode); + void onError(in android.hardware.biometrics.fingerprint.Error error, in int vendorCode); + void onEnrollmentProgress(in int enrollmentId, int remaining); + void onAuthenticationSucceeded(in int enrollmentId, in android.hardware.keymaster.HardwareAuthToken hat); + void onAuthenticationFailed(); + void onLockoutTimed(in long durationMillis); + void onLockoutPermanent(); + void onLockoutCleared(); + void onInteractionDetected(); + void onEnrollmentsEnumerated(in int[] enrollmentIds); + void onEnrollmentsRemoved(in int[] enrollmentIds); + void onAuthenticatorIdRetrieved(in long authenticatorId); + void onAuthenticatorIdInvalidated(in long newAuthenticatorId); + void onSessionClosed(); +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/PointerContext.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/PointerContext.aidl new file mode 100644 index 0000000000..d9bf0854ca --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/PointerContext.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@JavaDerive(equals=true) @VintfStability +parcelable PointerContext { + int pointerId = (-1) /* -1 */; + float x = 0f; + float y = 0f; + float minor = 0f; + float major = 0f; + float orientation = 0f; + boolean isAod = false; + long time = 0; + long gestureStart = 0; +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorLocation.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorLocation.aidl new file mode 100644 index 0000000000..965576e822 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorLocation.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +parcelable SensorLocation { + /** + * @deprecated use the display field instead. This field was never used. + */ + int displayId; + int sensorLocationX; + int sensorLocationY; + int sensorRadius; + String display = ""; + android.hardware.biometrics.fingerprint.SensorShape sensorShape = android.hardware.biometrics.fingerprint.SensorShape.CIRCLE; +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorProps.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorProps.aidl new file mode 100644 index 0000000000..a97d819dba --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorProps.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +parcelable SensorProps { + android.hardware.biometrics.common.CommonProps commonProps; + android.hardware.biometrics.fingerprint.FingerprintSensorType sensorType = android.hardware.biometrics.fingerprint.FingerprintSensorType.UNKNOWN; + android.hardware.biometrics.fingerprint.SensorLocation[] sensorLocations; + boolean supportsNavigationGestures; + boolean supportsDetectInteraction; + boolean halHandlesDisplayTouches; + boolean halControlsIllumination; + @nullable android.hardware.biometrics.fingerprint.TouchDetectionParameters touchDetectionParameters; +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorShape.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorShape.aidl new file mode 100644 index 0000000000..f673b1c806 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorShape.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@Backing(type="byte") @VintfStability +enum SensorShape { + SQUARE, + CIRCLE, +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/TouchDetectionParameters.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/TouchDetectionParameters.aidl new file mode 100644 index 0000000000..2e3ec4f574 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/TouchDetectionParameters.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +parcelable TouchDetectionParameters { + float targetSize = 1.0f; + float minOverlap = 0.0f; +} diff --git a/bluetooth/audio/aidl/Android.bp b/bluetooth/audio/aidl/Android.bp index feed6f55ca..f8818fda29 100644 --- a/bluetooth/audio/aidl/Android.bp +++ b/bluetooth/audio/aidl/Android.bp @@ -75,9 +75,17 @@ aidl_interface { "android.hardware.audio.common-V2", ], }, + { + version: "4", + imports: [ + "android.hardware.audio.common-V3", + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + ], + }, ], - frozen: false, + frozen: true, } diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/.hash b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/.hash new file mode 100644 index 0000000000..a1dec3a95e --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/.hash @@ -0,0 +1 @@ +ac25616dda1c45dc2915d3f5ac82687a1a6f6e46 diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfiguration.aidl new file mode 100644 index 0000000000..9e67b1520d --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable A2dpConfiguration { + int remoteSeid; + android.hardware.bluetooth.audio.CodecId id; + android.hardware.bluetooth.audio.CodecParameters parameters; + byte[] configuration; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfigurationHint.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfigurationHint.aidl new file mode 100644 index 0000000000..0a5b489321 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfigurationHint.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable A2dpConfigurationHint { + byte[6] bdAddr; + android.hardware.bluetooth.audio.AudioContext audioContext; + @nullable android.hardware.bluetooth.audio.CodecId codecId; + @nullable android.hardware.bluetooth.audio.CodecParameters codecParameters; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl new file mode 100644 index 0000000000..9c1e97173a --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable A2dpRemoteCapabilities { + int seid; + android.hardware.bluetooth.audio.CodecId id; + byte[] capabilities; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStatus.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStatus.aidl new file mode 100644 index 0000000000..ac22e2519f --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStatus.aidl @@ -0,0 +1,65 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum A2dpStatus { + OK = 0, + BAD_LENGTH = 0x11u8, + BAD_PAYLOAD_FORMAT = 0x18u8, + INVALID_CODEC_TYPE = 0xC1u8, + NOT_SUPPORTED_CODEC_TYPE = 0xC2u8, + INVALID_SAMPLING_FREQUENCY = 0xC3u8, + NOT_SUPPORTED_SAMPLING_FREQUENCY = 0xC4u8, + INVALID_CHANNEL_MODE = 0xC5u8, + NOT_SUPPORTED_CHANNEL_MODE = 0xC6u8, + INVALID_SUBBANDS = 0xC7u8, + NOT_SUPPORTED_SUBBANDS = 0xC8u8, + INVALID_ALLOCATION_METHOD = 0xC9u8, + NOT_SUPPORTED_ALLOCATION_METHOD = 0xCAu8, + INVALID_MINIMUM_BITPOOL_VALUE = 0xCBu8, + NOT_SUPPORTED_MINIMUM_BITPOOL_VALUE = 0xCCu8, + INVALID_MAXIMUM_BITPOOL_VALUE = 0xCDu8, + NOT_SUPPORTED_MAXIMUM_BITPOOL_VALUE = 0xCEu8, + NOT_SUPPORTED_VBR = 0xD3u8, + NOT_SUPPORTED_BIT_RATE = 0xD5u8, + INVALID_OBJECT_TYPE = 0xD6u8, + NOT_SUPPORTED_OBJECT_TYPE = 0xD7u8, + INVALID_CHANNELS = 0xD8u8, + NOT_SUPPORTED_CHANNELS = 0xD9u8, + INVALID_BLOCK_LENGTH = 0xDDu8, + INVALID_CODEC_PARAMETER = 0xE2u8, + NOT_SUPPORTED_CODEC_PARAMETER = 0xE3u8, + INVALID_DRC = 0xE4u8, + NOT_SUPPORTED_DRC = 0xE5u8, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl new file mode 100644 index 0000000000..ff5a1bc298 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable A2dpStreamConfiguration { + int peerMtu; + @nullable byte[1] cpHeaderScmst; + android.hardware.bluetooth.audio.CodecId codecId; + byte[] configuration; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacCapabilities.aidl new file mode 100644 index 0000000000..e548cd326a --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacCapabilities.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AacCapabilities { + android.hardware.bluetooth.audio.AacObjectType[] objectType; + int[] sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + boolean variableBitRateSupported; + byte[] bitsPerSample; + boolean adaptiveBitRateSupported; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacConfiguration.aidl new file mode 100644 index 0000000000..29ab8ce3d0 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AacConfiguration { + android.hardware.bluetooth.audio.AacObjectType objectType; + int sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode channelMode; + boolean variableBitRateEnabled; + byte bitsPerSample; + boolean adaptiveBitRateSupported; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacObjectType.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacObjectType.aidl new file mode 100644 index 0000000000..418dd7a6a5 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacObjectType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum AacObjectType { + MPEG2_LC, + MPEG4_LC, + MPEG4_LTP, + MPEG4_SCALABLE, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveCapabilities.aidl new file mode 100644 index 0000000000..4e5dfe66c2 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveCapabilities.aidl @@ -0,0 +1,46 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.AptxAdaptiveChannelMode[] channelMode; + byte[] bitsPerSample; + android.hardware.bluetooth.audio.AptxMode[] aptxMode; + android.hardware.bluetooth.audio.AptxSinkBuffering sinkBufferingMs; + android.hardware.bluetooth.audio.AptxAdaptiveTimeToPlay ttp; + android.hardware.bluetooth.audio.AptxAdaptiveInputMode inputMode; + int inputFadeDurationMs; + byte[] aptxAdaptiveConfigStream; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveChannelMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveChannelMode.aidl new file mode 100644 index 0000000000..675f9f2d23 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveChannelMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum AptxAdaptiveChannelMode { + JOINT_STEREO = 0, + MONO = 1, + DUAL_MONO = 2, + TWS_STEREO = 4, + UNKNOWN = 0xFF, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveConfiguration.aidl new file mode 100644 index 0000000000..aab05213b4 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveConfiguration.aidl @@ -0,0 +1,46 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.AptxAdaptiveChannelMode channelMode; + byte bitsPerSample; + android.hardware.bluetooth.audio.AptxMode aptxMode; + android.hardware.bluetooth.audio.AptxSinkBuffering sinkBufferingMs; + android.hardware.bluetooth.audio.AptxAdaptiveTimeToPlay ttp; + android.hardware.bluetooth.audio.AptxAdaptiveInputMode inputMode; + int inputFadeDurationMs; + byte[] aptxAdaptiveConfigStream; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveInputMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveInputMode.aidl new file mode 100644 index 0000000000..a18303ed75 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveInputMode.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum AptxAdaptiveInputMode { + STEREO = 0x00, + DUAL_MONO = 0x01, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeCapabilities.aidl new file mode 100644 index 0000000000..c9d3cde671 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeCapabilities.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveLeCapabilities { + byte[] pcmBitDepth; + int[] samplingFrequencyHz; + int[] frameDurationUs; + int[] octetsPerFrame; + byte[] blocksPerSdu; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeConfiguration.aidl new file mode 100644 index 0000000000..76df4edba1 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveLeConfiguration { + byte pcmBitDepth; + int samplingFrequencyHz; + int frameDurationUs; + int octetsPerFrame; + byte blocksPerSdu; + int codecMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveTimeToPlay.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveTimeToPlay.aidl new file mode 100644 index 0000000000..35606667cb --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveTimeToPlay.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveTimeToPlay { + byte lowLowLatency; + byte highLowLatency; + byte lowHighQuality; + byte highHighQuality; + byte lowTws; + byte highTws; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxCapabilities.aidl new file mode 100644 index 0000000000..08a38e26e1 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxCapabilities.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + byte[] bitsPerSample; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxConfiguration.aidl new file mode 100644 index 0000000000..91e88b32f3 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxConfiguration.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode channelMode; + byte bitsPerSample; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxMode.aidl new file mode 100644 index 0000000000..dd8cf08c39 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum AptxMode { + UNKNOWN = 0x00, + HIGH_QUALITY = 0x1000, + LOW_LATENCY = 0x2000, + ULTRA_LOW_LATENCY = 0x4000, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxSinkBuffering.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxSinkBuffering.aidl new file mode 100644 index 0000000000..527418e308 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxSinkBuffering.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxSinkBuffering { + byte minLowLatency; + byte maxLowLatency; + byte minHighQuality; + byte maxHighQuality; + byte minTws; + byte maxTws; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioCapabilities.aidl new file mode 100644 index 0000000000..8ae716ff23 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioCapabilities.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union AudioCapabilities { + android.hardware.bluetooth.audio.PcmCapabilities pcmCapabilities; + android.hardware.bluetooth.audio.CodecCapabilities a2dpCapabilities; + android.hardware.bluetooth.audio.LeAudioCodecCapabilitiesSetting leAudioCapabilities; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioConfiguration.aidl new file mode 100644 index 0000000000..2c402678b1 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union AudioConfiguration { + android.hardware.bluetooth.audio.PcmConfiguration pcmConfig; + android.hardware.bluetooth.audio.CodecConfiguration a2dpConfig; + android.hardware.bluetooth.audio.LeAudioConfiguration leAudioConfig; + android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration leAudioBroadcastConfig; + android.hardware.bluetooth.audio.HfpConfiguration hfpConfig; + android.hardware.bluetooth.audio.A2dpStreamConfiguration a2dp; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioContext.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioContext.aidl new file mode 100644 index 0000000000..5aafeb78d5 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioContext.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AudioContext { + int bitmask; + const int UNSPECIFIED = 0x0001; + const int CONVERSATIONAL = 0x0002; + const int MEDIA = 0x0004; + const int GAME = 0x0008; + const int INSTRUCTIONAL = 0x0010; + const int VOICE_ASSISTANTS = 0x0020; + const int LIVE_AUDIO = 0x0040; + const int SOUND_EFFECTS = 0x0080; + const int NOTIFICATIONS = 0x0100; + const int RINGTONE_ALERTS = 0x0200; + const int ALERTS = 0x0400; + const int EMERGENCY_ALARM = 0x0800; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioLocation.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioLocation.aidl new file mode 100644 index 0000000000..941344cdbe --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioLocation.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum AudioLocation { + UNKNOWN = 1, + FRONT_LEFT = (1 << 1) /* 2 */, + FRONT_RIGHT = (1 << 2) /* 4 */, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BluetoothAudioStatus.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BluetoothAudioStatus.aidl new file mode 100644 index 0000000000..c20c057626 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BluetoothAudioStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum BluetoothAudioStatus { + UNKNOWN = 0, + SUCCESS = 1, + UNSUPPORTED_CODEC_CONFIGURATION = 2, + FAILURE = 3, + RECONFIGURATION = 4, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BroadcastCapability.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BroadcastCapability.aidl new file mode 100644 index 0000000000..58710effe7 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BroadcastCapability.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable BroadcastCapability { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.AudioLocation supportedChannel; + int channelCountPerStream; + android.hardware.bluetooth.audio.BroadcastCapability.LeAudioCodecCapabilities leAudioCodecCapabilities; + @VintfStability + parcelable VendorCapabilities { + ParcelableHolder extension; + } + @VintfStability + union LeAudioCodecCapabilities { + @nullable android.hardware.bluetooth.audio.Lc3Capabilities[] lc3Capabilities; + @nullable android.hardware.bluetooth.audio.BroadcastCapability.VendorCapabilities[] vendorCapabillities; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ChannelMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ChannelMode.aidl new file mode 100644 index 0000000000..2bb5cd8e8b --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ChannelMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum ChannelMode { + UNKNOWN, + MONO, + STEREO, + DUALMONO, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecCapabilities.aidl new file mode 100644 index 0000000000..b00649a62d --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecCapabilities.aidl @@ -0,0 +1,54 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable CodecCapabilities { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.CodecCapabilities.Capabilities capabilities; + @VintfStability + parcelable VendorCapabilities { + ParcelableHolder extension; + } + @VintfStability + union Capabilities { + android.hardware.bluetooth.audio.SbcCapabilities sbcCapabilities; + android.hardware.bluetooth.audio.AacCapabilities aacCapabilities; + android.hardware.bluetooth.audio.LdacCapabilities ldacCapabilities; + android.hardware.bluetooth.audio.AptxCapabilities aptxCapabilities; + android.hardware.bluetooth.audio.AptxAdaptiveCapabilities aptxAdaptiveCapabilities; + android.hardware.bluetooth.audio.Lc3Capabilities lc3Capabilities; + android.hardware.bluetooth.audio.CodecCapabilities.VendorCapabilities vendorCapabilities; + @nullable android.hardware.bluetooth.audio.OpusCapabilities opusCapabilities; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecConfiguration.aidl new file mode 100644 index 0000000000..7f5ea48d8a --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecConfiguration.aidl @@ -0,0 +1,59 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable CodecConfiguration { + android.hardware.bluetooth.audio.CodecType codecType; + int encodedAudioBitrate; + int peerMtu; + boolean isScmstEnabled; + android.hardware.bluetooth.audio.CodecConfiguration.CodecSpecific config; + @VintfStability + parcelable VendorConfiguration { + int vendorId; + char codecId; + ParcelableHolder codecConfig; + } + @VintfStability + union CodecSpecific { + android.hardware.bluetooth.audio.SbcConfiguration sbcConfig; + android.hardware.bluetooth.audio.AacConfiguration aacConfig; + android.hardware.bluetooth.audio.LdacConfiguration ldacConfig; + android.hardware.bluetooth.audio.AptxConfiguration aptxConfig; + android.hardware.bluetooth.audio.AptxAdaptiveConfiguration aptxAdaptiveConfig; + android.hardware.bluetooth.audio.Lc3Configuration lc3Config; + android.hardware.bluetooth.audio.CodecConfiguration.VendorConfiguration vendorConfig; + @nullable android.hardware.bluetooth.audio.OpusConfiguration opusConfig; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecId.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecId.aidl new file mode 100644 index 0000000000..f3b4102a30 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecId.aidl @@ -0,0 +1,53 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union CodecId { + android.hardware.bluetooth.audio.CodecId.A2dp a2dp = android.hardware.bluetooth.audio.CodecId.A2dp.SBC; + android.hardware.bluetooth.audio.CodecId.Core core; + android.hardware.bluetooth.audio.CodecId.Vendor vendor; + enum A2dp { + SBC = 0, + AAC = 2, + } + enum Core { + CVSD = 2, + MSBC = 5, + LC3 = 6, + } + parcelable Vendor { + int id; + int codecId; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecInfo.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecInfo.aidl new file mode 100644 index 0000000000..2727d6e840 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecInfo.aidl @@ -0,0 +1,64 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable CodecInfo { + android.hardware.bluetooth.audio.CodecId id; + String name; + android.hardware.bluetooth.audio.CodecInfo.Transport transport; + parcelable A2dp { + byte[] capabilities; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + int[] samplingFrequencyHz; + int[] bitdepth; + boolean lossless; + } + parcelable Hfp { + int inputDataPath = 1; + int outputDataPath = 1; + boolean useControllerCodec = true; + } + parcelable LeAudio { + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + int[] samplingFrequencyHz; + int[] frameDurationUs; + int[] bitdepth; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + } + union Transport { + android.hardware.bluetooth.audio.CodecInfo.LeAudio leAudio; + android.hardware.bluetooth.audio.CodecInfo.A2dp a2dp; + android.hardware.bluetooth.audio.CodecInfo.Hfp hfp; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecParameters.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecParameters.aidl new file mode 100644 index 0000000000..ac63c289fd --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecParameters.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable CodecParameters { + android.hardware.bluetooth.audio.ChannelMode channelMode; + int samplingFrequencyHz; + int bitdepth; + int minBitrate; + int maxBitrate; + boolean lowLatency = false; + boolean lossless = false; + byte[] vendorSpecificParameters; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl new file mode 100644 index 0000000000..60c276b0dd --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl @@ -0,0 +1,83 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union CodecSpecificCapabilitiesLtv { + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedSamplingFrequencies supportedSamplingFrequencies; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedFrameDurations supportedFrameDurations; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedAudioChannelCounts supportedAudioChannelCounts; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedOctetsPerCodecFrame supportedOctetsPerCodecFrame; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedMaxCodecFramesPerSDU supportedMaxCodecFramesPerSDU; + parcelable SupportedSamplingFrequencies { + int bitmask; + const int HZ8000 = 0x0001; + const int HZ11025 = 0x0002; + const int HZ16000 = 0x0004; + const int HZ22050 = 0x0008; + const int HZ24000 = 0x0010; + const int HZ32000 = 0x0020; + const int HZ44100 = 0x0040; + const int HZ48000 = 0x0080; + const int HZ88200 = 0x0100; + const int HZ96000 = 0x0200; + const int HZ176400 = 0x0400; + const int HZ192000 = 0x0800; + const int HZ384000 = 0x1000; + } + parcelable SupportedFrameDurations { + int bitmask; + const int US7500 = 0x01; + const int US10000 = 0x02; + const int US7500PREFERRED = 0x10; + const int US10000PREFERRED = 0x20; + } + parcelable SupportedAudioChannelCounts { + int bitmask; + const int ONE = 0x01; + const int TWO = 0x02; + const int THREE = 0x04; + const int FOUR = 0x08; + const int FIVE = 0x10; + const int SIX = 0x20; + const int SEVEN = 0x40; + const int EIGHT = 0x80; + } + parcelable SupportedOctetsPerCodecFrame { + int min; + int max; + } + parcelable SupportedMaxCodecFramesPerSDU { + int value; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificConfigurationLtv.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificConfigurationLtv.aidl new file mode 100644 index 0000000000..943d396aec --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificConfigurationLtv.aidl @@ -0,0 +1,101 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union CodecSpecificConfigurationLtv { + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.CodecFrameBlocksPerSDU codecFrameBlocksPerSDU; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.SamplingFrequency samplingFrequency; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.FrameDuration frameDuration; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.AudioChannelAllocation audioChannelAllocation; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.OctetsPerCodecFrame octetsPerCodecFrame; + @Backing(type="byte") + enum SamplingFrequency { + HZ8000 = 0x01, + HZ11025 = 0x02, + HZ16000 = 0x03, + HZ22050 = 0x04, + HZ24000 = 0x05, + HZ32000 = 0x06, + HZ44100 = 0x07, + HZ48000 = 0x08, + HZ88200 = 0x09, + HZ96000 = 0x0A, + HZ176400 = 0x0B, + HZ192000 = 0x0C, + HZ384000 = 0x0D, + } + @Backing(type="byte") + enum FrameDuration { + US7500 = 0x00, + US10000 = 0x01, + } + parcelable AudioChannelAllocation { + int bitmask; + const int NOT_ALLOWED = 0x00000000; + const int FRONT_LEFT = 0x00000001; + const int FRONT_RIGHT = 0x00000002; + const int FRONT_CENTER = 0x00000004; + const int LOW_FREQUENCY_EFFECTS_1 = 0x00000008; + const int BACK_LEFT = 0x00000010; + const int BACK_RIGHT = 0x00000020; + const int FRONT_LEFT_OF_CENTER = 0x00000040; + const int FRONT_RIGHT_OF_CENTER = 0x00000080; + const int BACK_CENTER = 0x00000100; + const int LOW_FREQUENCY_EFFECTS_2 = 0x00000200; + const int SIDE_LEFT = 0x00000400; + const int SIDE_RIGHT = 0x00000800; + const int TOP_FRONT_LEFT = 0x00001000; + const int TOP_FRONT_RIGHT = 0x00002000; + const int TOP_FRONT_CENTER = 0x00004000; + const int TOP_CENTER = 0x00008000; + const int TOP_BACK_LEFT = 0x00010000; + const int TOP_BACK_RIGHT = 0x00020000; + const int TOP_SIDE_LEFT = 0x00040000; + const int TOP_SIDE_RIGHT = 0x00080000; + const int TOP_BACK_CENTER = 0x00100000; + const int BOTTOM_FRONT_CENTER = 0x00200000; + const int BOTTOM_FRONT_LEFT = 0x00400000; + const int BOTTOM_FRONT_RIGHT = 0x00800000; + const int FRONT_LEFT_WIDE = 0x01000000; + const int FRONT_RIGHT_WIDE = 0x02000000; + const int LEFT_SURROUND = 0x04000000; + const int RIGHT_SURROUND = 0x08000000; + } + parcelable OctetsPerCodecFrame { + int value; + } + parcelable CodecFrameBlocksPerSDU { + int value; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecType.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecType.aidl new file mode 100644 index 0000000000..d4f205e365 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecType.aidl @@ -0,0 +1,49 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum CodecType { + UNKNOWN, + SBC, + AAC, + APTX, + APTX_HD, + LDAC, + LC3, + VENDOR, + APTX_ADAPTIVE, + OPUS, + APTX_ADAPTIVE_LE, + APTX_ADAPTIVE_LEX, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ConfigurationFlags.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ConfigurationFlags.aidl new file mode 100644 index 0000000000..6b3cf723cf --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ConfigurationFlags.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable ConfigurationFlags { + int bitmask; + const int NONE = 0x0000; + const int LOSSLESS = 0x0001; + const int LOW_LATENCY = 0x0002; + const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0004; + const int SPATIAL_AUDIO = 0x0008; + const int PROVIDE_ASE_METADATA = 0x0010; + const int MONO_MIC_CONFIGURATION = 0x0020; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/HfpConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/HfpConfiguration.aidl new file mode 100644 index 0000000000..490a05d3f1 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/HfpConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable HfpConfiguration { + android.hardware.bluetooth.audio.CodecId codecId; + int connectionHandle; + boolean nrec; + boolean controllerCodec; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioPort.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioPort.aidl new file mode 100644 index 0000000000..d364371707 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioPort.aidl @@ -0,0 +1,44 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +interface IBluetoothAudioPort { + android.hardware.bluetooth.audio.PresentationPosition getPresentationPosition(); + void startStream(boolean isLowLatency); + void stopStream(); + void suspendStream(); + void updateSourceMetadata(in android.hardware.audio.common.SourceMetadata sourceMetadata); + void updateSinkMetadata(in android.hardware.audio.common.SinkMetadata sinkMetadata); + void setLatencyMode(in android.hardware.bluetooth.audio.LatencyMode latencyMode); +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl new file mode 100644 index 0000000000..8d46c01bda --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -0,0 +1,199 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +interface IBluetoothAudioProvider { + void endSession(); + android.hardware.common.fmq.MQDescriptor startSession(in android.hardware.bluetooth.audio.IBluetoothAudioPort hostIf, in android.hardware.bluetooth.audio.AudioConfiguration audioConfig, in android.hardware.bluetooth.audio.LatencyMode[] supportedLatencyModes); + void streamStarted(in android.hardware.bluetooth.audio.BluetoothAudioStatus status); + void streamSuspended(in android.hardware.bluetooth.audio.BluetoothAudioStatus status); + void updateAudioConfiguration(in android.hardware.bluetooth.audio.AudioConfiguration audioConfig); + void setLowLatencyModeAllowed(in boolean allowed); + android.hardware.bluetooth.audio.A2dpStatus parseA2dpConfiguration(in android.hardware.bluetooth.audio.CodecId codecId, in byte[] configuration, out android.hardware.bluetooth.audio.CodecParameters codecParameters); + @nullable android.hardware.bluetooth.audio.A2dpConfiguration getA2dpConfiguration(in android.hardware.bluetooth.audio.A2dpRemoteCapabilities[] remoteA2dpCapabilities, in android.hardware.bluetooth.audio.A2dpConfigurationHint hint); + void setCodecPriority(in android.hardware.bluetooth.audio.CodecId codecId, int priority); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting[] getLeAudioAseConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSourceAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement[] requirements); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationPair getLeAudioAseQosConfiguration(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement qosRequirement); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sinkConfig, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sourceConfig); + void onSinkAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); + void onSourceAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration getLeAudioBroadcastDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext audioContext, in android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration.BroadcastStreamMap[] streamMap); + const int CODEC_PRIORITY_DISABLED = (-1) /* -1 */; + const int CODEC_PRIORITY_NONE = 0; + @VintfStability + parcelable LeAudioDeviceCapabilities { + android.hardware.bluetooth.audio.CodecId codecId; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv[] codecSpecificCapabilities; + @nullable byte[] vendorCodecSpecificCapabilities; + @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata; + } + @VintfStability + parcelable LeAudioDataPathConfiguration { + int dataPathId; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration.DataPathConfiguration dataPathConfiguration; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration.IsoDataPathConfiguration isoDataPathConfiguration; + @VintfStability + parcelable IsoDataPathConfiguration { + android.hardware.bluetooth.audio.CodecId codecId; + boolean isTransparent; + int controllerDelayUs; + @nullable byte[] configuration; + } + @VintfStability + parcelable DataPathConfiguration { + @nullable byte[] configuration; + } + } + @VintfStability + parcelable LeAudioAseQosConfiguration { + int sduIntervalUs; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Framing framing; + android.hardware.bluetooth.audio.Phy[] phy; + int maxTransportLatencyMs; + int maxSdu; + int retransmissionNum; + } + @Backing(type="byte") @VintfStability + enum Packing { + SEQUENTIAL = 0x00, + INTERLEAVED = 0x01, + } + @Backing(type="byte") @VintfStability + enum Framing { + UNFRAMED = 0x00, + FRAMED = 0x01, + } + @VintfStability + parcelable LeAudioAseConfigurationSetting { + android.hardware.bluetooth.audio.AudioContext audioContext; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Packing packing; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting.AseDirectionConfiguration[] sinkAseConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting.AseDirectionConfiguration[] sourceAseConfiguration; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + @VintfStability + parcelable AseDirectionConfiguration { + android.hardware.bluetooth.audio.LeAudioAseConfiguration aseConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfiguration qosConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration dataPathConfiguration; + } + } + @VintfStability + parcelable LeAudioConfigurationRequirement { + android.hardware.bluetooth.audio.AudioContext audioContext; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement.AseDirectionRequirement[] sinkAseRequirement; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement.AseDirectionRequirement[] sourceAseRequirement; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + @VintfStability + parcelable AseDirectionRequirement { + android.hardware.bluetooth.audio.LeAudioAseConfiguration aseConfiguration; + } + } + @VintfStability + parcelable LeAudioAseQosConfigurationRequirement { + android.hardware.bluetooth.audio.AudioContext audioContext; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement.AseQosDirectionRequirement sinkAseQosRequirement; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement.AseQosDirectionRequirement sourceAseQosRequirement; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + @VintfStability + parcelable AseQosDirectionRequirement { + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Framing framing; + android.hardware.bluetooth.audio.Phy[] preferredPhy; + int preferredRetransmissionNum; + int maxTransportLatencyMs; + int presentationDelayMinUs; + int presentationDelayMaxUs; + int preferredPresentationDelayMinUs; + int preferredPresentationDelayMaxUs; + android.hardware.bluetooth.audio.LeAudioAseConfiguration aseConfiguration; + } + } + @VintfStability + parcelable LeAudioAseQosConfigurationPair { + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfiguration sinkQosConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfiguration sourceQosConfiguration; + } + parcelable LeAudioDataPathConfigurationPair { + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration inputConfig; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration outputConfig; + } + parcelable StreamConfig { + android.hardware.bluetooth.audio.AudioContext audioContext; + android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap; + } + @Backing(type="byte") @VintfStability + enum AseState { + ENABLING = 0x00, + STREAMING = 0x01, + DISABLING = 0x02, + } + @Backing(type="byte") @VintfStability + enum BroadcastQuality { + STANDARD, + HIGH, + } + @VintfStability + parcelable LeAudioBroadcastSubgroupConfigurationRequirement { + android.hardware.bluetooth.audio.AudioContext audioContext; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.BroadcastQuality quality; + int bisNumPerSubgroup; + } + @VintfStability + parcelable LeAudioBroadcastConfigurationRequirement { + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastSubgroupConfigurationRequirement[] subgroupConfigurationRequirements; + } + @VintfStability + parcelable LeAudioSubgroupBisConfiguration { + int numBis; + android.hardware.bluetooth.audio.LeAudioBisConfiguration bisConfiguration; + } + @VintfStability + parcelable LeAudioBroadcastSubgroupConfiguration { + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioSubgroupBisConfiguration[] bisConfigurations; + @nullable byte[] vendorCodecConfiguration; + } + @VintfStability + parcelable LeAudioBroadcastConfigurationSetting { + int sduIntervalUs; + int numBis; + int maxSduOctets; + int maxTransportLatencyMs; + int retransmitionNum; + android.hardware.bluetooth.audio.Phy[] phy; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Packing packing; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Framing framing; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration dataPathConfiguration; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastSubgroupConfiguration[] subgroupsConfigurations; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.aidl new file mode 100644 index 0000000000..edb79a3da0 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.aidl @@ -0,0 +1,46 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +interface IBluetoothAudioProviderFactory { + android.hardware.bluetooth.audio.AudioCapabilities[] getProviderCapabilities(in android.hardware.bluetooth.audio.SessionType sessionType); + android.hardware.bluetooth.audio.IBluetoothAudioProvider openProvider(in android.hardware.bluetooth.audio.SessionType sessionType); + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProviderFactory.ProviderInfo getProviderInfo(in android.hardware.bluetooth.audio.SessionType sessionType); + @VintfStability + parcelable ProviderInfo { + String name; + android.hardware.bluetooth.audio.CodecInfo[] codecInfos; + boolean supportsMultidirectionalCapabilities; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LatencyMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LatencyMode.aidl new file mode 100644 index 0000000000..1140f9e90b --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LatencyMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum LatencyMode { + UNKNOWN, + LOW_LATENCY, + FREE, + DYNAMIC_SPATIAL_AUDIO_SOFTWARE, + DYNAMIC_SPATIAL_AUDIO_HARDWARE, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Capabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Capabilities.aidl new file mode 100644 index 0000000000..cc4449aea9 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Capabilities.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable Lc3Capabilities { + byte[] pcmBitDepth; + int[] samplingFrequencyHz; + int[] frameDurationUs; + int[] octetsPerFrame; + byte[] blocksPerSdu; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Configuration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Configuration.aidl new file mode 100644 index 0000000000..7e8dccff5f --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Configuration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable Lc3Configuration { + byte pcmBitDepth; + int samplingFrequencyHz; + int frameDurationUs; + int octetsPerFrame; + byte blocksPerSdu; + android.hardware.bluetooth.audio.ChannelMode channelMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacCapabilities.aidl new file mode 100644 index 0000000000..aa4e4c8793 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacCapabilities.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LdacCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.LdacChannelMode[] channelMode; + android.hardware.bluetooth.audio.LdacQualityIndex[] qualityIndex; + byte[] bitsPerSample; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacChannelMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacChannelMode.aidl new file mode 100644 index 0000000000..3d80c4b127 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacChannelMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum LdacChannelMode { + UNKNOWN, + STEREO, + DUAL, + MONO, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacConfiguration.aidl new file mode 100644 index 0000000000..8a3763800b --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LdacConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.LdacChannelMode channelMode; + android.hardware.bluetooth.audio.LdacQualityIndex qualityIndex; + byte bitsPerSample; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacQualityIndex.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacQualityIndex.aidl new file mode 100644 index 0000000000..a332dc5103 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacQualityIndex.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum LdacQualityIndex { + HIGH, + MID, + LOW, + ABR, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioAseConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioAseConfiguration.aidl new file mode 100644 index 0000000000..bffc88b352 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioAseConfiguration.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioAseConfiguration { + android.hardware.bluetooth.audio.LeAudioAseConfiguration.TargetLatency targetLatency; + android.hardware.bluetooth.audio.Phy targetPhy; + @nullable android.hardware.bluetooth.audio.CodecId codecId; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv[] codecConfiguration; + @nullable byte[] vendorCodecConfiguration; + @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata; + @Backing(type="byte") @VintfStability + enum TargetLatency { + UNDEFINED = 0x00, + LOWER = 0x01, + BALANCED_LATENCY_RELIABILITY = 0x02, + HIGHER_RELIABILITY = 0x03, + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBisConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBisConfiguration.aidl new file mode 100644 index 0000000000..b09d34fec2 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBisConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioBisConfiguration { + android.hardware.bluetooth.audio.CodecId codecId; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv[] codecConfiguration; + byte[] vendorCodecConfiguration; + @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBroadcastConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBroadcastConfiguration.aidl new file mode 100644 index 0000000000..efd3b02818 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBroadcastConfiguration.aidl @@ -0,0 +1,48 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioBroadcastConfiguration { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration.BroadcastStreamMap[] streamMap; + @VintfStability + parcelable BroadcastStreamMap { + char streamHandle; + int audioChannelAllocation; + android.hardware.bluetooth.audio.LeAudioCodecConfiguration leAudioCodecConfig; + char pcmStreamId; + @nullable android.hardware.bluetooth.audio.LeAudioBisConfiguration bisConfiguration; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecCapabilitiesSetting.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecCapabilitiesSetting.aidl new file mode 100644 index 0000000000..9818d543ac --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecCapabilitiesSetting.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioCodecCapabilitiesSetting { + android.hardware.bluetooth.audio.UnicastCapability unicastEncodeCapability; + android.hardware.bluetooth.audio.UnicastCapability unicastDecodeCapability; + android.hardware.bluetooth.audio.BroadcastCapability broadcastCapability; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecConfiguration.aidl new file mode 100644 index 0000000000..031ee679ac --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecConfiguration.aidl @@ -0,0 +1,44 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union LeAudioCodecConfiguration { + android.hardware.bluetooth.audio.Lc3Configuration lc3Config; + android.hardware.bluetooth.audio.LeAudioCodecConfiguration.VendorConfiguration vendorConfig; + android.hardware.bluetooth.audio.AptxAdaptiveLeConfiguration aptxAdaptiveLeConfig; + @VintfStability + parcelable VendorConfiguration { + ParcelableHolder extension; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioConfiguration.aidl new file mode 100644 index 0000000000..25a9797daf --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioConfiguration.aidl @@ -0,0 +1,59 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioConfiguration { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap; + int peerDelayUs; + android.hardware.bluetooth.audio.LeAudioCodecConfiguration leAudioCodecConfig; + @nullable byte[] vendorSpecificMetadata; + @VintfStability + parcelable StreamMap { + char streamHandle; + int audioChannelAllocation; + boolean isStreamActive; + @nullable android.hardware.bluetooth.audio.LeAudioAseConfiguration aseConfiguration; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + @nullable android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap.BluetoothDeviceAddress bluetoothDeviceAddress; + parcelable BluetoothDeviceAddress { + byte[6] deviceAddress; + android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap.BluetoothDeviceAddress.DeviceAddressType deviceAddressType; + enum DeviceAddressType { + BLE_ADDRESS_PUBLIC = 0x00, + BLE_ADDRESS_RANDOM = 0x01, + } + } + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/MetadataLtv.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/MetadataLtv.aidl new file mode 100644 index 0000000000..5e8a2ae25d --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/MetadataLtv.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union MetadataLtv { + android.hardware.bluetooth.audio.MetadataLtv.PreferredAudioContexts preferredAudioContexts; + android.hardware.bluetooth.audio.MetadataLtv.StreamingAudioContexts streamingAudioContexts; + android.hardware.bluetooth.audio.MetadataLtv.VendorSpecific vendorSpecific; + parcelable PreferredAudioContexts { + android.hardware.bluetooth.audio.AudioContext values; + } + parcelable StreamingAudioContexts { + android.hardware.bluetooth.audio.AudioContext values; + } + parcelable VendorSpecific { + int companyId; + byte[] opaqueValue; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusCapabilities.aidl new file mode 100644 index 0000000000..2c04b0f3bb --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusCapabilities.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable OpusCapabilities { + byte[] pcmBitDepth; + int[] samplingFrequencyHz; + int[] frameDurationUs; + int[] octetsPerFrame; + byte[] blocksPerSdu; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusConfiguration.aidl new file mode 100644 index 0000000000..811d32a7ea --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable OpusConfiguration { + byte pcmBitDepth; + int samplingFrequencyHz; + int frameDurationUs; + int octetsPerFrame; + byte blocksPerSdu; + android.hardware.bluetooth.audio.ChannelMode channelMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmCapabilities.aidl new file mode 100644 index 0000000000..0c2f87d599 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmCapabilities.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable PcmCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + byte[] bitsPerSample; + int[] dataIntervalUs; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmConfiguration.aidl new file mode 100644 index 0000000000..93d7805a33 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable PcmConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode channelMode; + byte bitsPerSample; + int dataIntervalUs; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Phy.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Phy.aidl new file mode 100644 index 0000000000..bfeabcd5a5 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Phy.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum Phy { + UNDEFINED = 0x00, + ONE_M = 0x01, + TWO_M = 0x02, + CODED = 0x03, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PresentationPosition.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PresentationPosition.aidl new file mode 100644 index 0000000000..7e997e8c8f --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PresentationPosition.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable PresentationPosition { + long remoteDeviceAudioDelayNanos; + long transmittedOctets; + android.hardware.bluetooth.audio.PresentationPosition.TimeSpec transmittedOctetsTimestamp; + @VintfStability + parcelable TimeSpec { + long tvSec; + long tvNSec; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcAllocMethod.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcAllocMethod.aidl new file mode 100644 index 0000000000..9cf65d57ec --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcAllocMethod.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum SbcAllocMethod { + ALLOC_MD_S, + ALLOC_MD_L, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcCapabilities.aidl new file mode 100644 index 0000000000..c8d7e7e74e --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcCapabilities.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable SbcCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.SbcChannelMode[] channelMode; + byte[] blockLength; + byte[] numSubbands; + android.hardware.bluetooth.audio.SbcAllocMethod[] allocMethod; + byte[] bitsPerSample; + int minBitpool; + int maxBitpool; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcChannelMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcChannelMode.aidl new file mode 100644 index 0000000000..7779aa052f --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcChannelMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum SbcChannelMode { + UNKNOWN, + JOINT_STEREO, + STEREO, + DUAL, + MONO, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcConfiguration.aidl new file mode 100644 index 0000000000..8eab9c3d96 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcConfiguration.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable SbcConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.SbcChannelMode channelMode; + byte blockLength; + byte numSubbands; + android.hardware.bluetooth.audio.SbcAllocMethod allocMethod; + byte bitsPerSample; + int minBitpool; + int maxBitpool; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SessionType.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SessionType.aidl new file mode 100644 index 0000000000..71cca5364f --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SessionType.aidl @@ -0,0 +1,52 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum SessionType { + UNKNOWN, + A2DP_SOFTWARE_ENCODING_DATAPATH, + A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH, + HEARING_AID_SOFTWARE_ENCODING_DATAPATH, + LE_AUDIO_SOFTWARE_ENCODING_DATAPATH, + LE_AUDIO_SOFTWARE_DECODING_DATAPATH, + LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH, + LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH, + LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH, + LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH, + A2DP_SOFTWARE_DECODING_DATAPATH, + A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH, + HFP_SOFTWARE_ENCODING_DATAPATH, + HFP_SOFTWARE_DECODING_DATAPATH, + HFP_HARDWARE_OFFLOAD_DATAPATH, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/UnicastCapability.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/UnicastCapability.aidl new file mode 100644 index 0000000000..894a2f3148 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/UnicastCapability.aidl @@ -0,0 +1,52 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable UnicastCapability { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.AudioLocation supportedChannel; + int deviceCount; + int channelCountPerDevice; + android.hardware.bluetooth.audio.UnicastCapability.LeAudioCodecCapabilities leAudioCodecCapabilities; + @VintfStability + parcelable VendorCapabilities { + ParcelableHolder extension; + } + @VintfStability + union LeAudioCodecCapabilities { + android.hardware.bluetooth.audio.Lc3Capabilities lc3Capabilities; + android.hardware.bluetooth.audio.UnicastCapability.VendorCapabilities vendorCapabillities; + android.hardware.bluetooth.audio.AptxAdaptiveLeCapabilities aptxAdaptiveLeCapabilities; + } +} diff --git a/bluetooth/finder/aidl/Android.bp b/bluetooth/finder/aidl/Android.bp index 25c12877e4..7c83c130fd 100644 --- a/bluetooth/finder/aidl/Android.bp +++ b/bluetooth/finder/aidl/Android.bp @@ -38,4 +38,12 @@ aidl_interface { }, }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash new file mode 100644 index 0000000000..0c1f694c8b --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash @@ -0,0 +1 @@ +078986eb5ef2dd183974ee4c9a79dc9b71bea088 diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl new file mode 100644 index 0000000000..42461c5904 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +parcelable Eid { + byte[20] bytes; +} diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl new file mode 100644 index 0000000000..4bc9041499 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +interface IBluetoothFinder { + void sendEids(in android.hardware.bluetooth.finder.Eid[] eids); + void setPoweredOffFinderMode(in boolean enable); + boolean getPoweredOffFinderMode(); +} diff --git a/bluetooth/lmp_event/aidl/Android.bp b/bluetooth/lmp_event/aidl/Android.bp index 6c2f27826b..1e3592bdf4 100644 --- a/bluetooth/lmp_event/aidl/Android.bp +++ b/bluetooth/lmp_event/aidl/Android.bp @@ -30,4 +30,12 @@ aidl_interface { min_sdk_version: "33", }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/.hash b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/.hash new file mode 100644 index 0000000000..8571e31db8 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/.hash @@ -0,0 +1 @@ +e9accf971a83a7829786ee24780fa7a5583b5dae diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/AddressType.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/AddressType.aidl new file mode 100644 index 0000000000..0f239e8055 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/AddressType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum AddressType { + PUBLIC = 0x00, + RANDOM = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Direction.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Direction.aidl new file mode 100644 index 0000000000..6f807cc836 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Direction.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum Direction { + TX = 0x00, + RX = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl new file mode 100644 index 0000000000..3431010d21 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +interface IBluetoothLmpEvent { + void registerForLmpEvents(in android.hardware.bluetooth.lmp_event.IBluetoothLmpEventCallback callback, in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address, in android.hardware.bluetooth.lmp_event.LmpEventId[] lmpEventIds); + void unregisterLmpEvents(in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address); +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl new file mode 100644 index 0000000000..fc6758c608 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +interface IBluetoothLmpEventCallback { + void onEventGenerated(in android.hardware.bluetooth.lmp_event.Timestamp timestamp, in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address, in android.hardware.bluetooth.lmp_event.Direction direction, in android.hardware.bluetooth.lmp_event.LmpEventId lmpEventId, in char connEventCounter); + void onRegistered(in boolean status); +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/LmpEventId.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/LmpEventId.aidl new file mode 100644 index 0000000000..4ee95d1147 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/LmpEventId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum LmpEventId { + CONNECT_IND = 0x00, + LL_PHY_UPDATE_IND = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Timestamp.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Timestamp.aidl new file mode 100644 index 0000000000..5ef32ba716 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Timestamp.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +parcelable Timestamp { + long systemTimeUs; + long bluetoothTimeUs; +} diff --git a/bluetooth/ranging/aidl/Android.bp b/bluetooth/ranging/aidl/Android.bp index 9e53ef6cf1..d0d1b900a2 100644 --- a/bluetooth/ranging/aidl/Android.bp +++ b/bluetooth/ranging/aidl/Android.bp @@ -36,4 +36,12 @@ aidl_interface { min_sdk_version: "33", }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/.hash b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/.hash new file mode 100644 index 0000000000..b0e0cfda25 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/.hash @@ -0,0 +1 @@ +d257bb74ef61a4cbb5854f4663604dd491b4a7bf diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/AddressType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/AddressType.aidl new file mode 100644 index 0000000000..fc417f0dab --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/AddressType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum AddressType { + PUBLIC = 0x00, + RANDOM = 0x01, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/BluetoothChannelSoundingParameters.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/BluetoothChannelSoundingParameters.aidl new file mode 100644 index 0000000000..e8fefbe638 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/BluetoothChannelSoundingParameters.aidl @@ -0,0 +1,49 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable BluetoothChannelSoundingParameters { + android.hardware.bluetooth.ranging.SessionType sessionType; + int aclHandle; + int l2capCid; + int realTimeProcedureDataAttHandle; + android.hardware.bluetooth.ranging.Role role; + boolean localSupportsSoundingPhaseBasedRanging; + boolean remoteSupportsSoundingPhaseBaseRanging; + android.hardware.bluetooth.ranging.Config config; + android.hardware.bluetooth.ranging.DeviceAddress address; + @nullable android.hardware.bluetooth.ranging.VendorSpecificData[] vendorSpecificData; + android.hardware.bluetooth.ranging.LocationType locationType; + android.hardware.bluetooth.ranging.SightType sightType; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl new file mode 100644 index 0000000000..8fc77aec31 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl @@ -0,0 +1,48 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable ChannelSoudingRawData { + int procedureCounter; + int[] frequencyCompensation; + boolean aborted; + android.hardware.bluetooth.ranging.ChannelSoundingSingleSideData initiatorData; + android.hardware.bluetooth.ranging.ChannelSoundingSingleSideData reflectorData; + byte[] stepChannels; + @nullable int[] toaTodInitiator; + @nullable int[] todToaReflector; + android.hardware.bluetooth.ranging.ModeType[] stepMode; + byte numAntennaPaths; + long timestampMs; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl new file mode 100644 index 0000000000..172ac5e9e8 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl @@ -0,0 +1,46 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable ChannelSoundingSingleSideData { + @nullable android.hardware.bluetooth.ranging.StepTonePct[] stepTonePcts; + @nullable byte[] packetQuality; + @nullable byte[] packetRssiDbm; + @nullable android.hardware.bluetooth.ranging.Nadm[] packetNadm; + @nullable int[] measuredFreqOffset; + @nullable android.hardware.bluetooth.ranging.ComplexNumber[] packetPct1; + @nullable android.hardware.bluetooth.ranging.ComplexNumber[] packetPct2; + byte referencePowerDbm; + @nullable byte[] vendorSpecificCsSingleSidedata; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ComplexNumber.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ComplexNumber.aidl new file mode 100644 index 0000000000..4d5ac213ee --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ComplexNumber.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable ComplexNumber { + double real; + double imaginary; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Config.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Config.aidl new file mode 100644 index 0000000000..c9ac99181b --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Config.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable Config { + android.hardware.bluetooth.ranging.ModeType modeType; + android.hardware.bluetooth.ranging.SubModeType subModeType; + android.hardware.bluetooth.ranging.RttType rttType; + byte[10] channelMap; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/CsSecurityLevel.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/CsSecurityLevel.aidl new file mode 100644 index 0000000000..6a31547d87 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/CsSecurityLevel.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum CsSecurityLevel { + NOT_SUPPORTED = 0x00, + ONE = 0x01, + TWO = 0x02, + THREE = 0x03, + FOUR = 0x04, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/DeviceAddress.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/DeviceAddress.aidl new file mode 100644 index 0000000000..69cad5d632 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/DeviceAddress.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable DeviceAddress { + android.hardware.bluetooth.ranging.AddressType addressType; + byte[6] address; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSounding.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSounding.aidl new file mode 100644 index 0000000000..004a48299e --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSounding.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +interface IBluetoothChannelSounding { + @nullable android.hardware.bluetooth.ranging.VendorSpecificData[] getVendorSpecificData(); + @nullable android.hardware.bluetooth.ranging.SessionType[] getSupportedSessionTypes(); + android.hardware.bluetooth.ranging.CsSecurityLevel getMaxSupportedCsSecurityLevel(); + @nullable android.hardware.bluetooth.ranging.IBluetoothChannelSoundingSession openSession(in android.hardware.bluetooth.ranging.BluetoothChannelSoundingParameters params, in android.hardware.bluetooth.ranging.IBluetoothChannelSoundingSessionCallback callback); +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSession.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSession.aidl new file mode 100644 index 0000000000..9f691b4710 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSession.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +interface IBluetoothChannelSoundingSession { + @nullable android.hardware.bluetooth.ranging.VendorSpecificData[] getVendorSpecificReplies(); + android.hardware.bluetooth.ranging.ResultType[] getSupportedResultTypes(); + boolean isAbortedProcedureRequired(); + void writeRawData(in android.hardware.bluetooth.ranging.ChannelSoudingRawData rawData); + void close(android.hardware.bluetooth.ranging.Reason reason); +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSessionCallback.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSessionCallback.aidl new file mode 100644 index 0000000000..d6622de09d --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSessionCallback.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +interface IBluetoothChannelSoundingSessionCallback { + void onOpened(android.hardware.bluetooth.ranging.Reason reason); + void onOpenFailed(android.hardware.bluetooth.ranging.Reason reason); + void onResult(in android.hardware.bluetooth.ranging.RangingResult result); + void onClose(android.hardware.bluetooth.ranging.Reason reason); + void onCloseFailed(android.hardware.bluetooth.ranging.Reason reason); +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/LocationType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/LocationType.aidl new file mode 100644 index 0000000000..d95af268c9 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/LocationType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum LocationType { + UNKNOWN = 0x00, + INDOOR = 0x01, + OUTDOOR = 0x02, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ModeType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ModeType.aidl new file mode 100644 index 0000000000..1e8ae91037 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ModeType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum ModeType { + ZERO = 0x00, + ONE = 0x01, + TWO = 0x02, + THREE = 0x03, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Nadm.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Nadm.aidl new file mode 100644 index 0000000000..a0aa47b16d --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Nadm.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum Nadm { + ATTACK_IS_EXTREMELY_UNLIKELY = 0x00, + ATTACK_IS_VERY_UNLIKELY = 0x01, + ATTACK_IS_UNLIKELY = 0x02, + ATTACK_IS_POSSIBLE = 0x03, + ATTACK_IS_LIKELY = 0x04, + ATTACK_IS_VERY_LIKELY = 0x05, + ATTACK_IS_EXTREMELY_LIKELY = 0x06, + UNKNOWN = 0xFFu8, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RangingResult.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RangingResult.aidl new file mode 100644 index 0000000000..d092b80628 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RangingResult.aidl @@ -0,0 +1,48 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable RangingResult { + double resultMeters; + double errorMeters; + double azimuthDegrees; + double errorAzimuthDegrees; + double altitudeDegrees; + double errorAltitudeDegrees; + double delaySpreadMeters; + byte confidenceLevel; + android.hardware.bluetooth.ranging.Nadm detectedAttackLevel; + double velocityMetersPerSecond; + @nullable byte[] vendorSpecificCsRangingResultsData; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Reason.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Reason.aidl new file mode 100644 index 0000000000..ddd44fe90b --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Reason.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum Reason { + LOCAL_STACK_REQUEST, + HAL_INITIATED, + HARDWARE_INITIATED, + ERROR_INVALID_PARAMETER, + ERROR_UNKNOWN, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ResultType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ResultType.aidl new file mode 100644 index 0000000000..b3e098cc6d --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ResultType.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum ResultType { + RESULT_METERS = 0x00, + ERROR_METERS = 0x01, + AZIMUTH_DEGREES = 0x02, + ERROR_AZIMUTH_DEGREES = 0x03, + ALTITUDE_DEGREES = 0x04, + ERROR_ALTITUDE_DEGREES = 0x05, + DELAY_SPREAD_METERS = 0x06, + CONFIDENCE_LEVEL = 0x07, + SECURITY_LEVEL = 0x08, + VELOCITY = 0x09, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Role.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Role.aidl new file mode 100644 index 0000000000..61ee1aa432 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Role.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum Role { + INITIATOR = 0, + REFLECTOR = 1, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RttType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RttType.aidl new file mode 100644 index 0000000000..e662c07c2b --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RttType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum RttType { + AA_COARSE = 0x00, + WITH_32_BIT_SOUNDING_SEQUENCE = 0x01, + WITH_96_BIT_SOUNDING_SEQUENCE = 0x02, + WITH_32_BIT_RANDOM_SEQUENCE = 0x03, + WITH_64_BIT_RANDOM_SEQUENCE = 0x04, + WITH_96_BIT_RANDOM_SEQUENCE = 0x05, + WITH_128_BIT_RANDOM_SEQUENCE = 0x06, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SessionType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SessionType.aidl new file mode 100644 index 0000000000..d43022f023 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SessionType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum SessionType { + SOFTWARE_STACK_DATA_PARSING = 0, + HARDWARE_OFFLOAD_DATA_PARSING = 1, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SightType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SightType.aidl new file mode 100644 index 0000000000..6e96ba4bea --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SightType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum SightType { + UNKNOWN = 0x00, + LINE_OF_SIGHT = 0x01, + NON_LINE_OF_SIGHT = 0x02, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/StepTonePct.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/StepTonePct.aidl new file mode 100644 index 0000000000..412574856e --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/StepTonePct.aidl @@ -0,0 +1,53 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable StepTonePct { + List tonePcts; + byte[] toneQualityIndicator; + byte toneExtensionAntennaIndex; + const int TONE_QUALITY_GOOD = 0; + const int TONE_QUALITY_MEDIUM = 1; + const int TONE_QUALITY_LOW = 2; + const int TONE_QUALITY_UNAVAILABLE = 3; + const int EXTENSION_SLOT_NONE = 0; + const int EXTENSION_SLOT_TONE_NOT_EXPECTED_TO_BE_PRESENT = 1; + const int EXTENSION_SLOT_TONE_EXPECTED_TO_BE_PRESENT = 2; + const int EXTENSION_SLOT_SHIFT_AMOUNT = 4; + const byte TONE_EXTENSION_ANTENNA_1 = 0x0; + const byte TONE_EXTENSION_ANTENNA_2 = 0x1; + const byte TONE_EXTENSION_ANTENNA_3 = 0x2; + const byte TONE_EXTENSION_ANTENNA_4 = 0x3; + const byte TONE_EXTENSION_UNUSED = 0xFFu8; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SubModeType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SubModeType.aidl new file mode 100644 index 0000000000..b72a97d090 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SubModeType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum SubModeType { + ONE = 0x01, + TWO = 0x02, + THREE = 0x03, + UNUSED = 0xffu8, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/VendorSpecificData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/VendorSpecificData.aidl new file mode 100644 index 0000000000..13bf696092 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/VendorSpecificData.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable VendorSpecificData { + byte[16] characteristicUuid; + byte[] opaqueValue; +} diff --git a/broadcastradio/aidl/Android.bp b/broadcastradio/aidl/Android.bp index e8bc5eb6d8..187f2830eb 100644 --- a/broadcastradio/aidl/Android.bp +++ b/broadcastradio/aidl/Android.bp @@ -42,7 +42,12 @@ aidl_interface { version: "1", imports: [], }, + { + version: "2", + imports: [], + }, + ], - frozen: false, + frozen: true, } diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/.hash b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/.hash new file mode 100644 index 0000000000..747c764e12 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/.hash @@ -0,0 +1 @@ +bff68a8bc8b7cc191ab62bee10f7df8e79494467 diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmBandRange.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmBandRange.aidl new file mode 100644 index 0000000000..ca511aa13a --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmBandRange.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AmFmBandRange { + int lowerBound; + int upperBound; + int spacing; + int seekSpacing; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmRegionConfig.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmRegionConfig.aidl new file mode 100644 index 0000000000..b96def32f8 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmRegionConfig.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AmFmRegionConfig { + android.hardware.broadcastradio.AmFmBandRange[] ranges; + int fmDeemphasis; + int fmRds; + const int DEEMPHASIS_D50 = (1 << 0) /* 1 */; + const int DEEMPHASIS_D75 = (1 << 1) /* 2 */; + const int RDS = (1 << 0) /* 1 */; + const int RBDS = (1 << 1) /* 2 */; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Announcement.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Announcement.aidl new file mode 100644 index 0000000000..bbdd86f7dc --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Announcement.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable Announcement { + android.hardware.broadcastradio.ProgramSelector selector; + android.hardware.broadcastradio.AnnouncementType type = android.hardware.broadcastradio.AnnouncementType.INVALID; + android.hardware.broadcastradio.VendorKeyValue[] vendorInfo; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AnnouncementType.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AnnouncementType.aidl new file mode 100644 index 0000000000..1d187fe0b2 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AnnouncementType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="byte") @JavaDerive(equals=true, toString=true) @VintfStability +enum AnnouncementType { + INVALID = 0, + EMERGENCY = 1, + WARNING, + TRAFFIC, + WEATHER, + NEWS, + EVENT, + SPORT, + MISC, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ConfigFlag.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ConfigFlag.aidl new file mode 100644 index 0000000000..d6d33bca50 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ConfigFlag.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="int") @JavaDerive(equals=true, toString=true) @VintfStability +enum ConfigFlag { + FORCE_MONO = 1, + /** + * @deprecated Use {link #FORCE_ANALOG_FM} instead + */ + FORCE_ANALOG, + FORCE_DIGITAL, + RDS_AF, + RDS_REG, + DAB_DAB_LINKING, + DAB_FM_LINKING, + DAB_DAB_SOFT_LINKING, + DAB_FM_SOFT_LINKING, + FORCE_ANALOG_FM, + FORCE_ANALOG_AM, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/DabTableEntry.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/DabTableEntry.aidl new file mode 100644 index 0000000000..162f4abd62 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/DabTableEntry.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable DabTableEntry { + String label; + int frequencyKhz; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/HdSubChannel.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/HdSubChannel.aidl new file mode 100644 index 0000000000..dd0613459c --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/HdSubChannel.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="int") @JavaDerive(equals=true, toString=true) @VintfStability +enum HdSubChannel { + HD1 = 0, + HD2 = 1, + HD3 = 2, + HD4 = 3, + HD5 = 4, + HD6 = 5, + HD7 = 6, + HD8 = 7, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IAnnouncementListener.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IAnnouncementListener.aidl new file mode 100644 index 0000000000..346af5807d --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IAnnouncementListener.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@VintfStability +interface IAnnouncementListener { + oneway void onListUpdated(in android.hardware.broadcastradio.Announcement[] announcements); +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IBroadcastRadio.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IBroadcastRadio.aidl new file mode 100644 index 0000000000..39eb04c105 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IBroadcastRadio.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@VintfStability +interface IBroadcastRadio { + android.hardware.broadcastradio.Properties getProperties(); + android.hardware.broadcastradio.AmFmRegionConfig getAmFmRegionConfig(in boolean full); + android.hardware.broadcastradio.DabTableEntry[] getDabRegionConfig(); + void setTunerCallback(in android.hardware.broadcastradio.ITunerCallback callback); + void unsetTunerCallback(); + void tune(in android.hardware.broadcastradio.ProgramSelector program); + void seek(in boolean directionUp, in boolean skipSubChannel); + void step(in boolean directionUp); + void cancel(); + void startProgramListUpdates(in android.hardware.broadcastradio.ProgramFilter filter); + void stopProgramListUpdates(); + boolean isConfigFlagSet(in android.hardware.broadcastradio.ConfigFlag flag); + void setConfigFlag(in android.hardware.broadcastradio.ConfigFlag flag, in boolean value); + android.hardware.broadcastradio.VendorKeyValue[] setParameters(in android.hardware.broadcastradio.VendorKeyValue[] parameters); + android.hardware.broadcastradio.VendorKeyValue[] getParameters(in String[] keys); + byte[] getImage(in int id); + android.hardware.broadcastradio.ICloseHandle registerAnnouncementListener(in android.hardware.broadcastradio.IAnnouncementListener listener, in android.hardware.broadcastradio.AnnouncementType[] enabled); + const int INVALID_IMAGE = 0; + const int ANTENNA_STATE_CHANGE_TIMEOUT_MS = 100; + const int LIST_COMPLETE_TIMEOUT_MS = 300000; + const int TUNER_TIMEOUT_MS = 30000; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ICloseHandle.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ICloseHandle.aidl new file mode 100644 index 0000000000..75e7f2a4c0 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ICloseHandle.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@VintfStability +interface ICloseHandle { + void close(); +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ITunerCallback.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ITunerCallback.aidl new file mode 100644 index 0000000000..f5badade46 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ITunerCallback.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@VintfStability +interface ITunerCallback { + oneway void onTuneFailed(in android.hardware.broadcastradio.Result result, in android.hardware.broadcastradio.ProgramSelector selector); + oneway void onCurrentProgramInfoChanged(in android.hardware.broadcastradio.ProgramInfo info); + oneway void onProgramListUpdated(in android.hardware.broadcastradio.ProgramListChunk chunk); + oneway void onAntennaStateChange(in boolean connected); + oneway void onConfigFlagUpdated(in android.hardware.broadcastradio.ConfigFlag flag, in boolean value); + oneway void onParametersUpdated(in android.hardware.broadcastradio.VendorKeyValue[] parameters); +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IdentifierType.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IdentifierType.aidl new file mode 100644 index 0000000000..ed41af00bc --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IdentifierType.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="int") @JavaDerive(equals=true, toString=true) @VintfStability +enum IdentifierType { + VENDOR_START = 1000, + VENDOR_END = 1999, + INVALID = 0, + AMFM_FREQUENCY_KHZ, + RDS_PI, + HD_STATION_ID_EXT, + HD_STATION_NAME, + DAB_SID_EXT, + DAB_ENSEMBLE, + DAB_SCID, + DAB_FREQUENCY_KHZ, + DRMO_SERVICE_ID, + DRMO_FREQUENCY_KHZ, + /** + * @deprecated SiriusXM Satellite Radio is not supported. + */ + SXM_SERVICE_ID = (DRMO_FREQUENCY_KHZ + 2) /* 12 */, + /** + * @deprecated SiriusXM Satellite Radio is not supported. + */ + SXM_CHANNEL, + HD_STATION_LOCATION, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Metadata.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Metadata.aidl new file mode 100644 index 0000000000..b4a1efa488 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Metadata.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +union Metadata { + String rdsPs; + int rdsPty; + int rbdsPty; + String rdsRt; + String songTitle; + String songArtist; + String songAlbum; + int stationIcon; + int albumArt; + String programName; + String dabEnsembleName; + String dabEnsembleNameShort; + String dabServiceName; + String dabServiceNameShort; + String dabComponentName; + String dabComponentNameShort; + String genre; + String commentShortDescription; + String commentActualText; + String commercial; + String[] ufids; + String hdStationNameShort; + String hdStationNameLong; + int hdSubChannelsAvailable; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramFilter.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramFilter.aidl new file mode 100644 index 0000000000..9edeb8d5c6 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramFilter.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramFilter { + android.hardware.broadcastradio.IdentifierType[] identifierTypes; + android.hardware.broadcastradio.ProgramIdentifier[] identifiers; + boolean includeCategories; + boolean excludeModifications; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramIdentifier.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramIdentifier.aidl new file mode 100644 index 0000000000..66763508ad --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramIdentifier.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramIdentifier { + android.hardware.broadcastradio.IdentifierType type = android.hardware.broadcastradio.IdentifierType.INVALID; + long value; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramInfo.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramInfo.aidl new file mode 100644 index 0000000000..997cdd7dd0 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramInfo.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramInfo { + android.hardware.broadcastradio.ProgramSelector selector; + android.hardware.broadcastradio.ProgramIdentifier logicallyTunedTo; + android.hardware.broadcastradio.ProgramIdentifier physicallyTunedTo; + @nullable android.hardware.broadcastradio.ProgramIdentifier[] relatedContent; + int infoFlags; + int signalQuality; + android.hardware.broadcastradio.Metadata[] metadata; + android.hardware.broadcastradio.VendorKeyValue[] vendorInfo; + const int FLAG_LIVE = (1 << 0) /* 1 */; + const int FLAG_MUTED = (1 << 1) /* 2 */; + const int FLAG_TRAFFIC_PROGRAM = (1 << 2) /* 4 */; + const int FLAG_TRAFFIC_ANNOUNCEMENT = (1 << 3) /* 8 */; + const int FLAG_TUNABLE = (1 << 4) /* 16 */; + const int FLAG_STEREO = (1 << 5) /* 32 */; + const int FLAG_SIGNAL_ACQUISITION = (1 << 6) /* 64 */; + const int FLAG_HD_SIS_ACQUISITION = (1 << 7) /* 128 */; + const int FLAG_HD_AUDIO_ACQUISITION = (1 << 8) /* 256 */; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramListChunk.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramListChunk.aidl new file mode 100644 index 0000000000..5d53b99302 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramListChunk.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramListChunk { + boolean purge; + boolean complete; + android.hardware.broadcastradio.ProgramInfo[] modified; + @nullable android.hardware.broadcastradio.ProgramIdentifier[] removed; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramSelector.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramSelector.aidl new file mode 100644 index 0000000000..9af1dc8880 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramSelector.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramSelector { + android.hardware.broadcastradio.ProgramIdentifier primaryId; + android.hardware.broadcastradio.ProgramIdentifier[] secondaryIds; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Properties.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Properties.aidl new file mode 100644 index 0000000000..643b819d8a --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Properties.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable Properties { + String maker; + String product; + String version; + String serial; + android.hardware.broadcastradio.IdentifierType[] supportedIdentifierTypes; + android.hardware.broadcastradio.VendorKeyValue[] vendorInfo; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Result.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Result.aidl new file mode 100644 index 0000000000..b0fc018cb7 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Result.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="int") @JavaDerive(equals=true, toString=true) @VintfStability +enum Result { + OK = 0, + INTERNAL_ERROR, + INVALID_ARGUMENTS, + INVALID_STATE, + NOT_SUPPORTED, + TIMEOUT, + CANCELED, + UNKNOWN_ERROR, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/VendorKeyValue.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/VendorKeyValue.aidl new file mode 100644 index 0000000000..3c6b19438f --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/VendorKeyValue.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VendorKeyValue { + String key; + String value; +} diff --git a/camera/device/aidl/Android.bp b/camera/device/aidl/Android.bp index e4006e7d10..78aefac997 100644 --- a/camera/device/aidl/Android.bp +++ b/camera/device/aidl/Android.bp @@ -12,7 +12,7 @@ aidl_interface { name: "android.hardware.camera.device", vendor_available: true, srcs: ["android/hardware/camera/device/*.aidl"], - frozen: false, + frozen: true, stability: "vintf", imports: [ "android.hardware.common-V2", @@ -51,6 +51,16 @@ aidl_interface { "android.hardware.graphics.common-V5", ], }, + { + version: "3", + imports: [ + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + "android.hardware.camera.common-V1", + "android.hardware.camera.metadata-V3", + "android.hardware.graphics.common-V5", + ], + }, ], diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/.hash b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/.hash new file mode 100644 index 0000000000..9760601073 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/.hash @@ -0,0 +1 @@ +ac7c7f74993871015f73daff1ea0c7f4d4f85ca7 diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferCache.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferCache.aidl new file mode 100644 index 0000000000..9439172d6b --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferCache.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable BufferCache { + int streamId; + long bufferId; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequest.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequest.aidl new file mode 100644 index 0000000000..c40a24aa79 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequest.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable BufferRequest { + int streamId; + int numBuffersRequested; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequestStatus.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequestStatus.aidl new file mode 100644 index 0000000000..72fb61ba29 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequestStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum BufferRequestStatus { + OK = 0, + FAILED_PARTIAL = 1, + FAILED_CONFIGURING = 2, + FAILED_ILLEGAL_ARGUMENTS = 3, + FAILED_UNKNOWN = 4, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferStatus.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferStatus.aidl new file mode 100644 index 0000000000..43a2b35e74 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum BufferStatus { + OK = 0, + ERROR = 1, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlob.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlob.aidl new file mode 100644 index 0000000000..520181c87f --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlob.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CameraBlob { + android.hardware.camera.device.CameraBlobId blobId; + int blobSizeBytes; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlobId.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlobId.aidl new file mode 100644 index 0000000000..24083ad512 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlobId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum CameraBlobId { + JPEG = 0x00FF, + JPEG_APP_SEGMENTS = 0x100, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraMetadata.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraMetadata.aidl new file mode 100644 index 0000000000..b96d69e1b8 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraMetadata.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CameraMetadata { + byte[] metadata; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraOfflineSessionInfo.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraOfflineSessionInfo.aidl new file mode 100644 index 0000000000..1ad8e115c8 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraOfflineSessionInfo.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CameraOfflineSessionInfo { + android.hardware.camera.device.OfflineStream[] offlineStreams; + android.hardware.camera.device.OfflineRequest[] offlineRequests; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureRequest.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureRequest.aidl new file mode 100644 index 0000000000..6b5b256571 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureRequest.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CaptureRequest { + int frameNumber; + long fmqSettingsSize; + android.hardware.camera.device.CameraMetadata settings; + android.hardware.camera.device.StreamBuffer inputBuffer; + int inputWidth; + int inputHeight; + android.hardware.camera.device.StreamBuffer[] outputBuffers; + android.hardware.camera.device.PhysicalCameraSetting[] physicalCameraSettings; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureResult.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureResult.aidl new file mode 100644 index 0000000000..a820e2c463 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CaptureResult { + int frameNumber; + long fmqResultSize; + android.hardware.camera.device.CameraMetadata result; + android.hardware.camera.device.StreamBuffer[] outputBuffers; + android.hardware.camera.device.StreamBuffer inputBuffer; + int partialResult; + android.hardware.camera.device.PhysicalCameraMetadata[] physicalCameraMetadata; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ConfigureStreamsRet.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ConfigureStreamsRet.aidl new file mode 100644 index 0000000000..670f7d272b --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ConfigureStreamsRet.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable ConfigureStreamsRet { + android.hardware.camera.device.HalStream[] halStreams; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorCode.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorCode.aidl new file mode 100644 index 0000000000..2f9887a7a5 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorCode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum ErrorCode { + ERROR_DEVICE = 1, + ERROR_REQUEST = 2, + ERROR_RESULT = 3, + ERROR_BUFFER = 4, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorMsg.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorMsg.aidl new file mode 100644 index 0000000000..b2e9512bbf --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorMsg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable ErrorMsg { + int frameNumber; + int errorStreamId; + android.hardware.camera.device.ErrorCode errorCode; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/HalStream.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/HalStream.aidl new file mode 100644 index 0000000000..3ae261d4d2 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/HalStream.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable HalStream { + int id; + android.hardware.graphics.common.PixelFormat overrideFormat; + android.hardware.graphics.common.BufferUsage producerUsage; + android.hardware.graphics.common.BufferUsage consumerUsage; + int maxBuffers; + android.hardware.graphics.common.Dataspace overrideDataSpace; + String physicalCameraId; + boolean supportOffline; + boolean enableHalBufferManager; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDevice.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDevice.aidl new file mode 100644 index 0000000000..f73483a4b3 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDevice.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraDevice { + android.hardware.camera.device.CameraMetadata getCameraCharacteristics(); + android.hardware.camera.device.CameraMetadata getPhysicalCameraCharacteristics(in String physicalCameraId); + android.hardware.camera.common.CameraResourceCost getResourceCost(); + boolean isStreamCombinationSupported(in android.hardware.camera.device.StreamConfiguration streams); + android.hardware.camera.device.ICameraDeviceSession open(in android.hardware.camera.device.ICameraDeviceCallback callback); + android.hardware.camera.device.ICameraInjectionSession openInjectionSession(in android.hardware.camera.device.ICameraDeviceCallback callback); + void setTorchMode(boolean on); + void turnOnTorchWithStrengthLevel(int torchStrength); + int getTorchStrengthLevel(); + android.hardware.camera.device.CameraMetadata constructDefaultRequestSettings(in android.hardware.camera.device.RequestTemplate type); + boolean isStreamCombinationWithSettingsSupported(in android.hardware.camera.device.StreamConfiguration streams); + android.hardware.camera.device.CameraMetadata getSessionCharacteristics(in android.hardware.camera.device.StreamConfiguration sessionConfig); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceCallback.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceCallback.aidl new file mode 100644 index 0000000000..7b79c6c87a --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceCallback.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraDeviceCallback { + void notify(in android.hardware.camera.device.NotifyMsg[] msgs); + void processCaptureResult(in android.hardware.camera.device.CaptureResult[] results); + android.hardware.camera.device.BufferRequestStatus requestStreamBuffers(in android.hardware.camera.device.BufferRequest[] bufReqs, out android.hardware.camera.device.StreamBufferRet[] buffers); + void returnStreamBuffers(in android.hardware.camera.device.StreamBuffer[] buffers); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceSession.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceSession.aidl new file mode 100644 index 0000000000..b6ae734392 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceSession.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraDeviceSession { + void close(); + android.hardware.camera.device.HalStream[] configureStreams(in android.hardware.camera.device.StreamConfiguration requestedConfiguration); + android.hardware.camera.device.CameraMetadata constructDefaultRequestSettings(in android.hardware.camera.device.RequestTemplate type); + void flush(); + android.hardware.common.fmq.MQDescriptor getCaptureRequestMetadataQueue(); + android.hardware.common.fmq.MQDescriptor getCaptureResultMetadataQueue(); + boolean isReconfigurationRequired(in android.hardware.camera.device.CameraMetadata oldSessionParams, in android.hardware.camera.device.CameraMetadata newSessionParams); + int processCaptureRequest(in android.hardware.camera.device.CaptureRequest[] requests, in android.hardware.camera.device.BufferCache[] cachesToRemove); + oneway void signalStreamFlush(in int[] streamIds, in int streamConfigCounter); + android.hardware.camera.device.ICameraOfflineSession switchToOffline(in int[] streamsToKeep, out android.hardware.camera.device.CameraOfflineSessionInfo offlineSessionInfo); + void repeatingRequestEnd(in int frameNumber, in int[] streamIds); + android.hardware.camera.device.ConfigureStreamsRet configureStreamsV2(in android.hardware.camera.device.StreamConfiguration requestedConfiguration); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraInjectionSession.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraInjectionSession.aidl new file mode 100644 index 0000000000..80f74f331c --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraInjectionSession.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraInjectionSession { + void configureInjectionStreams(in android.hardware.camera.device.StreamConfiguration requestedConfiguration, in android.hardware.camera.device.CameraMetadata characteristics); + android.hardware.camera.device.ICameraDeviceSession getCameraDeviceSession(); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraOfflineSession.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraOfflineSession.aidl new file mode 100644 index 0000000000..727d856fc8 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraOfflineSession.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraOfflineSession { + void close(); + android.hardware.common.fmq.MQDescriptor getCaptureResultMetadataQueue(); + void setCallback(in android.hardware.camera.device.ICameraDeviceCallback cb); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/NotifyMsg.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/NotifyMsg.aidl new file mode 100644 index 0000000000..3ad7e52e63 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/NotifyMsg.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +union NotifyMsg { + android.hardware.camera.device.ErrorMsg error; + android.hardware.camera.device.ShutterMsg shutter; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineRequest.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineRequest.aidl new file mode 100644 index 0000000000..6e6f29d6fc --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineRequest.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable OfflineRequest { + int frameNumber; + int[] pendingStreams; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineStream.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineStream.aidl new file mode 100644 index 0000000000..54cb1fed0e --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineStream.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable OfflineStream { + int id; + int numOutstandingBuffers; + long[] circulatingBufferIds; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraMetadata.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraMetadata.aidl new file mode 100644 index 0000000000..3d66ab8713 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraMetadata.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable PhysicalCameraMetadata { + long fmqMetadataSize; + String physicalCameraId; + android.hardware.camera.device.CameraMetadata metadata; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraSetting.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraSetting.aidl new file mode 100644 index 0000000000..a6c241d453 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraSetting.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable PhysicalCameraSetting { + long fmqSettingsSize; + String physicalCameraId; + android.hardware.camera.device.CameraMetadata settings; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/RequestTemplate.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/RequestTemplate.aidl new file mode 100644 index 0000000000..1f87aa338d --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/RequestTemplate.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum RequestTemplate { + PREVIEW = 1, + STILL_CAPTURE = 2, + VIDEO_RECORD = 3, + VIDEO_SNAPSHOT = 4, + ZERO_SHUTTER_LAG = 5, + MANUAL = 6, + VENDOR_TEMPLATE_START = 0x40000000, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ShutterMsg.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ShutterMsg.aidl new file mode 100644 index 0000000000..ce059ac0db --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ShutterMsg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable ShutterMsg { + int frameNumber; + long timestamp; + long readoutTimestamp; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/Stream.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/Stream.aidl new file mode 100644 index 0000000000..5057663e65 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/Stream.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable Stream { + int id; + android.hardware.camera.device.StreamType streamType; + int width; + int height; + android.hardware.graphics.common.PixelFormat format; + android.hardware.graphics.common.BufferUsage usage; + android.hardware.graphics.common.Dataspace dataSpace; + android.hardware.camera.device.StreamRotation rotation; + String physicalCameraId; + int bufferSize; + int groupId; + android.hardware.camera.metadata.SensorPixelMode[] sensorPixelModesUsed; + android.hardware.camera.metadata.RequestAvailableDynamicRangeProfilesMap dynamicRangeProfile; + android.hardware.camera.metadata.ScalerAvailableStreamUseCases useCase; + int colorSpace; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffer.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffer.aidl new file mode 100644 index 0000000000..8fabf032db --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffer.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable StreamBuffer { + int streamId; + long bufferId; + android.hardware.common.NativeHandle buffer; + android.hardware.camera.device.BufferStatus status; + android.hardware.common.NativeHandle acquireFence; + android.hardware.common.NativeHandle releaseFence; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRequestError.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRequestError.aidl new file mode 100644 index 0000000000..f450149635 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRequestError.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum StreamBufferRequestError { + NO_BUFFER_AVAILABLE = 1, + MAX_BUFFER_EXCEEDED = 2, + STREAM_DISCONNECTED = 3, + UNKNOWN_ERROR = 4, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRet.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRet.aidl new file mode 100644 index 0000000000..3998cc34fa --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRet.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable StreamBufferRet { + int streamId; + android.hardware.camera.device.StreamBuffersVal val; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffersVal.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffersVal.aidl new file mode 100644 index 0000000000..bebc9fcced --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffersVal.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +union StreamBuffersVal { + android.hardware.camera.device.StreamBufferRequestError error = android.hardware.camera.device.StreamBufferRequestError.UNKNOWN_ERROR; + android.hardware.camera.device.StreamBuffer[] buffers; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfiguration.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfiguration.aidl new file mode 100644 index 0000000000..97fd067b8d --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable StreamConfiguration { + android.hardware.camera.device.Stream[] streams; + android.hardware.camera.device.StreamConfigurationMode operationMode; + android.hardware.camera.device.CameraMetadata sessionParams; + int streamConfigCounter; + boolean multiResolutionInputImage; + long logId = 0; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfigurationMode.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfigurationMode.aidl new file mode 100644 index 0000000000..ef7ec25d07 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfigurationMode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum StreamConfigurationMode { + NORMAL_MODE = 0, + CONSTRAINED_HIGH_SPEED_MODE = 1, + VENDOR_MODE_0 = 0x8000, + VENDOR_MODE_1, + VENDOR_MODE_2, + VENDOR_MODE_3, + VENDOR_MODE_4, + VENDOR_MODE_5, + VENDOR_MODE_6, + VENDOR_MODE_7, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamRotation.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamRotation.aidl new file mode 100644 index 0000000000..2ef4274f88 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamRotation.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum StreamRotation { + ROTATION_0 = 0, + ROTATION_90 = 1, + ROTATION_180 = 2, + ROTATION_270 = 3, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamType.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamType.aidl new file mode 100644 index 0000000000..0f13fe8be7 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum StreamType { + OUTPUT = 0, + INPUT = 1, +} diff --git a/camera/metadata/aidl/Android.bp b/camera/metadata/aidl/Android.bp index 374eefcaaa..ae8ba14256 100644 --- a/camera/metadata/aidl/Android.bp +++ b/camera/metadata/aidl/Android.bp @@ -12,7 +12,7 @@ aidl_interface { name: "android.hardware.camera.metadata", vendor_available: true, srcs: ["android/hardware/camera/metadata/*.aidl"], - frozen: false, + frozen: true, stability: "vintf", backend: { cpp: { @@ -34,6 +34,10 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/.hash b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/.hash new file mode 100644 index 0000000000..961b3dd108 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/.hash @@ -0,0 +1 @@ +c0c7370cf1dd22d0e7416ddb1cb942dd0035e59a diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLensFacing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLensFacing.aidl new file mode 100644 index 0000000000..18917f7752 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLensFacing.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum AutomotiveLensFacing { + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_FRONT, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_REAR, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_RIGHT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLocation.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLocation.aidl new file mode 100644 index 0000000000..ad6003f3b1 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLocation.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum AutomotiveLocation { + ANDROID_AUTOMOTIVE_LOCATION_INTERIOR, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_FRONT, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_REAR, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_LEFT, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_RIGHT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_OTHER, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_FRONT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_REAR, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_LEFT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_RIGHT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/BlackLevelLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/BlackLevelLock.aidl new file mode 100644 index 0000000000..1f3e76f0b8 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/BlackLevelLock.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum BlackLevelLock { + ANDROID_BLACK_LEVEL_LOCK_OFF, + ANDROID_BLACK_LEVEL_LOCK_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSection.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSection.aidl new file mode 100644 index 0000000000..138101b4cb --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSection.aidl @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum CameraMetadataSection { + ANDROID_COLOR_CORRECTION, + ANDROID_CONTROL, + ANDROID_DEMOSAIC, + ANDROID_EDGE, + ANDROID_FLASH, + ANDROID_FLASH_INFO, + ANDROID_HOT_PIXEL, + ANDROID_JPEG, + ANDROID_LENS, + ANDROID_LENS_INFO, + ANDROID_NOISE_REDUCTION, + ANDROID_QUIRKS, + ANDROID_REQUEST, + ANDROID_SCALER, + ANDROID_SENSOR, + ANDROID_SENSOR_INFO, + ANDROID_SHADING, + ANDROID_STATISTICS, + ANDROID_STATISTICS_INFO, + ANDROID_TONEMAP, + ANDROID_LED, + ANDROID_INFO, + ANDROID_BLACK_LEVEL, + ANDROID_SYNC, + ANDROID_REPROCESS, + ANDROID_DEPTH, + ANDROID_LOGICAL_MULTI_CAMERA, + ANDROID_DISTORTION_CORRECTION, + ANDROID_HEIC, + ANDROID_HEIC_INFO, + ANDROID_AUTOMOTIVE, + ANDROID_AUTOMOTIVE_LENS, + ANDROID_EXTENSION, + ANDROID_JPEGR, + VENDOR_SECTION = 0x8000, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl new file mode 100644 index 0000000000..85eee08a45 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum CameraMetadataSectionStart { + ANDROID_COLOR_CORRECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_COLOR_CORRECTION << 16) /* 0 */, + ANDROID_CONTROL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_CONTROL << 16) /* 65536 */, + ANDROID_DEMOSAIC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DEMOSAIC << 16) /* 131072 */, + ANDROID_EDGE_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_EDGE << 16) /* 196608 */, + ANDROID_FLASH_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_FLASH << 16) /* 262144 */, + ANDROID_FLASH_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_FLASH_INFO << 16) /* 327680 */, + ANDROID_HOT_PIXEL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HOT_PIXEL << 16) /* 393216 */, + ANDROID_JPEG_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_JPEG << 16) /* 458752 */, + ANDROID_LENS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LENS << 16) /* 524288 */, + ANDROID_LENS_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LENS_INFO << 16) /* 589824 */, + ANDROID_NOISE_REDUCTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_NOISE_REDUCTION << 16) /* 655360 */, + ANDROID_QUIRKS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_QUIRKS << 16) /* 720896 */, + ANDROID_REQUEST_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_REQUEST << 16) /* 786432 */, + ANDROID_SCALER_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SCALER << 16) /* 851968 */, + ANDROID_SENSOR_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SENSOR << 16) /* 917504 */, + ANDROID_SENSOR_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SENSOR_INFO << 16) /* 983040 */, + ANDROID_SHADING_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SHADING << 16) /* 1048576 */, + ANDROID_STATISTICS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_STATISTICS << 16) /* 1114112 */, + ANDROID_STATISTICS_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_STATISTICS_INFO << 16) /* 1179648 */, + ANDROID_TONEMAP_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_TONEMAP << 16) /* 1245184 */, + ANDROID_LED_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LED << 16) /* 1310720 */, + ANDROID_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_INFO << 16) /* 1376256 */, + ANDROID_BLACK_LEVEL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_BLACK_LEVEL << 16) /* 1441792 */, + ANDROID_SYNC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SYNC << 16) /* 1507328 */, + ANDROID_REPROCESS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_REPROCESS << 16) /* 1572864 */, + ANDROID_DEPTH_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DEPTH << 16) /* 1638400 */, + ANDROID_LOGICAL_MULTI_CAMERA_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LOGICAL_MULTI_CAMERA << 16) /* 1703936 */, + ANDROID_DISTORTION_CORRECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DISTORTION_CORRECTION << 16) /* 1769472 */, + ANDROID_HEIC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HEIC << 16) /* 1835008 */, + ANDROID_HEIC_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HEIC_INFO << 16) /* 1900544 */, + ANDROID_AUTOMOTIVE_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_AUTOMOTIVE << 16) /* 1966080 */, + ANDROID_AUTOMOTIVE_LENS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_AUTOMOTIVE_LENS << 16) /* 2031616 */, + ANDROID_EXTENSION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_EXTENSION << 16) /* 2097152 */, + ANDROID_JPEGR_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_JPEGR << 16) /* 2162688 */, + VENDOR_SECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.VENDOR_SECTION << 16) /* -2147483648 */, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataTag.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataTag.aidl new file mode 100644 index 0000000000..9321ec0e37 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataTag.aidl @@ -0,0 +1,356 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum CameraMetadataTag { + ANDROID_COLOR_CORRECTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_COLOR_CORRECTION_START /* 0 */, + ANDROID_COLOR_CORRECTION_TRANSFORM, + ANDROID_COLOR_CORRECTION_GAINS, + ANDROID_COLOR_CORRECTION_ABERRATION_MODE, + ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES, + ANDROID_CONTROL_AE_ANTIBANDING_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_CONTROL_START /* 65536 */, + ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION, + ANDROID_CONTROL_AE_LOCK, + ANDROID_CONTROL_AE_MODE, + ANDROID_CONTROL_AE_REGIONS, + ANDROID_CONTROL_AE_TARGET_FPS_RANGE, + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, + ANDROID_CONTROL_AF_MODE, + ANDROID_CONTROL_AF_REGIONS, + ANDROID_CONTROL_AF_TRIGGER, + ANDROID_CONTROL_AWB_LOCK, + ANDROID_CONTROL_AWB_MODE, + ANDROID_CONTROL_AWB_REGIONS, + ANDROID_CONTROL_CAPTURE_INTENT, + ANDROID_CONTROL_EFFECT_MODE, + ANDROID_CONTROL_MODE, + ANDROID_CONTROL_SCENE_MODE, + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE, + ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES, + ANDROID_CONTROL_AE_AVAILABLE_MODES, + ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, + ANDROID_CONTROL_AE_COMPENSATION_RANGE, + ANDROID_CONTROL_AE_COMPENSATION_STEP, + ANDROID_CONTROL_AF_AVAILABLE_MODES, + ANDROID_CONTROL_AVAILABLE_EFFECTS, + ANDROID_CONTROL_AVAILABLE_SCENE_MODES, + ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES, + ANDROID_CONTROL_AWB_AVAILABLE_MODES, + ANDROID_CONTROL_MAX_REGIONS, + ANDROID_CONTROL_SCENE_MODE_OVERRIDES, + ANDROID_CONTROL_AE_PRECAPTURE_ID, + ANDROID_CONTROL_AE_STATE, + ANDROID_CONTROL_AF_STATE, + ANDROID_CONTROL_AF_TRIGGER_ID, + ANDROID_CONTROL_AWB_STATE, + ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS, + ANDROID_CONTROL_AE_LOCK_AVAILABLE, + ANDROID_CONTROL_AWB_LOCK_AVAILABLE, + ANDROID_CONTROL_AVAILABLE_MODES, + ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE, + ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST, + ANDROID_CONTROL_ENABLE_ZSL, + ANDROID_CONTROL_AF_SCENE_CHANGE, + ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES, + ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES, + ANDROID_CONTROL_EXTENDED_SCENE_MODE, + ANDROID_CONTROL_ZOOM_RATIO_RANGE, + ANDROID_CONTROL_ZOOM_RATIO, + ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_CONTROL_SETTINGS_OVERRIDE = 65588, + ANDROID_CONTROL_AVAILABLE_SETTINGS_OVERRIDES, + ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER, + ANDROID_CONTROL_AUTOFRAMING, + ANDROID_CONTROL_AUTOFRAMING_AVAILABLE, + ANDROID_CONTROL_AUTOFRAMING_STATE, + ANDROID_CONTROL_LOW_LIGHT_BOOST_INFO_LUMINANCE_RANGE, + ANDROID_CONTROL_LOW_LIGHT_BOOST_STATE, + ANDROID_DEMOSAIC_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DEMOSAIC_START /* 131072 */, + ANDROID_EDGE_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_EDGE_START /* 196608 */, + ANDROID_EDGE_STRENGTH, + ANDROID_EDGE_AVAILABLE_EDGE_MODES, + ANDROID_FLASH_FIRING_POWER = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_FLASH_START /* 262144 */, + ANDROID_FLASH_FIRING_TIME, + ANDROID_FLASH_MODE, + ANDROID_FLASH_COLOR_TEMPERATURE, + ANDROID_FLASH_MAX_ENERGY, + ANDROID_FLASH_STATE, + ANDROID_FLASH_STRENGTH_LEVEL, + ANDROID_FLASH_SINGLE_STRENGTH_MAX_LEVEL, + ANDROID_FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL, + ANDROID_FLASH_TORCH_STRENGTH_MAX_LEVEL, + ANDROID_FLASH_TORCH_STRENGTH_DEFAULT_LEVEL, + ANDROID_FLASH_INFO_AVAILABLE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_FLASH_INFO_START /* 327680 */, + ANDROID_FLASH_INFO_CHARGE_DURATION, + ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL, + ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL, + ANDROID_HOT_PIXEL_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HOT_PIXEL_START /* 393216 */, + ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES, + ANDROID_JPEG_GPS_COORDINATES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_JPEG_START /* 458752 */, + ANDROID_JPEG_GPS_PROCESSING_METHOD, + ANDROID_JPEG_GPS_TIMESTAMP, + ANDROID_JPEG_ORIENTATION, + ANDROID_JPEG_QUALITY, + ANDROID_JPEG_THUMBNAIL_QUALITY, + ANDROID_JPEG_THUMBNAIL_SIZE, + ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES, + ANDROID_JPEG_MAX_SIZE, + ANDROID_JPEG_SIZE, + ANDROID_LENS_APERTURE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LENS_START /* 524288 */, + ANDROID_LENS_FILTER_DENSITY, + ANDROID_LENS_FOCAL_LENGTH, + ANDROID_LENS_FOCUS_DISTANCE, + ANDROID_LENS_OPTICAL_STABILIZATION_MODE, + ANDROID_LENS_FACING, + ANDROID_LENS_POSE_ROTATION, + ANDROID_LENS_POSE_TRANSLATION, + ANDROID_LENS_FOCUS_RANGE, + ANDROID_LENS_STATE, + ANDROID_LENS_INTRINSIC_CALIBRATION, + ANDROID_LENS_RADIAL_DISTORTION, + ANDROID_LENS_POSE_REFERENCE, + ANDROID_LENS_DISTORTION, + ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION, + ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION, + ANDROID_LENS_INFO_AVAILABLE_APERTURES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LENS_INFO_START /* 589824 */, + ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES, + ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS, + ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION, + ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE, + ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE, + ANDROID_LENS_INFO_SHADING_MAP_SIZE, + ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION, + ANDROID_NOISE_REDUCTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_NOISE_REDUCTION_START /* 655360 */, + ANDROID_NOISE_REDUCTION_STRENGTH, + ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES, + ANDROID_QUIRKS_METERING_CROP_REGION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_QUIRKS_START /* 720896 */, + ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO, + ANDROID_QUIRKS_USE_ZSL_FORMAT, + ANDROID_QUIRKS_USE_PARTIAL_RESULT, + ANDROID_QUIRKS_PARTIAL_RESULT, + ANDROID_REQUEST_FRAME_COUNT = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_REQUEST_START /* 786432 */, + ANDROID_REQUEST_ID, + ANDROID_REQUEST_INPUT_STREAMS, + ANDROID_REQUEST_METADATA_MODE, + ANDROID_REQUEST_OUTPUT_STREAMS, + ANDROID_REQUEST_TYPE, + ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS, + ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS, + ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS, + ANDROID_REQUEST_PIPELINE_DEPTH, + ANDROID_REQUEST_PIPELINE_MAX_DEPTH, + ANDROID_REQUEST_PARTIAL_RESULT_COUNT, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES, + ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS, + ANDROID_REQUEST_AVAILABLE_RESULT_KEYS, + ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS, + ANDROID_REQUEST_AVAILABLE_SESSION_KEYS, + ANDROID_REQUEST_AVAILABLE_PHYSICAL_CAMERA_REQUEST_KEYS, + ANDROID_REQUEST_CHARACTERISTIC_KEYS_NEEDING_PERMISSION, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP, + ANDROID_REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE, + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP, + ANDROID_SCALER_CROP_REGION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SCALER_START /* 851968 */, + ANDROID_SCALER_AVAILABLE_FORMATS, + ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS, + ANDROID_SCALER_AVAILABLE_JPEG_SIZES, + ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, + ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS, + ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES, + ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS, + ANDROID_SCALER_AVAILABLE_RAW_SIZES, + ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, + ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS, + ANDROID_SCALER_AVAILABLE_STALL_DURATIONS, + ANDROID_SCALER_CROPPING_TYPE, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_INPUT_OUTPUT_FORMATS_MAP, + ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES, + ANDROID_SCALER_ROTATE_AND_CROP, + ANDROID_SCALER_DEFAULT_SECURE_IMAGE_SIZE, + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP_MAXIMUM_RESOLUTION, + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES = 851994, + ANDROID_SCALER_RAW_CROP_REGION, + ANDROID_SENSOR_EXPOSURE_TIME = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SENSOR_START /* 917504 */, + ANDROID_SENSOR_FRAME_DURATION, + ANDROID_SENSOR_SENSITIVITY, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1, + ANDROID_SENSOR_REFERENCE_ILLUMINANT2, + ANDROID_SENSOR_CALIBRATION_TRANSFORM1, + ANDROID_SENSOR_CALIBRATION_TRANSFORM2, + ANDROID_SENSOR_COLOR_TRANSFORM1, + ANDROID_SENSOR_COLOR_TRANSFORM2, + ANDROID_SENSOR_FORWARD_MATRIX1, + ANDROID_SENSOR_FORWARD_MATRIX2, + ANDROID_SENSOR_BASE_GAIN_FACTOR, + ANDROID_SENSOR_BLACK_LEVEL_PATTERN, + ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY, + ANDROID_SENSOR_ORIENTATION, + ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS, + ANDROID_SENSOR_TIMESTAMP, + ANDROID_SENSOR_TEMPERATURE, + ANDROID_SENSOR_NEUTRAL_COLOR_POINT, + ANDROID_SENSOR_NOISE_PROFILE, + ANDROID_SENSOR_PROFILE_HUE_SAT_MAP, + ANDROID_SENSOR_PROFILE_TONE_CURVE, + ANDROID_SENSOR_GREEN_SPLIT, + ANDROID_SENSOR_TEST_PATTERN_DATA, + ANDROID_SENSOR_TEST_PATTERN_MODE, + ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES, + ANDROID_SENSOR_ROLLING_SHUTTER_SKEW, + ANDROID_SENSOR_OPTICAL_BLACK_REGIONS, + ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL, + ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL, + ANDROID_SENSOR_OPAQUE_RAW_SIZE, + ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_PIXEL_MODE, + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED, + ANDROID_SENSOR_READOUT_TIMESTAMP, + ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SENSOR_INFO_START /* 983040 */, + ANDROID_SENSOR_INFO_SENSITIVITY_RANGE, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT, + ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE, + ANDROID_SENSOR_INFO_MAX_FRAME_DURATION, + ANDROID_SENSOR_INFO_PHYSICAL_SIZE, + ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE, + ANDROID_SENSOR_INFO_WHITE_LEVEL, + ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE, + ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED, + ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE, + ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_BINNING_FACTOR, + ANDROID_SHADING_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SHADING_START /* 1048576 */, + ANDROID_SHADING_STRENGTH, + ANDROID_SHADING_AVAILABLE_MODES, + ANDROID_STATISTICS_FACE_DETECT_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_STATISTICS_START /* 1114112 */, + ANDROID_STATISTICS_HISTOGRAM_MODE, + ANDROID_STATISTICS_SHARPNESS_MAP_MODE, + ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE, + ANDROID_STATISTICS_FACE_IDS, + ANDROID_STATISTICS_FACE_LANDMARKS, + ANDROID_STATISTICS_FACE_RECTANGLES, + ANDROID_STATISTICS_FACE_SCORES, + ANDROID_STATISTICS_HISTOGRAM, + ANDROID_STATISTICS_SHARPNESS_MAP, + ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP, + ANDROID_STATISTICS_LENS_SHADING_MAP, + ANDROID_STATISTICS_PREDICTED_COLOR_GAINS, + ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM, + ANDROID_STATISTICS_SCENE_FLICKER, + ANDROID_STATISTICS_HOT_PIXEL_MAP, + ANDROID_STATISTICS_LENS_SHADING_MAP_MODE, + ANDROID_STATISTICS_OIS_DATA_MODE, + ANDROID_STATISTICS_OIS_TIMESTAMPS, + ANDROID_STATISTICS_OIS_X_SHIFTS, + ANDROID_STATISTICS_OIS_Y_SHIFTS, + ANDROID_STATISTICS_LENS_INTRINSIC_TIMESTAMPS, + ANDROID_STATISTICS_LENS_INTRINSIC_SAMPLES, + ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_STATISTICS_INFO_START /* 1179648 */, + ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT, + ANDROID_STATISTICS_INFO_MAX_FACE_COUNT, + ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT, + ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE, + ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE, + ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES, + ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES, + ANDROID_STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES, + ANDROID_TONEMAP_CURVE_BLUE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_TONEMAP_START /* 1245184 */, + ANDROID_TONEMAP_CURVE_GREEN, + ANDROID_TONEMAP_CURVE_RED, + ANDROID_TONEMAP_MODE, + ANDROID_TONEMAP_MAX_CURVE_POINTS, + ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES, + ANDROID_TONEMAP_GAMMA, + ANDROID_TONEMAP_PRESET_CURVE, + ANDROID_LED_TRANSMIT = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LED_START /* 1310720 */, + ANDROID_LED_AVAILABLE_LEDS, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_INFO_START /* 1376256 */, + ANDROID_INFO_VERSION, + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, + ANDROID_INFO_DEVICE_STATE_ORIENTATIONS, + ANDROID_BLACK_LEVEL_LOCK = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_BLACK_LEVEL_START /* 1441792 */, + ANDROID_SYNC_FRAME_NUMBER = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SYNC_START /* 1507328 */, + ANDROID_SYNC_MAX_LATENCY, + ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_REPROCESS_START /* 1572864 */, + ANDROID_REPROCESS_MAX_CAPTURE_STALL, + ANDROID_DEPTH_MAX_DEPTH_SAMPLES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DEPTH_START /* 1638400 */, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS, + ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS, + ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS, + ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE, + ANDROID_DEPTH_AVAILABLE_RECOMMENDED_DEPTH_STREAM_CONFIGURATIONS, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LOGICAL_MULTI_CAMERA_START /* 1703936 */, + ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE, + ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID, + ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_SENSOR_CROP_REGION, + ANDROID_DISTORTION_CORRECTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DISTORTION_CORRECTION_START /* 1769472 */, + ANDROID_DISTORTION_CORRECTION_AVAILABLE_MODES, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HEIC_START /* 1835008 */, + ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS, + ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_HEIC_INFO_SUPPORTED = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HEIC_INFO_START /* 1900544 */, + ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT, + ANDROID_AUTOMOTIVE_LOCATION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_AUTOMOTIVE_START /* 1966080 */, + ANDROID_AUTOMOTIVE_LENS_FACING = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_AUTOMOTIVE_LENS_START /* 2031616 */, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_JPEGR_START /* 2162688 */, + ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS_MAXIMUM_RESOLUTION, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl new file mode 100644 index 0000000000..0b976f3d8b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ColorCorrectionAberrationMode { + ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF, + ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST, + ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionMode.aidl new file mode 100644 index 0000000000..2381605719 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ColorCorrectionMode { + ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX, + ANDROID_COLOR_CORRECTION_MODE_FAST, + ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl new file mode 100644 index 0000000000..0d5aad9a92 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeAntibandingMode { + ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF, + ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ, + ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ, + ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLock.aidl new file mode 100644 index 0000000000..766b835dc1 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLock.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeLock { + ANDROID_CONTROL_AE_LOCK_OFF, + ANDROID_CONTROL_AE_LOCK_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLockAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLockAvailable.aidl new file mode 100644 index 0000000000..a22c93e379 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLockAvailable.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeLockAvailable { + ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE, + ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeMode.aidl new file mode 100644 index 0000000000..c1423aa87e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeMode.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeMode { + ANDROID_CONTROL_AE_MODE_OFF, + ANDROID_CONTROL_AE_MODE_ON, + ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH, + ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH, + ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE, + ANDROID_CONTROL_AE_MODE_ON_EXTERNAL_FLASH, + ANDROID_CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl new file mode 100644 index 0000000000..20382c0b3c --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAePrecaptureTrigger { + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE, + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START, + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeState.aidl new file mode 100644 index 0000000000..e52eafe0d7 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeState.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeState { + ANDROID_CONTROL_AE_STATE_INACTIVE, + ANDROID_CONTROL_AE_STATE_SEARCHING, + ANDROID_CONTROL_AE_STATE_CONVERGED, + ANDROID_CONTROL_AE_STATE_LOCKED, + ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED, + ANDROID_CONTROL_AE_STATE_PRECAPTURE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfMode.aidl new file mode 100644 index 0000000000..6cd46c68db --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfMode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAfMode { + ANDROID_CONTROL_AF_MODE_OFF, + ANDROID_CONTROL_AF_MODE_AUTO, + ANDROID_CONTROL_AF_MODE_MACRO, + ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO, + ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE, + ANDROID_CONTROL_AF_MODE_EDOF, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfSceneChange.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfSceneChange.aidl new file mode 100644 index 0000000000..ba853a1270 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfSceneChange.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAfSceneChange { + ANDROID_CONTROL_AF_SCENE_CHANGE_NOT_DETECTED, + ANDROID_CONTROL_AF_SCENE_CHANGE_DETECTED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfState.aidl new file mode 100644 index 0000000000..25b6a1c01e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfState.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAfState { + ANDROID_CONTROL_AF_STATE_INACTIVE, + ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN, + ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED, + ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN, + ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED, + ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED, + ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfTrigger.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfTrigger.aidl new file mode 100644 index 0000000000..9d61b2d4dc --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfTrigger.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAfTrigger { + ANDROID_CONTROL_AF_TRIGGER_IDLE, + ANDROID_CONTROL_AF_TRIGGER_START, + ANDROID_CONTROL_AF_TRIGGER_CANCEL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframing.aidl new file mode 100644 index 0000000000..2daf00b586 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframing.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAutoframing { + ANDROID_CONTROL_AUTOFRAMING_OFF, + ANDROID_CONTROL_AUTOFRAMING_ON, + ANDROID_CONTROL_AUTOFRAMING_AUTO, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl new file mode 100644 index 0000000000..ab91bb444b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAutoframingAvailable { + ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE, + ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingState.aidl new file mode 100644 index 0000000000..db0d288fc4 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingState.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAutoframingState { + ANDROID_CONTROL_AUTOFRAMING_STATE_INACTIVE, + ANDROID_CONTROL_AUTOFRAMING_STATE_FRAMING, + ANDROID_CONTROL_AUTOFRAMING_STATE_CONVERGED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLock.aidl new file mode 100644 index 0000000000..949b5e89f2 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLock.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAwbLock { + ANDROID_CONTROL_AWB_LOCK_OFF, + ANDROID_CONTROL_AWB_LOCK_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl new file mode 100644 index 0000000000..80c4c3175f --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAwbLockAvailable { + ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE, + ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbMode.aidl new file mode 100644 index 0000000000..6ed9ece7aa --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbMode.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAwbMode { + ANDROID_CONTROL_AWB_MODE_OFF, + ANDROID_CONTROL_AWB_MODE_AUTO, + ANDROID_CONTROL_AWB_MODE_INCANDESCENT, + ANDROID_CONTROL_AWB_MODE_FLUORESCENT, + ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT, + ANDROID_CONTROL_AWB_MODE_DAYLIGHT, + ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT, + ANDROID_CONTROL_AWB_MODE_TWILIGHT, + ANDROID_CONTROL_AWB_MODE_SHADE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbState.aidl new file mode 100644 index 0000000000..c5b02d5ed6 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbState.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAwbState { + ANDROID_CONTROL_AWB_STATE_INACTIVE, + ANDROID_CONTROL_AWB_STATE_SEARCHING, + ANDROID_CONTROL_AWB_STATE_CONVERGED, + ANDROID_CONTROL_AWB_STATE_LOCKED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlCaptureIntent.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlCaptureIntent.aidl new file mode 100644 index 0000000000..fa1c0a98ec --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlCaptureIntent.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlCaptureIntent { + ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM, + ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW, + ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE, + ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD, + ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT, + ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG, + ANDROID_CONTROL_CAPTURE_INTENT_MANUAL, + ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEffectMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEffectMode.aidl new file mode 100644 index 0000000000..471deed753 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEffectMode.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlEffectMode { + ANDROID_CONTROL_EFFECT_MODE_OFF, + ANDROID_CONTROL_EFFECT_MODE_MONO, + ANDROID_CONTROL_EFFECT_MODE_NEGATIVE, + ANDROID_CONTROL_EFFECT_MODE_SOLARIZE, + ANDROID_CONTROL_EFFECT_MODE_SEPIA, + ANDROID_CONTROL_EFFECT_MODE_POSTERIZE, + ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD, + ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD, + ANDROID_CONTROL_EFFECT_MODE_AQUA, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEnableZsl.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEnableZsl.aidl new file mode 100644 index 0000000000..3f2d4a32d1 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEnableZsl.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlEnableZsl { + ANDROID_CONTROL_ENABLE_ZSL_FALSE, + ANDROID_CONTROL_ENABLE_ZSL_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl new file mode 100644 index 0000000000..7838288884 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlExtendedSceneMode { + ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED = 0, + ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE, + ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS, + ANDROID_CONTROL_EXTENDED_SCENE_MODE_VENDOR_START = 0x40, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlLowLightBoostState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlLowLightBoostState.aidl new file mode 100644 index 0000000000..f8ae0130de --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlLowLightBoostState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlLowLightBoostState { + ANDROID_CONTROL_LOW_LIGHT_BOOST_STATE_INACTIVE, + ANDROID_CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlMode.aidl new file mode 100644 index 0000000000..c5a8172a07 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlMode.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlMode { + ANDROID_CONTROL_MODE_OFF, + ANDROID_CONTROL_MODE_AUTO, + ANDROID_CONTROL_MODE_USE_SCENE_MODE, + ANDROID_CONTROL_MODE_OFF_KEEP_STATE, + ANDROID_CONTROL_MODE_USE_EXTENDED_SCENE_MODE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSceneMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSceneMode.aidl new file mode 100644 index 0000000000..62c67e3f3d --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSceneMode.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlSceneMode { + ANDROID_CONTROL_SCENE_MODE_DISABLED = 0, + ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY, + ANDROID_CONTROL_SCENE_MODE_ACTION, + ANDROID_CONTROL_SCENE_MODE_PORTRAIT, + ANDROID_CONTROL_SCENE_MODE_LANDSCAPE, + ANDROID_CONTROL_SCENE_MODE_NIGHT, + ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT, + ANDROID_CONTROL_SCENE_MODE_THEATRE, + ANDROID_CONTROL_SCENE_MODE_BEACH, + ANDROID_CONTROL_SCENE_MODE_SNOW, + ANDROID_CONTROL_SCENE_MODE_SUNSET, + ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO, + ANDROID_CONTROL_SCENE_MODE_FIREWORKS, + ANDROID_CONTROL_SCENE_MODE_SPORTS, + ANDROID_CONTROL_SCENE_MODE_PARTY, + ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT, + ANDROID_CONTROL_SCENE_MODE_BARCODE, + ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO, + ANDROID_CONTROL_SCENE_MODE_HDR, + ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT, + ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START = 100, + ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END = 127, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSettingsOverride.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSettingsOverride.aidl new file mode 100644 index 0000000000..404bbfa50c --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSettingsOverride.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlSettingsOverride { + ANDROID_CONTROL_SETTINGS_OVERRIDE_OFF, + ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM, + ANDROID_CONTROL_SETTINGS_OVERRIDE_VENDOR_START = 0x4000, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl new file mode 100644 index 0000000000..2b199eff0e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlVideoStabilizationMode { + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF, + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON, + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DemosaicMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DemosaicMode.aidl new file mode 100644 index 0000000000..577000933b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DemosaicMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DemosaicMode { + ANDROID_DEMOSAIC_MODE_FAST, + ANDROID_DEMOSAIC_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl new file mode 100644 index 0000000000..0cce2da7a5 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthAvailableDepthStreamConfigurations { + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000..9be06db77a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthAvailableDepthStreamConfigurationsMaximumResolution { + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl new file mode 100644 index 0000000000..c6aebaad0a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthAvailableDynamicDepthStreamConfigurations { + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000..4d5161d800 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution { + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl new file mode 100644 index 0000000000..f7b69cd289 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthDepthIsExclusive { + ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE, + ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DistortionCorrectionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DistortionCorrectionMode.aidl new file mode 100644 index 0000000000..6e965f64f0 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DistortionCorrectionMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DistortionCorrectionMode { + ANDROID_DISTORTION_CORRECTION_MODE_OFF, + ANDROID_DISTORTION_CORRECTION_MODE_FAST, + ANDROID_DISTORTION_CORRECTION_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/EdgeMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/EdgeMode.aidl new file mode 100644 index 0000000000..fdd32f429a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/EdgeMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum EdgeMode { + ANDROID_EDGE_MODE_OFF, + ANDROID_EDGE_MODE_FAST, + ANDROID_EDGE_MODE_HIGH_QUALITY, + ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashInfoAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashInfoAvailable.aidl new file mode 100644 index 0000000000..83292fee4c --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashInfoAvailable.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum FlashInfoAvailable { + ANDROID_FLASH_INFO_AVAILABLE_FALSE, + ANDROID_FLASH_INFO_AVAILABLE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashMode.aidl new file mode 100644 index 0000000000..e18ea3c076 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum FlashMode { + ANDROID_FLASH_MODE_OFF, + ANDROID_FLASH_MODE_SINGLE, + ANDROID_FLASH_MODE_TORCH, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashState.aidl new file mode 100644 index 0000000000..4343d4f1d6 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashState.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum FlashState { + ANDROID_FLASH_STATE_UNAVAILABLE, + ANDROID_FLASH_STATE_CHARGING, + ANDROID_FLASH_STATE_READY, + ANDROID_FLASH_STATE_FIRED, + ANDROID_FLASH_STATE_PARTIAL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl new file mode 100644 index 0000000000..3957267612 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum HeicAvailableHeicStreamConfigurations { + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000..4eda5386d8 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum HeicAvailableHeicStreamConfigurationsMaximumResolution { + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicInfoSupported.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicInfoSupported.aidl new file mode 100644 index 0000000000..7079bbf82b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicInfoSupported.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum HeicInfoSupported { + ANDROID_HEIC_INFO_SUPPORTED_FALSE, + ANDROID_HEIC_INFO_SUPPORTED_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HotPixelMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HotPixelMode.aidl new file mode 100644 index 0000000000..50b3446208 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HotPixelMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum HotPixelMode { + ANDROID_HOT_PIXEL_MODE_OFF, + ANDROID_HOT_PIXEL_MODE_FAST, + ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl new file mode 100644 index 0000000000..2c31cff5a7 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum InfoSupportedBufferManagementVersion { + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_AIDL_DEVICE, + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl new file mode 100644 index 0000000000..3b5064757b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum InfoSupportedHardwareLevel { + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl new file mode 100644 index 0000000000..cf9dbb72b9 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum JpegrAvailableJpegRStreamConfigurations { + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000..0a95e1f3a9 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum JpegrAvailableJpegRStreamConfigurationsMaximumResolution { + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedAvailableLeds.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedAvailableLeds.aidl new file mode 100644 index 0000000000..b3beb2d144 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedAvailableLeds.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LedAvailableLeds { + ANDROID_LED_AVAILABLE_LEDS_TRANSMIT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedTransmit.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedTransmit.aidl new file mode 100644 index 0000000000..0cbf239c94 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedTransmit.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LedTransmit { + ANDROID_LED_TRANSMIT_OFF, + ANDROID_LED_TRANSMIT_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensFacing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensFacing.aidl new file mode 100644 index 0000000000..d15674dc11 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensFacing.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensFacing { + ANDROID_LENS_FACING_FRONT, + ANDROID_LENS_FACING_BACK, + ANDROID_LENS_FACING_EXTERNAL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl new file mode 100644 index 0000000000..937347b1fd --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensInfoFocusDistanceCalibration { + ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED, + ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE, + ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl new file mode 100644 index 0000000000..550d9f3209 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensOpticalStabilizationMode { + ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF, + ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensPoseReference.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensPoseReference.aidl new file mode 100644 index 0000000000..6a3799df39 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensPoseReference.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensPoseReference { + ANDROID_LENS_POSE_REFERENCE_PRIMARY_CAMERA, + ANDROID_LENS_POSE_REFERENCE_GYROSCOPE, + ANDROID_LENS_POSE_REFERENCE_UNDEFINED, + ANDROID_LENS_POSE_REFERENCE_AUTOMOTIVE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensState.aidl new file mode 100644 index 0000000000..4f9895607d --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensState { + ANDROID_LENS_STATE_STATIONARY, + ANDROID_LENS_STATE_MOVING, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl new file mode 100644 index 0000000000..5eb5759b9e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LogicalMultiCameraSensorSyncType { + ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE, + ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/NoiseReductionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/NoiseReductionMode.aidl new file mode 100644 index 0000000000..8b589ce819 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/NoiseReductionMode.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum NoiseReductionMode { + ANDROID_NOISE_REDUCTION_MODE_OFF, + ANDROID_NOISE_REDUCTION_MODE_FAST, + ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY, + ANDROID_NOISE_REDUCTION_MODE_MINIMAL, + ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/QuirksPartialResult.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/QuirksPartialResult.aidl new file mode 100644 index 0000000000..8ab6a05700 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/QuirksPartialResult.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum QuirksPartialResult { + ANDROID_QUIRKS_PARTIAL_RESULT_FINAL, + ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl new file mode 100644 index 0000000000..0564db8da9 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum RequestAvailableCapabilities { + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl new file mode 100644 index 0000000000..74606bf110 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="long") @VintfStability +enum RequestAvailableColorSpaceProfilesMap { + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED = (-1L) /* -1 */, + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SRGB = 0L, + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DISPLAY_P3 = 7L, + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT2020_HLG = 16L, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl new file mode 100644 index 0000000000..45ffb1be1a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="long") @VintfStability +enum RequestAvailableDynamicRangeProfilesMap { + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD = 0x1L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10 = 0x2L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10 = 0x4L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10_PLUS = 0x8L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF = 0x10L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF_PO = 0x20L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM = 0x40L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM_PO = 0x80L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF = 0x100L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF_PO = 0x200L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM = 0x400L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM_PO = 0x800L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_MAX = 0x1000L, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestMetadataMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestMetadataMode.aidl new file mode 100644 index 0000000000..cede79950c --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestMetadataMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum RequestMetadataMode { + ANDROID_REQUEST_METADATA_MODE_NONE, + ANDROID_REQUEST_METADATA_MODE_FULL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestType.aidl new file mode 100644 index 0000000000..6b4ae71862 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum RequestType { + ANDROID_REQUEST_TYPE_CAPTURE, + ANDROID_REQUEST_TYPE_REPROCESS, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableFormats.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableFormats.aidl new file mode 100644 index 0000000000..fdc2f60887 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableFormats.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerAvailableFormats { + ANDROID_SCALER_AVAILABLE_FORMATS_RAW16 = 0x20, + ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE = 0x24, + ANDROID_SCALER_AVAILABLE_FORMATS_YV12 = 0x32315659, + ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP = 0x11, + ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED = 0x22, + ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888 = 0x23, + ANDROID_SCALER_AVAILABLE_FORMATS_BLOB = 0x21, + ANDROID_SCALER_AVAILABLE_FORMATS_RAW10 = 0x25, + ANDROID_SCALER_AVAILABLE_FORMATS_RAW12 = 0x26, + ANDROID_SCALER_AVAILABLE_FORMATS_Y8 = 0x20203859, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl new file mode 100644 index 0000000000..741a99d839 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerAvailableRecommendedStreamConfigurations { + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PREVIEW = 0x0, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RECORD = 0x1, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VIDEO_SNAPSHOT = 0x2, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_SNAPSHOT = 0x3, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_ZSL = 0x4, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RAW = 0x5, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_LOW_LATENCY_SNAPSHOT = 0x6, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_10BIT_OUTPUT = 0x8, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VENDOR_START = 0x18, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl new file mode 100644 index 0000000000..4e2899d46e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerAvailableStreamConfigurations { + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000..fb15815dfe --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerAvailableStreamConfigurationsMaximumResolution { + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl new file mode 100644 index 0000000000..ff92f9efd2 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="long") @VintfStability +enum ScalerAvailableStreamUseCases { + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0x0L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE = 0x2L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD = 0x3L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL = 0x4L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL = 0x5L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW = 0x6L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START = 0x10000L, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerCroppingType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerCroppingType.aidl new file mode 100644 index 0000000000..60782e4650 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerCroppingType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerCroppingType { + ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY, + ANDROID_SCALER_CROPPING_TYPE_FREEFORM, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl new file mode 100644 index 0000000000..e09d89c182 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerMultiResolutionStreamSupported { + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_FALSE, + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl new file mode 100644 index 0000000000..64a022018b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerPhysicalCameraMultiResolutionStreamConfigurations { + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl new file mode 100644 index 0000000000..bf5380eea4 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerRotateAndCrop { + ANDROID_SCALER_ROTATE_AND_CROP_NONE, + ANDROID_SCALER_ROTATE_AND_CROP_90, + ANDROID_SCALER_ROTATE_AND_CROP_180, + ANDROID_SCALER_ROTATE_AND_CROP_270, + ANDROID_SCALER_ROTATE_AND_CROP_AUTO, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl new file mode 100644 index 0000000000..c96f3c5e91 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorInfoColorFilterArrangement { + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl new file mode 100644 index 0000000000..0153731bbc --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorInfoLensShadingApplied { + ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE, + ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl new file mode 100644 index 0000000000..9a00cf155e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorInfoTimestampSource { + ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN, + ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorPixelMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorPixelMode.aidl new file mode 100644 index 0000000000..5f055d6b23 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorPixelMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorPixelMode { + ANDROID_SENSOR_PIXEL_MODE_DEFAULT, + ANDROID_SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl new file mode 100644 index 0000000000..851dae0f8e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorRawBinningFactorUsed { + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_TRUE, + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_FALSE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl new file mode 100644 index 0000000000..11be18ef06 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorReadoutTimestamp { + ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED, + ANDROID_SENSOR_READOUT_TIMESTAMP_HARDWARE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl new file mode 100644 index 0000000000..cd22d2e35d --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorReferenceIlluminant1 { + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT = 1, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT = 2, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN = 3, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH = 4, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER = 9, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER = 10, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE = 11, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT = 12, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT = 13, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT = 14, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT = 15, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A = 17, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B = 18, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C = 19, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55 = 20, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65 = 21, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75 = 22, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50 = 23, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN = 24, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorTestPatternMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorTestPatternMode.aidl new file mode 100644 index 0000000000..98f0ebe855 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorTestPatternMode.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorTestPatternMode { + ANDROID_SENSOR_TEST_PATTERN_MODE_OFF, + ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR, + ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS, + ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY, + ANDROID_SENSOR_TEST_PATTERN_MODE_PN9, + ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK, + ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1 = 256, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ShadingMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ShadingMode.aidl new file mode 100644 index 0000000000..ffc6a560ad --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ShadingMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ShadingMode { + ANDROID_SHADING_MODE_OFF, + ANDROID_SHADING_MODE_FAST, + ANDROID_SHADING_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl new file mode 100644 index 0000000000..48c6797a02 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsFaceDetectMode { + ANDROID_STATISTICS_FACE_DETECT_MODE_OFF, + ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE, + ANDROID_STATISTICS_FACE_DETECT_MODE_FULL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHistogramMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHistogramMode.aidl new file mode 100644 index 0000000000..354518b2cc --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHistogramMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsHistogramMode { + ANDROID_STATISTICS_HISTOGRAM_MODE_OFF, + ANDROID_STATISTICS_HISTOGRAM_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl new file mode 100644 index 0000000000..b96e4be645 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsHotPixelMapMode { + ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF, + ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl new file mode 100644 index 0000000000..7d0b0823e4 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsLensShadingMapMode { + ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF, + ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsOisDataMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsOisDataMode.aidl new file mode 100644 index 0000000000..b80889bdec --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsOisDataMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsOisDataMode { + ANDROID_STATISTICS_OIS_DATA_MODE_OFF, + ANDROID_STATISTICS_OIS_DATA_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl new file mode 100644 index 0000000000..a9268c07b1 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsSceneFlicker { + ANDROID_STATISTICS_SCENE_FLICKER_NONE, + ANDROID_STATISTICS_SCENE_FLICKER_50HZ, + ANDROID_STATISTICS_SCENE_FLICKER_60HZ, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl new file mode 100644 index 0000000000..09a2003887 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsSharpnessMapMode { + ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF, + ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncFrameNumber.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncFrameNumber.aidl new file mode 100644 index 0000000000..230f57e67f --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncFrameNumber.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SyncFrameNumber { + ANDROID_SYNC_FRAME_NUMBER_CONVERGING = (-1) /* -1 */, + ANDROID_SYNC_FRAME_NUMBER_UNKNOWN = (-2) /* -2 */, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncMaxLatency.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncMaxLatency.aidl new file mode 100644 index 0000000000..d484f45e77 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncMaxLatency.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SyncMaxLatency { + ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL = 0, + ANDROID_SYNC_MAX_LATENCY_UNKNOWN = (-1) /* -1 */, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapMode.aidl new file mode 100644 index 0000000000..e729166000 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapMode.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum TonemapMode { + ANDROID_TONEMAP_MODE_CONTRAST_CURVE, + ANDROID_TONEMAP_MODE_FAST, + ANDROID_TONEMAP_MODE_HIGH_QUALITY, + ANDROID_TONEMAP_MODE_GAMMA_VALUE, + ANDROID_TONEMAP_MODE_PRESET_CURVE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapPresetCurve.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapPresetCurve.aidl new file mode 100644 index 0000000000..2e5fbd3ad0 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapPresetCurve.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum TonemapPresetCurve { + ANDROID_TONEMAP_PRESET_CURVE_SRGB, + ANDROID_TONEMAP_PRESET_CURVE_REC709, +} diff --git a/camera/provider/aidl/Android.bp b/camera/provider/aidl/Android.bp index b0bd8d9162..38a8936001 100644 --- a/camera/provider/aidl/Android.bp +++ b/camera/provider/aidl/Android.bp @@ -18,7 +18,7 @@ aidl_interface { "android.hardware.camera.device-V3", "android.hardware.camera.common-V1", ], - frozen: false, + frozen: true, stability: "vintf", backend: { java: { @@ -43,6 +43,13 @@ aidl_interface { "android.hardware.camera.common-V1", ], }, + { + version: "3", + imports: [ + "android.hardware.camera.device-V3", + "android.hardware.camera.common-V1", + ], + }, ], diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/.hash b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/.hash new file mode 100644 index 0000000000..01eca5d0e7 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/.hash @@ -0,0 +1 @@ +261437c3d7d6ad09d5560eee5196a28c0b27106e diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/CameraIdAndStreamCombination.aidl b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/CameraIdAndStreamCombination.aidl new file mode 100644 index 0000000000..df77c40a28 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/CameraIdAndStreamCombination.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.provider; +@VintfStability +parcelable CameraIdAndStreamCombination { + String cameraId; + android.hardware.camera.device.StreamConfiguration streamConfiguration; +} diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ConcurrentCameraIdCombination.aidl b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ConcurrentCameraIdCombination.aidl new file mode 100644 index 0000000000..334fb2c827 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ConcurrentCameraIdCombination.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.provider; +@VintfStability +parcelable ConcurrentCameraIdCombination { + List combination; +} diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProvider.aidl b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProvider.aidl new file mode 100644 index 0000000000..2f0184f639 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProvider.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.provider; +@VintfStability +interface ICameraProvider { + void setCallback(android.hardware.camera.provider.ICameraProviderCallback callback); + android.hardware.camera.common.VendorTagSection[] getVendorTags(); + String[] getCameraIdList(); + android.hardware.camera.device.ICameraDevice getCameraDeviceInterface(String cameraDeviceName); + void notifyDeviceStateChange(long deviceState); + android.hardware.camera.provider.ConcurrentCameraIdCombination[] getConcurrentCameraIds(); + boolean isConcurrentStreamCombinationSupported(in android.hardware.camera.provider.CameraIdAndStreamCombination[] configs); + const long DEVICE_STATE_NORMAL = 0; + const long DEVICE_STATE_BACK_COVERED = (1 << 0) /* 1 */; + const long DEVICE_STATE_FRONT_COVERED = (1 << 1) /* 2 */; + const long DEVICE_STATE_FOLDED = (1 << 2) /* 4 */; +} diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProviderCallback.aidl b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProviderCallback.aidl new file mode 100644 index 0000000000..d3c53f5bc2 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProviderCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.provider; +@VintfStability +interface ICameraProviderCallback { + void cameraDeviceStatusChange(String cameraDeviceName, android.hardware.camera.common.CameraDeviceStatus newStatus); + void torchModeStatusChange(String cameraDeviceName, android.hardware.camera.common.TorchModeStatus newStatus); + void physicalCameraDeviceStatusChange(String cameraDeviceName, String physicalCameraDeviceName, android.hardware.camera.common.CameraDeviceStatus newStatus); +} diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp index dd502ba687..2b694427fb 100644 --- a/compatibility_matrices/Android.bp +++ b/compatibility_matrices/Android.bp @@ -82,3 +82,14 @@ vintf_compatibility_matrix { "kernel_config_v_6.6", ], } + +vintf_compatibility_matrix { + name: "framework_compatibility_matrix.202504.xml", + stem: "compatibility_matrix.202504.xml", + srcs: ["compatibility_matrix.202504.xml"], + kernel_configs: [ + "kernel_config_w_6.1", + "kernel_config_w_6.6", + ], + +} diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index 639abf920a..ab57b8c875 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -105,13 +105,14 @@ my_system_matrix_deps := \ framework_compatibility_matrix.6.xml \ framework_compatibility_matrix.7.xml \ framework_compatibility_matrix.8.xml \ + framework_compatibility_matrix.202404.xml \ framework_compatibility_matrix.device.xml \ # Only allow the use of the unreleased compatibility matrix when we can use unfrozen # interfaces (in the `next` release configuration). ifeq ($(RELEASE_AIDL_USE_UNFROZEN),true) my_system_matrix_deps += \ - framework_compatibility_matrix.202404.xml \ + framework_compatibility_matrix.202504.xml \ endif diff --git a/compatibility_matrices/compatibility_matrix.202504.xml b/compatibility_matrices/compatibility_matrix.202504.xml new file mode 100644 index 0000000000..62756bdc31 --- /dev/null +++ b/compatibility_matrices/compatibility_matrix.202504.xml @@ -0,0 +1,693 @@ + + + android.hardware.audio.core + 1-2 + + IModule + default + a2dp + bluetooth + hearing_aid + msd + r_submix + stub + usb + + + IConfig + default + + + + android.hardware.audio.effect + 1-2 + + IFactory + default + + + + android.hardware.audio.sounddose + 1-2 + + ISoundDoseFactory + default + + + + android.hardware.authsecret + 1 + + IAuthSecret + default + + + + android.hardware.automotive.audiocontrol + 2-4 + + IAudioControl + default + + + + android.hardware.automotive.can + 1 + + ICanController + default + + + + android.hardware.automotive.evs + 1-2 + + IEvsEnumerator + [a-z]+/[0-9]+ + + + + android.hardware.macsec + 1 + + IMacsecPskPlugin + default + + + + android.hardware.automotive.occupant_awareness + 1 + + IOccupantAwareness + default + + + + android.hardware.automotive.vehicle + 1-3 + + IVehicle + default + + + + android.hardware.automotive.remoteaccess + 1-2 + + IRemoteAccess + default + + + + android.hardware.automotive.ivn + + IIvnAndroidDevice + default + + + + android.hardware.biometrics.face + 3-4 + + IFace + default + virtual + + + + android.hardware.biometrics.fingerprint + 3-4 + + IFingerprint + default + virtual + + + + android.hardware.bluetooth + + IBluetoothHci + default + + + + android.hardware.bluetooth.audio + 3-4 + + IBluetoothAudioProviderFactory + default + + + + android.hardware.bluetooth.ranging + 1 + + IBluetoothChannelSounding + default + + + + android.hardware.bluetooth.finder + 1 + + IBluetoothFinder + default + + + + android.hardware.bluetooth.lmp_event + 1 + + IBluetoothLmpEvent + default + + + + android.hardware.boot + + IBootControl + default + + + + android.hardware.broadcastradio + 1-2 + + IBroadcastRadio + .* + + + + android.hardware.camera.provider + 1-3 + + ICameraProvider + [^/]+/[0-9]+ + + + + android.hardware.cas + + IMediaCasService + default + + + + android.hardware.confirmationui + 1 + + IConfirmationUI + default + + + + android.hardware.contexthub + 3 + + IContextHub + default + + + + android.hardware.drm + 1 + + IDrmFactory + .* + + + + android.hardware.dumpstate + + IDumpstateDevice + default + + + + android.hardware.gatekeeper + 1 + + IGatekeeper + default + + + + android.hardware.gnss + 2-4 + + IGnss + default + + + + android.hardware.graphics.allocator + 1-2 + + IAllocator + default + + + + android.hardware.graphics.composer3 + 3 + + IComposer + default + + + + android.hardware.health + 3 + + IHealth + default + + + + android.hardware.health.storage + 1 + + IStorage + default + + + + android.hardware.identity + 1-5 + + IIdentityCredentialStore + default + + + + android.hardware.net.nlinterceptor + + IInterceptor + default + + + + android.hardware.oemlock + 1 + + IOemLock + default + + + + android.hardware.ir + 1 + + IConsumerIr + default + + + + android.hardware.input.processor + 1 + + IInputProcessor + default + + + + android.hardware.security.secretkeeper + 1 + + ISecretkeeper + default + nonsecure + + + + android.hardware.security.keymint + 1-3 + + IKeyMintDevice + default + strongbox + + + + android.hardware.security.keymint + 1-3 + + IRemotelyProvisionedComponent + default + strongbox + + + + android.hardware.light + 2 + + ILights + default + + + + android.hardware.media.c2 + 1 + + IComponentStore + default[0-9]* + vendor[0-9]*_software + + + + android.hardware.memtrack + 1 + + IMemtrack + default + + + + android.hardware.neuralnetworks + 1-4 + + IDevice + .* + + + + android.hardware.nfc + + INfc + default + + + + android.hardware.power + 5 + + IPower + default + + + + android.hardware.power.stats + 2 + + IPowerStats + default + + + + android.hardware.radio.config + 3 + + IRadioConfig + default + + + + android.hardware.radio.data + 3 + + IRadioData + slot1 + slot2 + slot3 + + + + android.hardware.radio.messaging + 3 + + IRadioMessaging + slot1 + slot2 + slot3 + + + + android.hardware.radio.modem + 3 + + IRadioModem + slot1 + slot2 + slot3 + + + + android.hardware.radio.network + 3 + + IRadioNetwork + slot1 + slot2 + slot3 + + + + android.hardware.radio.sim + 3 + + IRadioSim + slot1 + slot2 + slot3 + + + + android.hardware.radio.sap + 1 + + ISap + slot1 + slot2 + slot3 + + + + android.hardware.radio.voice + 3 + + IRadioVoice + slot1 + slot2 + slot3 + + + + android.hardware.radio.ims + 2 + + IRadioIms + slot1 + slot2 + slot3 + + + + android.hardware.radio.ims.media + 2 + + IImsMedia + default + + + + android.hardware.rebootescrow + 1 + + IRebootEscrow + default + + + + android.hardware.secure_element + 1 + + ISecureElement + eSE[1-9][0-9]* + SIM[1-9][0-9]* + + + + android.hardware.security.authgraph + 1 + + IAuthGraphKeyExchange + nonsecure + + + + android.hardware.security.secureclock + 1 + + ISecureClock + default + + + + android.hardware.security.sharedsecret + 1 + + ISharedSecret + default + strongbox + + + + android.hardware.sensors + 2 + + ISensors + default + + + + android.hardware.soundtrigger3 + 1-2 + + ISoundTriggerHw + default + + + + android.hardware.tetheroffload + 1 + + IOffload + default + + + + android.hardware.thermal + 2 + + IThermal + default + + + + android.hardware.threadnetwork + 1 + + IThreadChip + chip[0-9]+ + + + + android.hardware.tv.hdmi.cec + 1 + + IHdmiCec + default + + + + android.hardware.tv.hdmi.earc + 1 + + IEArc + default + + + + android.hardware.tv.hdmi.connection + 1 + + IHdmiConnection + default + + + + android.hardware.tv.tuner + 1-2 + + ITuner + default + + + + android.hardware.tv.input + 1-2 + + ITvInput + default + + + + android.hardware.usb + 1-3 + + IUsb + default + + + + android.hardware.usb.gadget + + IUsbGadget + default + + + + android.hardware.vibrator + 1-2 + + IVibrator + default + + + + android.hardware.vibrator + 1-2 + + IVibratorManager + default + + + + android.hardware.weaver + 2 + + IWeaver + default + + + + android.hardware.wifi + 1-2 + + IWifi + default + + + + android.hardware.uwb + 1 + + IUwb + default + + + + android.hardware.wifi.hostapd + 1-2 + + IHostapd + default + + + + android.hardware.wifi.supplicant + 2-3 + + ISupplicant + default + + + + + mapper + 5.0 + + .* + + + diff --git a/contexthub/aidl/Android.bp b/contexthub/aidl/Android.bp index 5905c8c477..202813c610 100644 --- a/contexthub/aidl/Android.bp +++ b/contexthub/aidl/Android.bp @@ -48,8 +48,12 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], - frozen: false, + frozen: true, } diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/.hash b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/.hash new file mode 100644 index 0000000000..bc4df3abd5 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/.hash @@ -0,0 +1 @@ +03f1982c8e20e58494a4ff8c9736b1c257dfeb6c diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/AsyncEventType.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/AsyncEventType.aidl new file mode 100644 index 0000000000..8e0ff89c12 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/AsyncEventType.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@Backing(type="int") @VintfStability +enum AsyncEventType { + RESTARTED = 1, +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubInfo.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubInfo.aidl new file mode 100644 index 0000000000..c99169eb6f --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubInfo.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable ContextHubInfo { + String name; + String vendor; + String toolchain; + int id; + float peakMips; + int maxSupportedMessageLengthBytes; + long chrePlatformId; + byte chreApiMajorVersion; + byte chreApiMinorVersion; + char chrePatchVersion; + String[] supportedPermissions; + boolean supportsReliableMessages; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubMessage.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubMessage.aidl new file mode 100644 index 0000000000..a6951a8f16 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubMessage.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable ContextHubMessage { + long nanoappId; + char hostEndPoint; + int messageType; + byte[] messageBody; + String[] permissions; + boolean isReliable; + int messageSequenceNumber; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ErrorCode.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ErrorCode.aidl new file mode 100644 index 0000000000..8924658357 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ErrorCode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@Backing(type="byte") @VintfStability +enum ErrorCode { + OK = 0, + TRANSIENT_ERROR, + PERMANENT_ERROR, + PERMISSION_DENIED, + DESTINATION_NOT_FOUND, +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/HostEndpointInfo.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/HostEndpointInfo.aidl new file mode 100644 index 0000000000..dabdbb6648 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/HostEndpointInfo.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable HostEndpointInfo { + char hostEndpointId; + android.hardware.contexthub.HostEndpointInfo.Type type; + @nullable String packageName; + @nullable String attributionTag; + @Backing(type="int") @VintfStability + enum Type { + FRAMEWORK = 1, + APP = 2, + NATIVE = 3, + } +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHub.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHub.aidl new file mode 100644 index 0000000000..7341e0ec75 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHub.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +interface IContextHub { + List getContextHubs(); + void loadNanoapp(in int contextHubId, in android.hardware.contexthub.NanoappBinary appBinary, in int transactionId); + void unloadNanoapp(in int contextHubId, in long appId, in int transactionId); + void disableNanoapp(in int contextHubId, in long appId, in int transactionId); + void enableNanoapp(in int contextHubId, in long appId, in int transactionId); + void onSettingChanged(in android.hardware.contexthub.Setting setting, in boolean enabled); + void queryNanoapps(in int contextHubId); + void registerCallback(in int contextHubId, in android.hardware.contexthub.IContextHubCallback cb); + void sendMessageToHub(in int contextHubId, in android.hardware.contexthub.ContextHubMessage message); + void onHostEndpointConnected(in android.hardware.contexthub.HostEndpointInfo hostEndpointInfo); + void onHostEndpointDisconnected(char hostEndpointId); + long[] getPreloadedNanoappIds(in int contextHubId); + void onNanSessionStateChanged(in android.hardware.contexthub.NanSessionStateUpdate update); + void setTestMode(in boolean enable); + void sendMessageDeliveryStatusToHub(in int contextHubId, in android.hardware.contexthub.MessageDeliveryStatus messageDeliveryStatus); + const int EX_CONTEXT_HUB_UNSPECIFIED = (-1) /* -1 */; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHubCallback.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHubCallback.aidl new file mode 100644 index 0000000000..70f69c608b --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHubCallback.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +interface IContextHubCallback { + void handleNanoappInfo(in android.hardware.contexthub.NanoappInfo[] appInfo); + void handleContextHubMessage(in android.hardware.contexthub.ContextHubMessage msg, in String[] msgContentPerms); + void handleContextHubAsyncEvent(in android.hardware.contexthub.AsyncEventType evt); + void handleTransactionResult(in int transactionId, in boolean success); + void handleNanSessionRequest(in android.hardware.contexthub.NanSessionRequest request); + void handleMessageDeliveryStatus(in char hostEndpointId, in android.hardware.contexthub.MessageDeliveryStatus messageDeliveryStatus); + byte[16] getUuid(); + String getName(); + const int CONTEXTHUB_NAN_TRANSACTION_TIMEOUT_MS = 10000; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/MessageDeliveryStatus.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/MessageDeliveryStatus.aidl new file mode 100644 index 0000000000..40dac13f1c --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/MessageDeliveryStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable MessageDeliveryStatus { + int messageSequenceNumber; + android.hardware.contexthub.ErrorCode errorCode; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionRequest.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionRequest.aidl new file mode 100644 index 0000000000..d539707ccc --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionRequest.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanSessionRequest { + boolean enable; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionStateUpdate.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionStateUpdate.aidl new file mode 100644 index 0000000000..80771e2365 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionStateUpdate.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanSessionStateUpdate { + boolean state; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappBinary.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappBinary.aidl new file mode 100644 index 0000000000..fdf38601a9 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappBinary.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanoappBinary { + long nanoappId; + int nanoappVersion; + int flags; + byte targetChreApiMajorVersion; + byte targetChreApiMinorVersion; + byte[] customBinary; + const int FLAG_SIGNED = (1 << 0) /* 1 */; + const int FLAG_ENCRYPTED = (1 << 1) /* 2 */; + const int FLAG_TCM_CAPABLE = (1 << 2) /* 4 */; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappInfo.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappInfo.aidl new file mode 100644 index 0000000000..7175d7f329 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanoappInfo { + long nanoappId; + int nanoappVersion; + boolean enabled; + String[] permissions; + android.hardware.contexthub.NanoappRpcService[] rpcServices; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappRpcService.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappRpcService.aidl new file mode 100644 index 0000000000..a6a1644195 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappRpcService.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanoappRpcService { + long id; + int version; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/Setting.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/Setting.aidl new file mode 100644 index 0000000000..aeb720b779 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/Setting.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@Backing(type="byte") @VintfStability +enum Setting { + LOCATION = 1, + WIFI_MAIN, + WIFI_SCANNING, + AIRPLANE_MODE, + MICROPHONE, + BT_MAIN, + BT_SCANNING, +} diff --git a/gnss/aidl/Android.bp b/gnss/aidl/Android.bp index 611c7e0683..47fc3af6d0 100644 --- a/gnss/aidl/Android.bp +++ b/gnss/aidl/Android.bp @@ -50,8 +50,12 @@ aidl_interface { version: "3", imports: [], }, + { + version: "4", + imports: [], + }, ], - frozen: false, + frozen: true, } diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/.hash b/gnss/aidl/aidl_api/android.hardware.gnss/4/.hash new file mode 100644 index 0000000000..e5cdc1166a --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/.hash @@ -0,0 +1 @@ +3552d3a7d21e743a59aa62eb395be44dddc0797e diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/BlocklistedSource.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/BlocklistedSource.aidl new file mode 100644 index 0000000000..ccb2b281db --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/BlocklistedSource.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable BlocklistedSource { + android.hardware.gnss.GnssConstellationType constellation = android.hardware.gnss.GnssConstellationType.UNKNOWN; + int svid; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/CorrelationVector.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/CorrelationVector.aidl new file mode 100644 index 0000000000..b9590036db --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/CorrelationVector.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable CorrelationVector { + double frequencyOffsetMps; + double samplingWidthM; + double samplingStartM; + int[] magnitude; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/ElapsedRealtime.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/ElapsedRealtime.aidl new file mode 100644 index 0000000000..5d7f51e342 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/ElapsedRealtime.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable ElapsedRealtime { + int flags; + long timestampNs; + double timeUncertaintyNs; + const int HAS_TIMESTAMP_NS = (1 << 0) /* 1 */; + const int HAS_TIME_UNCERTAINTY_NS = (1 << 1) /* 2 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssClock.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssClock.aidl new file mode 100644 index 0000000000..63edd44a19 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssClock.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssClock { + int gnssClockFlags; + int leapSecond; + long timeNs; + double timeUncertaintyNs; + long fullBiasNs; + double biasNs; + double biasUncertaintyNs; + double driftNsps; + double driftUncertaintyNsps; + int hwClockDiscontinuityCount; + android.hardware.gnss.GnssSignalType referenceSignalTypeForIsb; + const int HAS_LEAP_SECOND = (1 << 0) /* 1 */; + const int HAS_TIME_UNCERTAINTY = (1 << 1) /* 2 */; + const int HAS_FULL_BIAS = (1 << 2) /* 4 */; + const int HAS_BIAS = (1 << 3) /* 8 */; + const int HAS_BIAS_UNCERTAINTY = (1 << 4) /* 16 */; + const int HAS_DRIFT = (1 << 5) /* 32 */; + const int HAS_DRIFT_UNCERTAINTY = (1 << 6) /* 64 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssConstellationType.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssConstellationType.aidl new file mode 100644 index 0000000000..fee2ef67c3 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssConstellationType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@Backing(type="int") @VintfStability +enum GnssConstellationType { + UNKNOWN = 0, + GPS = 1, + SBAS = 2, + GLONASS = 3, + QZSS = 4, + BEIDOU = 5, + GALILEO = 6, + IRNSS = 7, +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssData.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssData.aidl new file mode 100644 index 0000000000..54e3b2165e --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssData.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssData { + android.hardware.gnss.GnssMeasurement[] measurements; + android.hardware.gnss.GnssClock clock; + android.hardware.gnss.ElapsedRealtime elapsedRealtime; + android.hardware.gnss.GnssData.GnssAgc[] gnssAgcs = {}; + boolean isFullTracking; + @VintfStability + parcelable GnssAgc { + double agcLevelDb; + android.hardware.gnss.GnssConstellationType constellation = android.hardware.gnss.GnssConstellationType.UNKNOWN; + long carrierFrequencyHz; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssLocation.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssLocation.aidl new file mode 100644 index 0000000000..e64d98a297 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssLocation.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssLocation { + int gnssLocationFlags; + double latitudeDegrees; + double longitudeDegrees; + double altitudeMeters; + double speedMetersPerSec; + double bearingDegrees; + double horizontalAccuracyMeters; + double verticalAccuracyMeters; + double speedAccuracyMetersPerSecond; + double bearingAccuracyDegrees; + long timestampMillis; + android.hardware.gnss.ElapsedRealtime elapsedRealtime; + const int HAS_LAT_LONG = 0x0001; + const int HAS_ALTITUDE = 0x0002; + const int HAS_SPEED = 0x0004; + const int HAS_BEARING = 0x0008; + const int HAS_HORIZONTAL_ACCURACY = 0x0010; + const int HAS_VERTICAL_ACCURACY = 0x0020; + const int HAS_SPEED_ACCURACY = 0x0040; + const int HAS_BEARING_ACCURACY = 0x0080; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMeasurement.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMeasurement.aidl new file mode 100644 index 0000000000..a2594af99a --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMeasurement.aidl @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssMeasurement { + int flags; + int svid; + android.hardware.gnss.GnssSignalType signalType; + double timeOffsetNs; + int state; + long receivedSvTimeInNs; + long receivedSvTimeUncertaintyInNs; + double antennaCN0DbHz; + double basebandCN0DbHz; + double pseudorangeRateMps; + double pseudorangeRateUncertaintyMps; + int accumulatedDeltaRangeState; + double accumulatedDeltaRangeM; + double accumulatedDeltaRangeUncertaintyM; + long carrierCycles; + double carrierPhase; + double carrierPhaseUncertainty; + android.hardware.gnss.GnssMultipathIndicator multipathIndicator = android.hardware.gnss.GnssMultipathIndicator.UNKNOWN; + double snrDb; + double agcLevelDb; + double fullInterSignalBiasNs; + double fullInterSignalBiasUncertaintyNs; + double satelliteInterSignalBiasNs; + double satelliteInterSignalBiasUncertaintyNs; + android.hardware.gnss.SatellitePvt satellitePvt; + android.hardware.gnss.CorrelationVector[] correlationVectors; + const int HAS_SNR = (1 << 0) /* 1 */; + const int HAS_CARRIER_FREQUENCY = (1 << 9) /* 512 */; + const int HAS_CARRIER_CYCLES = (1 << 10) /* 1024 */; + const int HAS_CARRIER_PHASE = (1 << 11) /* 2048 */; + const int HAS_CARRIER_PHASE_UNCERTAINTY = (1 << 12) /* 4096 */; + const int HAS_AUTOMATIC_GAIN_CONTROL = (1 << 13) /* 8192 */; + const int HAS_FULL_ISB = (1 << 16) /* 65536 */; + const int HAS_FULL_ISB_UNCERTAINTY = (1 << 17) /* 131072 */; + const int HAS_SATELLITE_ISB = (1 << 18) /* 262144 */; + const int HAS_SATELLITE_ISB_UNCERTAINTY = (1 << 19) /* 524288 */; + const int HAS_SATELLITE_PVT = (1 << 20) /* 1048576 */; + const int HAS_CORRELATION_VECTOR = (1 << 21) /* 2097152 */; + const int STATE_UNKNOWN = 0; + const int STATE_CODE_LOCK = (1 << 0) /* 1 */; + const int STATE_BIT_SYNC = (1 << 1) /* 2 */; + const int STATE_SUBFRAME_SYNC = (1 << 2) /* 4 */; + const int STATE_TOW_DECODED = (1 << 3) /* 8 */; + const int STATE_MSEC_AMBIGUOUS = (1 << 4) /* 16 */; + const int STATE_SYMBOL_SYNC = (1 << 5) /* 32 */; + const int STATE_GLO_STRING_SYNC = (1 << 6) /* 64 */; + const int STATE_GLO_TOD_DECODED = (1 << 7) /* 128 */; + const int STATE_BDS_D2_BIT_SYNC = (1 << 8) /* 256 */; + const int STATE_BDS_D2_SUBFRAME_SYNC = (1 << 9) /* 512 */; + const int STATE_GAL_E1BC_CODE_LOCK = (1 << 10) /* 1024 */; + const int STATE_GAL_E1C_2ND_CODE_LOCK = (1 << 11) /* 2048 */; + const int STATE_GAL_E1B_PAGE_SYNC = (1 << 12) /* 4096 */; + const int STATE_SBAS_SYNC = (1 << 13) /* 8192 */; + const int STATE_TOW_KNOWN = (1 << 14) /* 16384 */; + const int STATE_GLO_TOD_KNOWN = (1 << 15) /* 32768 */; + const int STATE_2ND_CODE_LOCK = (1 << 16) /* 65536 */; + const int ADR_STATE_UNKNOWN = 0; + const int ADR_STATE_VALID = (1 << 0) /* 1 */; + const int ADR_STATE_RESET = (1 << 1) /* 2 */; + const int ADR_STATE_CYCLE_SLIP = (1 << 2) /* 4 */; + const int ADR_STATE_HALF_CYCLE_RESOLVED = (1 << 3) /* 8 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMultipathIndicator.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMultipathIndicator.aidl new file mode 100644 index 0000000000..62ade9c3e8 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMultipathIndicator.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@Backing(type="int") @VintfStability +enum GnssMultipathIndicator { + UNKNOWN = 0, + PRESENT = 1, + NOT_PRESENT = 2, +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssPowerStats.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssPowerStats.aidl new file mode 100644 index 0000000000..c4a9e6179e --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssPowerStats.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssPowerStats { + android.hardware.gnss.ElapsedRealtime elapsedRealtime; + double totalEnergyMilliJoule; + double singlebandTrackingModeEnergyMilliJoule; + double multibandTrackingModeEnergyMilliJoule; + double singlebandAcquisitionModeEnergyMilliJoule; + double multibandAcquisitionModeEnergyMilliJoule; + double[] otherModesEnergyMilliJoule; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssSignalType.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssSignalType.aidl new file mode 100644 index 0000000000..a17f933e76 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssSignalType.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssSignalType { + android.hardware.gnss.GnssConstellationType constellation = android.hardware.gnss.GnssConstellationType.UNKNOWN; + double carrierFrequencyHz; + @utf8InCpp String codeType; + const @utf8InCpp String CODE_TYPE_A = "A"; + const @utf8InCpp String CODE_TYPE_B = "B"; + const @utf8InCpp String CODE_TYPE_C = "C"; + const @utf8InCpp String CODE_TYPE_D = "D"; + const @utf8InCpp String CODE_TYPE_E = "E"; + const @utf8InCpp String CODE_TYPE_I = "I"; + const @utf8InCpp String CODE_TYPE_L = "L"; + const @utf8InCpp String CODE_TYPE_M = "M"; + const @utf8InCpp String CODE_TYPE_N = "N"; + const @utf8InCpp String CODE_TYPE_P = "P"; + const @utf8InCpp String CODE_TYPE_Q = "Q"; + const @utf8InCpp String CODE_TYPE_S = "S"; + const @utf8InCpp String CODE_TYPE_W = "W"; + const @utf8InCpp String CODE_TYPE_X = "X"; + const @utf8InCpp String CODE_TYPE_Y = "Y"; + const @utf8InCpp String CODE_TYPE_Z = "Z"; + const @utf8InCpp String CODE_TYPE_UNKNOWN = "UNKNOWN"; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnss.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnss.aidl new file mode 100644 index 0000000000..639539ad65 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnss.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IAGnss { + void setCallback(in android.hardware.gnss.IAGnssCallback callback); + void dataConnClosed(); + void dataConnFailed(); + void setServer(in android.hardware.gnss.IAGnssCallback.AGnssType type, in @utf8InCpp String hostname, in int port); + void dataConnOpen(in long networkHandle, in @utf8InCpp String apn, in android.hardware.gnss.IAGnss.ApnIpType apnIpType); + @Backing(type="int") @VintfStability + enum ApnIpType { + INVALID = 0, + IPV4 = 1, + IPV6 = 2, + IPV4V6 = 3, + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssCallback.aidl new file mode 100644 index 0000000000..b2da8d9583 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssCallback.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IAGnssCallback { + void agnssStatusCb(in android.hardware.gnss.IAGnssCallback.AGnssType type, in android.hardware.gnss.IAGnssCallback.AGnssStatusValue status); + @Backing(type="int") @VintfStability + enum AGnssType { + SUPL = 1, + C2K = 2, + SUPL_EIMS = 3, + SUPL_IMS = 4, + } + @Backing(type="int") @VintfStability + enum AGnssStatusValue { + REQUEST_AGNSS_DATA_CONN = 1, + RELEASE_AGNSS_DATA_CONN = 2, + AGNSS_DATA_CONNECTED = 3, + AGNSS_DATA_CONN_DONE = 4, + AGNSS_DATA_CONN_FAILED = 5, + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRil.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRil.aidl new file mode 100644 index 0000000000..c8634ec2b0 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRil.aidl @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IAGnssRil { + void setCallback(in android.hardware.gnss.IAGnssRilCallback callback); + void setRefLocation(in android.hardware.gnss.IAGnssRil.AGnssRefLocation agnssReflocation); + void setSetId(in android.hardware.gnss.IAGnssRil.SetIdType type, in @utf8InCpp String setid); + void updateNetworkState(in android.hardware.gnss.IAGnssRil.NetworkAttributes attributes); + void injectNiSuplMessageData(in byte[] msgData, in int slotIndex); + const int NETWORK_CAPABILITY_NOT_METERED = 0x01; + const int NETWORK_CAPABILITY_NOT_ROAMING = 0x02; + @Backing(type="int") @VintfStability + enum AGnssRefLocationType { + GSM_CELLID = 1, + UMTS_CELLID = 2, + LTE_CELLID = 4, + NR_CELLID = 8, + } + @Backing(type="int") @VintfStability + enum SetIdType { + NONE = 0, + IMSI = 1, + MSISDM = 2, + } + @VintfStability + parcelable AGnssRefLocationCellID { + android.hardware.gnss.IAGnssRil.AGnssRefLocationType type; + int mcc; + int mnc; + int lac; + long cid; + int tac; + int pcid; + int arfcn; + } + @VintfStability + parcelable AGnssRefLocation { + android.hardware.gnss.IAGnssRil.AGnssRefLocationType type; + android.hardware.gnss.IAGnssRil.AGnssRefLocationCellID cellID; + } + @VintfStability + parcelable NetworkAttributes { + long networkHandle; + boolean isConnected; + int capabilities; + @utf8InCpp String apn; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRilCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRilCallback.aidl new file mode 100644 index 0000000000..3717026622 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRilCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IAGnssRilCallback { + void requestSetIdCb(in int setIdflag); + void requestRefLocCb(); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnss.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnss.aidl new file mode 100644 index 0000000000..d1aaf2c457 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnss.aidl @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnss { + void setCallback(in android.hardware.gnss.IGnssCallback callback); + void close(); + @nullable android.hardware.gnss.IGnssPsds getExtensionPsds(); + android.hardware.gnss.IGnssConfiguration getExtensionGnssConfiguration(); + android.hardware.gnss.IGnssMeasurementInterface getExtensionGnssMeasurement(); + android.hardware.gnss.IGnssPowerIndication getExtensionGnssPowerIndication(); + @nullable android.hardware.gnss.IGnssBatching getExtensionGnssBatching(); + @nullable android.hardware.gnss.IGnssGeofence getExtensionGnssGeofence(); + @nullable android.hardware.gnss.IGnssNavigationMessageInterface getExtensionGnssNavigationMessage(); + android.hardware.gnss.IAGnss getExtensionAGnss(); + android.hardware.gnss.IAGnssRil getExtensionAGnssRil(); + android.hardware.gnss.IGnssDebug getExtensionGnssDebug(); + android.hardware.gnss.visibility_control.IGnssVisibilityControl getExtensionGnssVisibilityControl(); + void start(); + void stop(); + void injectTime(in long timeMs, in long timeReferenceMs, in int uncertaintyMs); + void injectLocation(in android.hardware.gnss.GnssLocation location); + void injectBestLocation(in android.hardware.gnss.GnssLocation location); + void deleteAidingData(in android.hardware.gnss.IGnss.GnssAidingData aidingDataFlags); + void setPositionMode(in android.hardware.gnss.IGnss.PositionModeOptions options); + android.hardware.gnss.IGnssAntennaInfo getExtensionGnssAntennaInfo(); + @nullable android.hardware.gnss.measurement_corrections.IMeasurementCorrectionsInterface getExtensionMeasurementCorrections(); + void startSvStatus(); + void stopSvStatus(); + void startNmea(); + void stopNmea(); + const int ERROR_INVALID_ARGUMENT = 1; + const int ERROR_ALREADY_INIT = 2; + const int ERROR_GENERIC = 3; + @Backing(type="int") @VintfStability + enum GnssPositionMode { + STANDALONE = 0, + MS_BASED = 1, + MS_ASSISTED = 2, + } + @Backing(type="int") @VintfStability + enum GnssPositionRecurrence { + RECURRENCE_PERIODIC = 0, + RECURRENCE_SINGLE = 1, + } + @Backing(type="int") @VintfStability + enum GnssAidingData { + EPHEMERIS = 0x0001, + ALMANAC = 0x0002, + POSITION = 0x0004, + TIME = 0x0008, + IONO = 0x0010, + UTC = 0x0020, + HEALTH = 0x0040, + SVDIR = 0x0080, + SVSTEER = 0x0100, + SADATA = 0x0200, + RTI = 0x0400, + CELLDB_INFO = 0x8000, + ALL = 0xFFFF, + } + @VintfStability + parcelable PositionModeOptions { + android.hardware.gnss.IGnss.GnssPositionMode mode; + android.hardware.gnss.IGnss.GnssPositionRecurrence recurrence; + int minIntervalMs; + int preferredAccuracyMeters; + int preferredTimeMs; + boolean lowPowerMode; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfo.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfo.aidl new file mode 100644 index 0000000000..43ad328e5c --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssAntennaInfo { + void setCallback(in android.hardware.gnss.IGnssAntennaInfoCallback callback); + void close(); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfoCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfoCallback.aidl new file mode 100644 index 0000000000..eb6abe55f8 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfoCallback.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssAntennaInfoCallback { + void gnssAntennaInfoCb(in android.hardware.gnss.IGnssAntennaInfoCallback.GnssAntennaInfo[] gnssAntennaInfos); + @VintfStability + parcelable Row { + double[] row; + } + @VintfStability + parcelable Coord { + double x; + double xUncertainty; + double y; + double yUncertainty; + double z; + double zUncertainty; + } + @VintfStability + parcelable GnssAntennaInfo { + long carrierFrequencyHz; + android.hardware.gnss.IGnssAntennaInfoCallback.Coord phaseCenterOffsetCoordinateMillimeters; + android.hardware.gnss.IGnssAntennaInfoCallback.Row[] phaseCenterVariationCorrectionMillimeters; + android.hardware.gnss.IGnssAntennaInfoCallback.Row[] phaseCenterVariationCorrectionUncertaintyMillimeters; + android.hardware.gnss.IGnssAntennaInfoCallback.Row[] signalGainCorrectionDbi; + android.hardware.gnss.IGnssAntennaInfoCallback.Row[] signalGainCorrectionUncertaintyDbi; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatching.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatching.aidl new file mode 100644 index 0000000000..a021f55918 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatching.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssBatching { + void init(in android.hardware.gnss.IGnssBatchingCallback callback); + int getBatchSize(); + void start(in android.hardware.gnss.IGnssBatching.Options options); + void flush(); + void stop(); + void cleanup(); + const int WAKEUP_ON_FIFO_FULL = 0x01; + @VintfStability + parcelable Options { + long periodNanos; + float minDistanceMeters; + int flags; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatchingCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatchingCallback.aidl new file mode 100644 index 0000000000..b12a8bd519 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatchingCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssBatchingCallback { + void gnssLocationBatchCb(in android.hardware.gnss.GnssLocation[] locations); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssCallback.aidl new file mode 100644 index 0000000000..61710d3e25 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssCallback.aidl @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssCallback { + void gnssSetCapabilitiesCb(in int capabilities); + void gnssStatusCb(in android.hardware.gnss.IGnssCallback.GnssStatusValue status); + void gnssSvStatusCb(in android.hardware.gnss.IGnssCallback.GnssSvInfo[] svInfoList); + void gnssLocationCb(in android.hardware.gnss.GnssLocation location); + void gnssNmeaCb(in long timestamp, in @utf8InCpp String nmea); + void gnssAcquireWakelockCb(); + void gnssReleaseWakelockCb(); + void gnssSetSystemInfoCb(in android.hardware.gnss.IGnssCallback.GnssSystemInfo info); + void gnssRequestTimeCb(); + void gnssRequestLocationCb(in boolean independentFromGnss, in boolean isUserEmergency); + void gnssSetSignalTypeCapabilitiesCb(in android.hardware.gnss.GnssSignalType[] gnssSignalTypes); + const int CAPABILITY_SCHEDULING = (1 << 0) /* 1 */; + const int CAPABILITY_MSB = (1 << 1) /* 2 */; + const int CAPABILITY_MSA = (1 << 2) /* 4 */; + const int CAPABILITY_SINGLE_SHOT = (1 << 3) /* 8 */; + const int CAPABILITY_ON_DEMAND_TIME = (1 << 4) /* 16 */; + const int CAPABILITY_GEOFENCING = (1 << 5) /* 32 */; + const int CAPABILITY_MEASUREMENTS = (1 << 6) /* 64 */; + const int CAPABILITY_NAV_MESSAGES = (1 << 7) /* 128 */; + const int CAPABILITY_LOW_POWER_MODE = (1 << 8) /* 256 */; + const int CAPABILITY_SATELLITE_BLOCKLIST = (1 << 9) /* 512 */; + const int CAPABILITY_MEASUREMENT_CORRECTIONS = (1 << 10) /* 1024 */; + const int CAPABILITY_ANTENNA_INFO = (1 << 11) /* 2048 */; + const int CAPABILITY_CORRELATION_VECTOR = (1 << 12) /* 4096 */; + const int CAPABILITY_SATELLITE_PVT = (1 << 13) /* 8192 */; + const int CAPABILITY_MEASUREMENT_CORRECTIONS_FOR_DRIVING = (1 << 14) /* 16384 */; + const int CAPABILITY_ACCUMULATED_DELTA_RANGE = (1 << 15) /* 32768 */; + @Backing(type="int") @VintfStability + enum GnssStatusValue { + NONE = 0, + SESSION_BEGIN = 1, + SESSION_END = 2, + ENGINE_ON = 3, + ENGINE_OFF = 4, + } + @Backing(type="int") @VintfStability + enum GnssSvFlags { + NONE = 0, + HAS_EPHEMERIS_DATA = (1 << 0) /* 1 */, + HAS_ALMANAC_DATA = (1 << 1) /* 2 */, + USED_IN_FIX = (1 << 2) /* 4 */, + HAS_CARRIER_FREQUENCY = (1 << 3) /* 8 */, + } + @VintfStability + parcelable GnssSvInfo { + int svid; + android.hardware.gnss.GnssConstellationType constellation; + float cN0Dbhz; + float basebandCN0DbHz; + float elevationDegrees; + float azimuthDegrees; + long carrierFrequencyHz; + int svFlag; + } + @VintfStability + parcelable GnssSystemInfo { + int yearOfHw; + @utf8InCpp String name; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssConfiguration.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssConfiguration.aidl new file mode 100644 index 0000000000..70df11afa9 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssConfiguration.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssConfiguration { + void setSuplVersion(in int version); + void setSuplMode(in int mode); + void setLppProfile(in int lppProfile); + void setGlonassPositioningProtocol(in int protocol); + void setEmergencySuplPdn(in boolean enable); + void setEsExtensionSec(in int emergencyExtensionSeconds); + void setBlocklist(in android.hardware.gnss.BlocklistedSource[] blocklist); + const int SUPL_MODE_MSB = 0x01; + const int SUPL_MODE_MSA = 0x02; + const int LPP_PROFILE_USER_PLANE = 0x01; + const int LPP_PROFILE_CONTROL_PLANE = 0x02; + const int GLONASS_POS_PROTOCOL_RRC_CPLANE = 0x01; + const int GLONASS_POS_PROTOCOL_RRLP_UPLANE = 0x02; + const int GLONASS_POS_PROTOCOL_LPP_UPLANE = 0x04; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssDebug.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssDebug.aidl new file mode 100644 index 0000000000..591b53301f --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssDebug.aidl @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssDebug { + android.hardware.gnss.IGnssDebug.DebugData getDebugData(); + @Backing(type="int") @VintfStability + enum SatelliteEphemerisType { + EPHEMERIS = 0, + ALMANAC_ONLY = 1, + NOT_AVAILABLE = 2, + } + @Backing(type="int") @VintfStability + enum SatelliteEphemerisHealth { + GOOD = 0, + BAD = 1, + UNKNOWN = 2, + } + @VintfStability + parcelable TimeDebug { + long timeEstimateMs; + float timeUncertaintyNs; + float frequencyUncertaintyNsPerSec; + } + @VintfStability + parcelable PositionDebug { + boolean valid; + double latitudeDegrees; + double longitudeDegrees; + float altitudeMeters; + float speedMetersPerSec; + float bearingDegrees; + double horizontalAccuracyMeters; + double verticalAccuracyMeters; + double speedAccuracyMetersPerSecond; + double bearingAccuracyDegrees; + float ageSeconds; + } + @VintfStability + parcelable SatelliteData { + int svid; + android.hardware.gnss.GnssConstellationType constellation; + android.hardware.gnss.IGnssDebug.SatelliteEphemerisType ephemerisType; + android.hardware.gnss.SatellitePvt.SatelliteEphemerisSource ephemerisSource; + android.hardware.gnss.IGnssDebug.SatelliteEphemerisHealth ephemerisHealth; + float ephemerisAgeSeconds; + boolean serverPredictionIsAvailable; + float serverPredictionAgeSeconds; + } + @VintfStability + parcelable DebugData { + android.hardware.gnss.IGnssDebug.PositionDebug position; + android.hardware.gnss.IGnssDebug.TimeDebug time; + List satelliteDataArray; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofence.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofence.aidl new file mode 100644 index 0000000000..5065ad49c8 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofence.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssGeofence { + void setCallback(in android.hardware.gnss.IGnssGeofenceCallback callback); + void addGeofence(in int geofenceId, in double latitudeDegrees, in double longitudeDegrees, in double radiusMeters, in int lastTransition, in int monitorTransitions, in int notificationResponsivenessMs, in int unknownTimerMs); + void pauseGeofence(in int geofenceId); + void resumeGeofence(in int geofenceId, in int monitorTransitions); + void removeGeofence(in int geofenceId); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofenceCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofenceCallback.aidl new file mode 100644 index 0000000000..90f9ebce43 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofenceCallback.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssGeofenceCallback { + void gnssGeofenceTransitionCb(in int geofenceId, in android.hardware.gnss.GnssLocation location, in int transition, in long timestampMillis); + void gnssGeofenceStatusCb(in int availability, in android.hardware.gnss.GnssLocation lastLocation); + void gnssGeofenceAddCb(in int geofenceId, in int status); + void gnssGeofenceRemoveCb(in int geofenceId, in int status); + void gnssGeofencePauseCb(in int geofenceId, in int status); + void gnssGeofenceResumeCb(in int geofenceId, in int status); + const int ENTERED = (1 << 0) /* 1 */; + const int EXITED = (1 << 1) /* 2 */; + const int UNCERTAIN = (1 << 2) /* 4 */; + const int UNAVAILABLE = (1 << 0) /* 1 */; + const int AVAILABLE = (1 << 1) /* 2 */; + const int OPERATION_SUCCESS = 0; + const int ERROR_TOO_MANY_GEOFENCES = (-100) /* -100 */; + const int ERROR_ID_EXISTS = (-101) /* -101 */; + const int ERROR_ID_UNKNOWN = (-102) /* -102 */; + const int ERROR_INVALID_TRANSITION = (-103) /* -103 */; + const int ERROR_GENERIC = (-149) /* -149 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementCallback.aidl new file mode 100644 index 0000000000..624a7ae84d --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssMeasurementCallback { + void gnssMeasurementCb(in android.hardware.gnss.GnssData data); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementInterface.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementInterface.aidl new file mode 100644 index 0000000000..6fe6a6c6fd --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementInterface.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssMeasurementInterface { + void setCallback(in android.hardware.gnss.IGnssMeasurementCallback callback, in boolean enableFullTracking, in boolean enableCorrVecOutputs); + void close(); + void setCallbackWithOptions(in android.hardware.gnss.IGnssMeasurementCallback callback, in android.hardware.gnss.IGnssMeasurementInterface.Options options); + @VintfStability + parcelable Options { + boolean enableFullTracking; + boolean enableCorrVecOutputs; + int intervalMs; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageCallback.aidl new file mode 100644 index 0000000000..f6a8fef7ac --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageCallback.aidl @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssNavigationMessageCallback { + void gnssNavigationMessageCb(in android.hardware.gnss.IGnssNavigationMessageCallback.GnssNavigationMessage message); + @VintfStability + parcelable GnssNavigationMessage { + int svid; + android.hardware.gnss.IGnssNavigationMessageCallback.GnssNavigationMessage.GnssNavigationMessageType type; + int status; + int messageId; + int submessageId; + byte[] data; + const int STATUS_PARITY_PASSED = (1 << 0) /* 1 */; + const int STATUS_PARITY_REBUILT = (1 << 1) /* 2 */; + const int STATUS_UNKNOWN = 0; + @Backing(type="int") @VintfStability + enum GnssNavigationMessageType { + UNKNOWN = 0, + GPS_L1CA = 0x0101, + GPS_L2CNAV = 0x0102, + GPS_L5CNAV = 0x0103, + SBS = 0x0201, + GPS_CNAV2 = 0x0104, + GLO_L1CA = 0x0301, + QZS_L1CA = 0x0401, + BDS_D1 = 0x0501, + BDS_D2 = 0x0502, + BDS_CNAV1 = 0x0503, + BDS_CNAV2 = 0x0504, + GAL_I = 0x0601, + GAL_F = 0x0602, + /** + * @deprecated Use IRN_L5 instead. + */ + IRN_L5CA = 0x0701, + IRN_L5 = 0x0702, + IRN_L1 = 0x0703, + } + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageInterface.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageInterface.aidl new file mode 100644 index 0000000000..187773dd81 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageInterface.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssNavigationMessageInterface { + void setCallback(in android.hardware.gnss.IGnssNavigationMessageCallback callback); + void close(); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndication.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndication.aidl new file mode 100644 index 0000000000..f77dbfff86 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndication.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssPowerIndication { + void setCallback(in android.hardware.gnss.IGnssPowerIndicationCallback callback); + oneway void requestGnssPowerStats(); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndicationCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndicationCallback.aidl new file mode 100644 index 0000000000..07b10ad201 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndicationCallback.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssPowerIndicationCallback { + void setCapabilitiesCb(in int capabilities); + oneway void gnssPowerStatsCb(in android.hardware.gnss.GnssPowerStats gnssPowerStats); + const int CAPABILITY_TOTAL = (1 << 0) /* 1 */; + const int CAPABILITY_SINGLEBAND_TRACKING = (1 << 1) /* 2 */; + const int CAPABILITY_MULTIBAND_TRACKING = (1 << 2) /* 4 */; + const int CAPABILITY_SINGLEBAND_ACQUISITION = (1 << 3) /* 8 */; + const int CAPABILITY_MULTIBAND_ACQUISITION = (1 << 4) /* 16 */; + const int CAPABILITY_OTHER_MODES = (1 << 5) /* 32 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsds.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsds.aidl new file mode 100644 index 0000000000..3aee798b33 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsds.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssPsds { + void injectPsdsData(in android.hardware.gnss.PsdsType psdsType, in byte[] psdsData); + void setCallback(in android.hardware.gnss.IGnssPsdsCallback callback); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsdsCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsdsCallback.aidl new file mode 100644 index 0000000000..dadc9fb092 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsdsCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssPsdsCallback { + void downloadRequestCb(in android.hardware.gnss.PsdsType psdsType); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/PsdsType.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/PsdsType.aidl new file mode 100644 index 0000000000..60b15d63eb --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/PsdsType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@Backing(type="int") @VintfStability +enum PsdsType { + LONG_TERM = 1, + NORMAL = 2, + REALTIME = 3, +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteClockInfo.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteClockInfo.aidl new file mode 100644 index 0000000000..05f7733280 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteClockInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable SatelliteClockInfo { + double satHardwareCodeBiasMeters; + double satTimeCorrectionMeters; + double satClkDriftMps; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePositionEcef.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePositionEcef.aidl new file mode 100644 index 0000000000..3d4f7ff6e2 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePositionEcef.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable SatellitePositionEcef { + double posXMeters; + double posYMeters; + double posZMeters; + double ureMeters; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePvt.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePvt.aidl new file mode 100644 index 0000000000..ae65f39e3a --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePvt.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable SatellitePvt { + int flags; + android.hardware.gnss.SatellitePositionEcef satPosEcef; + android.hardware.gnss.SatelliteVelocityEcef satVelEcef; + android.hardware.gnss.SatelliteClockInfo satClockInfo; + double ionoDelayMeters; + double tropoDelayMeters; + long timeOfClockSeconds; + int issueOfDataClock; + long timeOfEphemerisSeconds; + int issueOfDataEphemeris; + android.hardware.gnss.SatellitePvt.SatelliteEphemerisSource ephemerisSource = android.hardware.gnss.SatellitePvt.SatelliteEphemerisSource.OTHER; + const int HAS_POSITION_VELOCITY_CLOCK_INFO = (1 << 0) /* 1 */; + const int HAS_IONO = (1 << 1) /* 2 */; + const int HAS_TROPO = (1 << 2) /* 4 */; + @Backing(type="int") @VintfStability + enum SatelliteEphemerisSource { + DEMODULATED = 0, + SERVER_NORMAL = 1, + SERVER_LONG_TERM = 2, + OTHER = 3, + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteVelocityEcef.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteVelocityEcef.aidl new file mode 100644 index 0000000000..94d0b344b7 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteVelocityEcef.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable SatelliteVelocityEcef { + double velXMps; + double velYMps; + double velZMps; + double ureRateMps; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsCallback.aidl new file mode 100644 index 0000000000..61909d05f7 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsCallback.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +interface IMeasurementCorrectionsCallback { + void setCapabilitiesCb(in int capabilities); + const int CAPABILITY_LOS_SATS = (1 << 0) /* 1 */; + const int CAPABILITY_EXCESS_PATH_LENGTH = (1 << 1) /* 2 */; + const int CAPABILITY_REFLECTING_PLANE = (1 << 2) /* 4 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsInterface.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsInterface.aidl new file mode 100644 index 0000000000..bd305345f6 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsInterface.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +interface IMeasurementCorrectionsInterface { + void setCorrections(in android.hardware.gnss.measurement_corrections.MeasurementCorrections corrections); + void setCallback(in android.hardware.gnss.measurement_corrections.IMeasurementCorrectionsCallback callback); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/MeasurementCorrections.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/MeasurementCorrections.aidl new file mode 100644 index 0000000000..35fd79e57e --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/MeasurementCorrections.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +parcelable MeasurementCorrections { + double latitudeDegrees; + double longitudeDegrees; + double altitudeMeters; + double horizontalPositionUncertaintyMeters; + double verticalPositionUncertaintyMeters; + long toaGpsNanosecondsOfWeek; + android.hardware.gnss.measurement_corrections.SingleSatCorrection[] satCorrections; + boolean hasEnvironmentBearing; + float environmentBearingDegrees; + float environmentBearingUncertaintyDegrees; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/ReflectingPlane.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/ReflectingPlane.aidl new file mode 100644 index 0000000000..90c9e03336 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/ReflectingPlane.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +parcelable ReflectingPlane { + double latitudeDegrees; + double longitudeDegrees; + double altitudeMeters; + double reflectingPlaneAzimuthDegrees; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/SingleSatCorrection.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/SingleSatCorrection.aidl new file mode 100644 index 0000000000..72d32e434c --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/SingleSatCorrection.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +parcelable SingleSatCorrection { + int singleSatCorrectionFlags; + android.hardware.gnss.GnssConstellationType constellation; + int svid; + long carrierFrequencyHz; + float probSatIsLos; + float combinedExcessPathLengthMeters; + float combinedExcessPathLengthUncertaintyMeters; + float combinedAttenuationDb; + android.hardware.gnss.measurement_corrections.SingleSatCorrection.ExcessPathInfo[] excessPathInfos; + const int SINGLE_SAT_CORRECTION_HAS_SAT_IS_LOS_PROBABILITY = 0x0001; + const int SINGLE_SAT_CORRECTION_HAS_COMBINED_EXCESS_PATH_LENGTH = 0x0002; + const int SINGLE_SAT_CORRECTION_HAS_COMBINED_EXCESS_PATH_LENGTH_UNC = 0x0004; + const int SINGLE_SAT_CORRECTION_HAS_COMBINED_ATTENUATION = 0x0010; + @VintfStability + parcelable ExcessPathInfo { + int excessPathInfoFlags; + float excessPathLengthMeters; + float excessPathLengthUncertaintyMeters; + android.hardware.gnss.measurement_corrections.ReflectingPlane reflectingPlane; + float attenuationDb; + const int EXCESS_PATH_INFO_HAS_EXCESS_PATH_LENGTH = 0x0001; + const int EXCESS_PATH_INFO_HAS_EXCESS_PATH_LENGTH_UNC = 0x0002; + const int EXCESS_PATH_INFO_HAS_REFLECTING_PLANE = 0x0004; + const int EXCESS_PATH_INFO_HAS_ATTENUATION = 0x0008; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControl.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControl.aidl new file mode 100644 index 0000000000..d7a7a9651f --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControl.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.visibility_control; +/* @hide */ +@VintfStability +interface IGnssVisibilityControl { + void enableNfwLocationAccess(in @utf8InCpp String[] proxyApps); + void setCallback(in android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback callback); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControlCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControlCallback.aidl new file mode 100644 index 0000000000..c9b96f50bb --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControlCallback.aidl @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.visibility_control; +/* @hide */ +@VintfStability +interface IGnssVisibilityControlCallback { + void nfwNotifyCb(in android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback.NfwNotification notification); + boolean isInEmergencySession(); + @Backing(type="int") @VintfStability + enum NfwProtocolStack { + CTRL_PLANE = 0, + SUPL = 1, + IMS = 10, + SIM = 11, + OTHER_PROTOCOL_STACK = 100, + } + @Backing(type="int") @VintfStability + enum NfwRequestor { + CARRIER = 0, + OEM = 10, + MODEM_CHIPSET_VENDOR = 11, + GNSS_CHIPSET_VENDOR = 12, + OTHER_CHIPSET_VENDOR = 13, + AUTOMOBILE_CLIENT = 20, + OTHER_REQUESTOR = 100, + } + @Backing(type="int") @VintfStability + enum NfwResponseType { + REJECTED = 0, + ACCEPTED_NO_LOCATION_PROVIDED = 1, + ACCEPTED_LOCATION_PROVIDED = 2, + } + @VintfStability + parcelable NfwNotification { + String proxyAppPackageName; + android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback.NfwProtocolStack protocolStack; + String otherProtocolStackName; + android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback.NfwRequestor requestor; + String requestorId; + android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback.NfwResponseType responseType; + boolean inEmergencyMode; + boolean isCachedLocation; + } +} diff --git a/graphics/common/aidl/Android.bp b/graphics/common/aidl/Android.bp index 605299f818..570f735e1e 100644 --- a/graphics/common/aidl/Android.bp +++ b/graphics/common/aidl/Android.bp @@ -44,7 +44,7 @@ aidl_interface { enabled: true, }, }, - frozen: false, + frozen: true, versions_with_info: [ { version: "1", @@ -68,6 +68,10 @@ aidl_interface { version: "4", imports: ["android.hardware.common-V2"], }, + { + version: "5", + imports: ["android.hardware.common-V2"], + }, ], } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/.hash new file mode 100644 index 0000000000..867997340a --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/.hash @@ -0,0 +1 @@ +2ffe8da1136972e9b6bed7903f0d5aca289005a9 diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/AlphaInterpretation.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/AlphaInterpretation.aidl new file mode 100644 index 0000000000..ea60283fe1 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/AlphaInterpretation.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum AlphaInterpretation { + COVERAGE = 0, + MASK = 1, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BlendMode.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BlendMode.aidl new file mode 100644 index 0000000000..d1f61beee8 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BlendMode.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum BlendMode { + INVALID = 0, + NONE = 1, + PREMULTIPLIED = 2, + COVERAGE = 3, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BufferUsage.aidl new file mode 100644 index 0000000000..52b2a56cb7 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BufferUsage.aidl @@ -0,0 +1,65 @@ +/* + * Copyright 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum BufferUsage { + CPU_READ_MASK = 0xf, + CPU_READ_NEVER = 0, + CPU_READ_RARELY = 2, + CPU_READ_OFTEN = 3, + CPU_WRITE_MASK = (0xf << 4) /* 240 */, + CPU_WRITE_NEVER = (0 << 4) /* 0 */, + CPU_WRITE_RARELY = (2 << 4) /* 32 */, + CPU_WRITE_OFTEN = (3 << 4) /* 48 */, + GPU_TEXTURE = (1 << 8) /* 256 */, + GPU_RENDER_TARGET = (1 << 9) /* 512 */, + COMPOSER_OVERLAY = (1 << 11) /* 2048 */, + COMPOSER_CLIENT_TARGET = (1 << 12) /* 4096 */, + PROTECTED = (1 << 14) /* 16384 */, + COMPOSER_CURSOR = (1 << 15) /* 32768 */, + VIDEO_ENCODER = (1 << 16) /* 65536 */, + CAMERA_OUTPUT = (1 << 17) /* 131072 */, + CAMERA_INPUT = (1 << 18) /* 262144 */, + RENDERSCRIPT = (1 << 20) /* 1048576 */, + VIDEO_DECODER = (1 << 22) /* 4194304 */, + SENSOR_DIRECT_DATA = (1 << 23) /* 8388608 */, + GPU_DATA_BUFFER = (1 << 24) /* 16777216 */, + GPU_CUBE_MAP = (1 << 25) /* 33554432 */, + GPU_MIPMAP_COMPLETE = (1 << 26) /* 67108864 */, + HW_IMAGE_ENCODER = (1 << 27) /* 134217728 */, + FRONT_BUFFER = (1L << 32) /* 4294967296 */, + VENDOR_MASK = (0xfL << 28) /* 4026531840 */, + VENDOR_MASK_HI = ((1L * 0xffff) << 48) /* -281474976710656 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ChromaSiting.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ChromaSiting.aidl new file mode 100644 index 0000000000..784fc1798a --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ChromaSiting.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum ChromaSiting { + NONE = 0, + UNKNOWN = 1, + SITED_INTERSTITIAL = 2, + COSITED_HORIZONTAL = 3, + COSITED_VERTICAL = 4, + COSITED_BOTH = 5, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ColorTransform.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ColorTransform.aidl new file mode 100644 index 0000000000..f74859b788 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ColorTransform.aidl @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum ColorTransform { + IDENTITY = 0, + ARBITRARY_MATRIX = 1, + VALUE_INVERSE = 2, + GRAYSCALE = 3, + CORRECT_PROTANOPIA = 4, + CORRECT_DEUTERANOPIA = 5, + CORRECT_TRITANOPIA = 6, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Compression.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Compression.aidl new file mode 100644 index 0000000000..4f155e19a9 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Compression.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum Compression { + NONE = 0, + DISPLAY_STREAM_COMPRESSION = 1, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Cta861_3.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Cta861_3.aidl new file mode 100644 index 0000000000..ec90c9c64f --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Cta861_3.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable Cta861_3 { + float maxContentLightLevel; + float maxFrameAverageLightLevel; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Dataspace.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Dataspace.aidl new file mode 100644 index 0000000000..6ed5bb2183 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Dataspace.aidl @@ -0,0 +1,101 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum Dataspace { + UNKNOWN = 0x0, + ARBITRARY = 0x1, + STANDARD_SHIFT = 16, + STANDARD_MASK = (63 << 16) /* 4128768 */, + STANDARD_UNSPECIFIED = (0 << 16) /* 0 */, + STANDARD_BT709 = (1 << 16) /* 65536 */, + STANDARD_BT601_625 = (2 << 16) /* 131072 */, + STANDARD_BT601_625_UNADJUSTED = (3 << 16) /* 196608 */, + STANDARD_BT601_525 = (4 << 16) /* 262144 */, + STANDARD_BT601_525_UNADJUSTED = (5 << 16) /* 327680 */, + STANDARD_BT2020 = (6 << 16) /* 393216 */, + STANDARD_BT2020_CONSTANT_LUMINANCE = (7 << 16) /* 458752 */, + STANDARD_BT470M = (8 << 16) /* 524288 */, + STANDARD_FILM = (9 << 16) /* 589824 */, + STANDARD_DCI_P3 = (10 << 16) /* 655360 */, + STANDARD_ADOBE_RGB = (11 << 16) /* 720896 */, + TRANSFER_SHIFT = 22, + TRANSFER_MASK = (31 << 22) /* 130023424 */, + TRANSFER_UNSPECIFIED = (0 << 22) /* 0 */, + TRANSFER_LINEAR = (1 << 22) /* 4194304 */, + TRANSFER_SRGB = (2 << 22) /* 8388608 */, + TRANSFER_SMPTE_170M = (3 << 22) /* 12582912 */, + TRANSFER_GAMMA2_2 = (4 << 22) /* 16777216 */, + TRANSFER_GAMMA2_6 = (5 << 22) /* 20971520 */, + TRANSFER_GAMMA2_8 = (6 << 22) /* 25165824 */, + TRANSFER_ST2084 = (7 << 22) /* 29360128 */, + TRANSFER_HLG = (8 << 22) /* 33554432 */, + RANGE_SHIFT = 27, + RANGE_MASK = (7 << 27) /* 939524096 */, + RANGE_UNSPECIFIED = (0 << 27) /* 0 */, + RANGE_FULL = (1 << 27) /* 134217728 */, + RANGE_LIMITED = (2 << 27) /* 268435456 */, + RANGE_EXTENDED = (3 << 27) /* 402653184 */, + SRGB_LINEAR = (((1 << 16) | (1 << 22)) | (1 << 27)) /* 138477568 */, + SCRGB_LINEAR = (((1 << 16) | (1 << 22)) | (3 << 27)) /* 406913024 */, + SRGB = (((1 << 16) | (2 << 22)) | (1 << 27)) /* 142671872 */, + SCRGB = (((1 << 16) | (2 << 22)) | (3 << 27)) /* 411107328 */, + JFIF = (((2 << 16) | (3 << 22)) | (1 << 27)) /* 146931712 */, + BT601_625 = (((2 << 16) | (3 << 22)) | (2 << 27)) /* 281149440 */, + BT601_525 = (((4 << 16) | (3 << 22)) | (2 << 27)) /* 281280512 */, + BT709 = (((1 << 16) | (3 << 22)) | (2 << 27)) /* 281083904 */, + DCI_P3_LINEAR = (((10 << 16) | (1 << 22)) | (1 << 27)) /* 139067392 */, + DCI_P3 = (((10 << 16) | (5 << 22)) | (1 << 27)) /* 155844608 */, + DISPLAY_P3_LINEAR = (((10 << 16) | (1 << 22)) | (1 << 27)) /* 139067392 */, + DISPLAY_P3 = (((10 << 16) | (2 << 22)) | (1 << 27)) /* 143261696 */, + ADOBE_RGB = (((11 << 16) | (4 << 22)) | (1 << 27)) /* 151715840 */, + ADOBE_RGB_LINEAR = (((11 << 16) | (1 << 22)) | (1 << 27)) /* 139132928 */, + BT2020_LINEAR = (((6 << 16) | (1 << 22)) | (1 << 27)) /* 138805248 */, + BT2020 = (((6 << 16) | (3 << 22)) | (1 << 27)) /* 147193856 */, + BT2020_PQ = (((6 << 16) | (7 << 22)) | (1 << 27)) /* 163971072 */, + BT2020_LINEAR_EXTENDED = (((6 << 16) | (1 << 22)) | (3 << 27)) /* 407240704 */, + DEPTH = 0x1000, + SENSOR = 0x1001, + BT2020_ITU = (((6 << 16) | (3 << 22)) | (2 << 27)) /* 281411584 */, + BT2020_ITU_PQ = (((6 << 16) | (7 << 22)) | (2 << 27)) /* 298188800 */, + BT2020_ITU_HLG = (((6 << 16) | (8 << 22)) | (2 << 27)) /* 302383104 */, + BT2020_HLG = (((6 << 16) | (8 << 22)) | (1 << 27)) /* 168165376 */, + DISPLAY_BT2020 = (((6 << 16) | (2 << 22)) | (1 << 27)) /* 142999552 */, + DYNAMIC_DEPTH = 0x1002, + JPEG_APP_SEGMENTS = 0x1003, + HEIF = 0x1004, + JPEG_R = 0x1005, + BT709_FULL_RANGE = (((1 << 16) | (3 << 22)) | (1 << 27)) /* 146866176 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayDecorationSupport.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayDecorationSupport.aidl new file mode 100644 index 0000000000..27eff76432 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayDecorationSupport.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable DisplayDecorationSupport { + android.hardware.graphics.common.PixelFormat format; + android.hardware.graphics.common.AlphaInterpretation alphaInterpretation; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayHotplugEvent.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayHotplugEvent.aidl new file mode 100644 index 0000000000..63dca0aab5 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayHotplugEvent.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +@Backing(type="int") @VintfStability +enum DisplayHotplugEvent { + CONNECTED = 0, + DISCONNECTED = 1, + ERROR_UNKNOWN = (-1) /* -1 */, + ERROR_INCOMPATIBLE_CABLE = (-2) /* -2 */, + ERROR_TOO_MANY_DISPLAYS = (-3) /* -3 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ExtendableType.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ExtendableType.aidl new file mode 100644 index 0000000000..5ff17752f7 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ExtendableType.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable ExtendableType { + @utf8InCpp String name; + long value = 0; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/FRect.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/FRect.aidl new file mode 100644 index 0000000000..7972e111e2 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/FRect.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable FRect { + float left; + float top; + float right; + float bottom; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBuffer.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBuffer.aidl new file mode 100644 index 0000000000..0fe949304c --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBuffer.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/** + * @hide + * @deprecated : Use instead android.hardware.HardwareBuffer in frameworks/base + */ +@VintfStability +parcelable HardwareBuffer { + android.hardware.graphics.common.HardwareBufferDescription description; + android.hardware.common.NativeHandle handle; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBufferDescription.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBufferDescription.aidl new file mode 100644 index 0000000000..70f46a1e6c --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBufferDescription.aidl @@ -0,0 +1,44 @@ +/* + * Copyright 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable HardwareBufferDescription { + int width; + int height; + int layers; + android.hardware.graphics.common.PixelFormat format = android.hardware.graphics.common.PixelFormat.UNSPECIFIED; + android.hardware.graphics.common.BufferUsage usage = android.hardware.graphics.common.BufferUsage.CPU_READ_NEVER; + int stride; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Hdr.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Hdr.aidl new file mode 100644 index 0000000000..71927b6fbf --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Hdr.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum Hdr { + INVALID = 0, + DOLBY_VISION = 1, + HDR10 = 2, + HLG = 3, + HDR10_PLUS = 4, + DOLBY_VISION_4K30 = 5, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionCapability.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionCapability.aidl new file mode 100644 index 0000000000..b74f7d7ce5 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionCapability.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +@VintfStability +parcelable HdrConversionCapability { + android.hardware.graphics.common.Hdr sourceType; + android.hardware.graphics.common.Hdr outputType; + boolean addsLatency; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionStrategy.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionStrategy.aidl new file mode 100644 index 0000000000..db785cf63f --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionStrategy.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +@VintfStability +union HdrConversionStrategy { + boolean passthrough = true; + android.hardware.graphics.common.Hdr[] autoAllowedHdrTypes; + android.hardware.graphics.common.Hdr forceHdrConversion; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Interlaced.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Interlaced.aidl new file mode 100644 index 0000000000..e04d2ab2bd --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Interlaced.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum Interlaced { + NONE = 0, + TOP_BOTTOM = 1, + RIGHT_LEFT = 2, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PixelFormat.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PixelFormat.aidl new file mode 100644 index 0000000000..ed84a44b4f --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PixelFormat.aidl @@ -0,0 +1,71 @@ +/* + * Copyright 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum PixelFormat { + UNSPECIFIED = 0, + RGBA_8888 = 0x1, + RGBX_8888 = 0x2, + RGB_888 = 0x3, + RGB_565 = 0x4, + BGRA_8888 = 0x5, + YCBCR_422_SP = 0x10, + YCRCB_420_SP = 0x11, + YCBCR_422_I = 0x14, + RGBA_FP16 = 0x16, + RAW16 = 0x20, + BLOB = 0x21, + IMPLEMENTATION_DEFINED = 0x22, + YCBCR_420_888 = 0x23, + RAW_OPAQUE = 0x24, + RAW10 = 0x25, + RAW12 = 0x26, + RGBA_1010102 = 0x2B, + Y8 = 0x20203859, + Y16 = 0x20363159, + YV12 = 0x32315659, + DEPTH_16 = 0x30, + DEPTH_24 = 0x31, + DEPTH_24_STENCIL_8 = 0x32, + DEPTH_32F = 0x33, + DEPTH_32F_STENCIL_8 = 0x34, + STENCIL_8 = 0x35, + YCBCR_P010 = 0x36, + HSV_888 = 0x37, + R_8 = 0x38, + R_16_UINT = 0x39, + RG_1616_UINT = 0x3a, + RGBA_10101010 = 0x3b, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayout.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayout.aidl new file mode 100644 index 0000000000..a09097511b --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayout.aidl @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable PlaneLayout { + android.hardware.graphics.common.PlaneLayoutComponent[] components; + long offsetInBytes; + long sampleIncrementInBits; + long strideInBytes; + long widthInSamples; + long heightInSamples; + long totalSizeInBytes; + long horizontalSubsampling; + long verticalSubsampling; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponent.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponent.aidl new file mode 100644 index 0000000000..0768240bf5 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponent.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable PlaneLayoutComponent { + android.hardware.graphics.common.ExtendableType type; + long offsetInBits; + long sizeInBits; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponentType.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponentType.aidl new file mode 100644 index 0000000000..e3067515fd --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponentType.aidl @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum PlaneLayoutComponentType { + Y = (1 << 0) /* 1 */, + CB = (1 << 1) /* 2 */, + CR = (1 << 2) /* 4 */, + R = (1 << 10) /* 1024 */, + G = (1 << 11) /* 2048 */, + B = (1 << 12) /* 4096 */, + RAW = (1 << 20) /* 1048576 */, + A = (1 << 30) /* 1073741824 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Point.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Point.aidl new file mode 100644 index 0000000000..af4705a1e4 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Point.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable Point { + int x; + int y; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Rect.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Rect.aidl new file mode 100644 index 0000000000..463a68f973 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Rect.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable Rect { + int left; + int top; + int right; + int bottom; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Smpte2086.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Smpte2086.aidl new file mode 100644 index 0000000000..dce9226c09 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Smpte2086.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable Smpte2086 { + android.hardware.graphics.common.XyColor primaryRed; + android.hardware.graphics.common.XyColor primaryGreen; + android.hardware.graphics.common.XyColor primaryBlue; + android.hardware.graphics.common.XyColor whitePoint; + float maxLuminance; + float minLuminance; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/StandardMetadataType.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/StandardMetadataType.aidl new file mode 100644 index 0000000000..6e2e1063c3 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/StandardMetadataType.aidl @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2019,libgralloctypes_helper The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum StandardMetadataType { + INVALID = 0, + BUFFER_ID = 1, + NAME = 2, + WIDTH = 3, + HEIGHT = 4, + LAYER_COUNT = 5, + PIXEL_FORMAT_REQUESTED = 6, + PIXEL_FORMAT_FOURCC = 7, + PIXEL_FORMAT_MODIFIER = 8, + USAGE = 9, + ALLOCATION_SIZE = 10, + PROTECTED_CONTENT = 11, + COMPRESSION = 12, + INTERLACED = 13, + CHROMA_SITING = 14, + PLANE_LAYOUTS = 15, + CROP = 16, + DATASPACE = 17, + BLEND_MODE = 18, + SMPTE2086 = 19, + CTA861_3 = 20, + SMPTE2094_40 = 21, + SMPTE2094_10 = 22, + STRIDE = 23, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Transform.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Transform.aidl new file mode 100644 index 0000000000..dbed57dae6 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Transform.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum Transform { + NONE = 0, + FLIP_H = (1 << 0) /* 1 */, + FLIP_V = (1 << 1) /* 2 */, + ROT_90 = (1 << 2) /* 4 */, + ROT_180 = (FLIP_H | FLIP_V) /* 3 */, + ROT_270 = ((FLIP_H | FLIP_V) | ROT_90) /* 7 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/XyColor.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/XyColor.aidl new file mode 100644 index 0000000000..e300f25dad --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/XyColor.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable XyColor { + float x; + float y; +} diff --git a/graphics/composer/aidl/Android.bp b/graphics/composer/aidl/Android.bp index d60f8c4d39..87ecb16a2f 100644 --- a/graphics/composer/aidl/Android.bp +++ b/graphics/composer/aidl/Android.bp @@ -32,7 +32,7 @@ aidl_interface { enabled: true, support_system_process: true, }, - frozen: false, + frozen: true, vndk_use_version: "1", srcs: [ "android/hardware/graphics/composer3/*.aidl", @@ -74,6 +74,13 @@ aidl_interface { "android.hardware.common-V2", ], }, + { + version: "3", + imports: [ + "android.hardware.graphics.common-V5", + "android.hardware.common-V2", + ], + }, ], diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/.hash b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/.hash new file mode 100644 index 0000000000..f64da11395 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/.hash @@ -0,0 +1 @@ +d24fcd9648b8b2e7287f9238eee9180244612c10 diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Buffer.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Buffer.aidl new file mode 100644 index 0000000000..a33ad23323 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Buffer.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable Buffer { + int slot; + @nullable android.hardware.common.NativeHandle handle; + @nullable ParcelFileDescriptor fence; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Capability.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Capability.aidl new file mode 100644 index 0000000000..ee004d6ef2 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Capability.aidl @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum Capability { + INVALID = 0, + SIDEBAND_STREAM = 1, + SKIP_CLIENT_COLOR_TRANSFORM = 2, + PRESENT_FENCE_IS_NOT_RELIABLE = 3, + /** + * @deprecated - enabled by default. + */ + SKIP_VALIDATE = 4, + BOOT_DISPLAY_CONFIG = 5, + HDR_OUTPUT_CONVERSION_CONFIG = 6, + REFRESH_RATE_CHANGED_CALLBACK_DEBUG = 7, + LAYER_LIFECYCLE_BATCH_COMMAND = 8, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionLayer.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionLayer.aidl new file mode 100644 index 0000000000..7e47ba8b5e --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionLayer.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ChangedCompositionLayer { + long layer; + android.hardware.graphics.composer3.Composition composition; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionTypes.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionTypes.aidl new file mode 100644 index 0000000000..9a5ca9700d --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionTypes.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ChangedCompositionTypes { + long display; + android.hardware.graphics.composer3.ChangedCompositionLayer[] layers; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTarget.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTarget.aidl new file mode 100644 index 0000000000..06ed922e94 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTarget.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ClientTarget { + android.hardware.graphics.composer3.Buffer buffer; + android.hardware.graphics.common.Dataspace dataspace; + android.hardware.graphics.common.Rect[] damage; + float hdrSdrRatio = 1.0f; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetProperty.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetProperty.aidl new file mode 100644 index 0000000000..d34d1b0ab8 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetProperty.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ClientTargetProperty { + android.hardware.graphics.common.PixelFormat pixelFormat; + android.hardware.graphics.common.Dataspace dataspace; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetPropertyWithBrightness.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetPropertyWithBrightness.aidl new file mode 100644 index 0000000000..8fb6933c95 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetPropertyWithBrightness.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ClientTargetPropertyWithBrightness { + long display; + android.hardware.graphics.composer3.ClientTargetProperty clientTargetProperty; + float brightness; + android.hardware.graphics.composer3.DimmingStage dimmingStage; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClockMonotonicTimestamp.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClockMonotonicTimestamp.aidl new file mode 100644 index 0000000000..480a85c27f --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClockMonotonicTimestamp.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ClockMonotonicTimestamp { + long timestampNanos; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Color.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Color.aidl new file mode 100644 index 0000000000..822290908e --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Color.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable Color { + float r; + float g; + float b; + float a; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ColorMode.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ColorMode.aidl new file mode 100644 index 0000000000..53852b6270 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ColorMode.aidl @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum ColorMode { + NATIVE = 0, + STANDARD_BT601_625 = 1, + STANDARD_BT601_625_UNADJUSTED = 2, + STANDARD_BT601_525 = 3, + STANDARD_BT601_525_UNADJUSTED = 4, + STANDARD_BT709 = 5, + DCI_P3 = 6, + SRGB = 7, + ADOBE_RGB = 8, + DISPLAY_P3 = 9, + BT2020 = 10, + BT2100_PQ = 11, + BT2100_HLG = 12, + DISPLAY_BT2020 = 13, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandError.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandError.aidl new file mode 100644 index 0000000000..103bfdc689 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandError.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable CommandError { + int commandIndex; + int errorCode; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandResultPayload.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandResultPayload.aidl new file mode 100644 index 0000000000..6892f06180 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandResultPayload.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +union CommandResultPayload { + android.hardware.graphics.composer3.CommandError error; + android.hardware.graphics.composer3.ChangedCompositionTypes changedCompositionTypes; + android.hardware.graphics.composer3.DisplayRequest displayRequest; + android.hardware.graphics.composer3.PresentFence presentFence; + android.hardware.graphics.composer3.ReleaseFences releaseFences; + android.hardware.graphics.composer3.PresentOrValidate presentOrValidateResult; + android.hardware.graphics.composer3.ClientTargetPropertyWithBrightness clientTargetProperty; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Composition.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Composition.aidl new file mode 100644 index 0000000000..34d6822148 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Composition.aidl @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum Composition { + INVALID = 0, + CLIENT = 1, + DEVICE = 2, + SOLID_COLOR = 3, + CURSOR = 4, + SIDEBAND = 5, + DISPLAY_DECORATION = 6, + REFRESH_RATE_INDICATOR = 7, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ContentType.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ContentType.aidl new file mode 100644 index 0000000000..d87b7670dd --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ContentType.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum ContentType { + NONE = 0, + GRAPHICS = 1, + PHOTO = 2, + CINEMA = 3, + GAME = 4, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DimmingStage.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DimmingStage.aidl new file mode 100644 index 0000000000..44457f8ec1 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DimmingStage.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum DimmingStage { + NONE = 0, + LINEAR = 1, + GAMMA_OETF = 2, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayAttribute.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayAttribute.aidl new file mode 100644 index 0000000000..8454c40dbe --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayAttribute.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum DisplayAttribute { + INVALID = 0, + WIDTH = 1, + HEIGHT = 2, + VSYNC_PERIOD = 3, + DPI_X = 4, + DPI_Y = 5, + CONFIG_GROUP = 7, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayBrightness.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayBrightness.aidl new file mode 100644 index 0000000000..e765189b96 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayBrightness.aidl @@ -0,0 +1,39 @@ +/** + * Copyright 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayBrightness { + float brightness; + float brightnessNits; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCapability.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCapability.aidl new file mode 100644 index 0000000000..0e2d72bae0 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCapability.aidl @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum DisplayCapability { + INVALID = 0, + SKIP_CLIENT_COLOR_TRANSFORM = 1, + DOZE = 2, + BRIGHTNESS = 3, + PROTECTED_CONTENTS = 4, + AUTO_LOW_LATENCY_MODE = 5, + SUSPEND = 6, + DISPLAY_IDLE_TIMER = 7, + MULTI_THREADED_PRESENT = 8, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCommand.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCommand.aidl new file mode 100644 index 0000000000..cce35e79ab --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCommand.aidl @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayCommand { + long display; + android.hardware.graphics.composer3.LayerCommand[] layers; + @nullable float[] colorTransformMatrix; + @nullable android.hardware.graphics.composer3.DisplayBrightness brightness; + @nullable android.hardware.graphics.composer3.ClientTarget clientTarget; + @nullable android.hardware.graphics.composer3.Buffer virtualDisplayOutputBuffer; + @nullable android.hardware.graphics.composer3.ClockMonotonicTimestamp expectedPresentTime; + boolean validateDisplay; + boolean acceptDisplayChanges; + boolean presentDisplay; + boolean presentOrValidateDisplay; + int frameIntervalNs; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConfiguration.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConfiguration.aidl new file mode 100644 index 0000000000..040afd7866 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConfiguration.aidl @@ -0,0 +1,48 @@ +/** + * Copyright 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayConfiguration { + int configId; + int width; + int height; + @nullable android.hardware.graphics.composer3.DisplayConfiguration.Dpi dpi; + int configGroup; + int vsyncPeriod; + @nullable android.hardware.graphics.composer3.VrrConfig vrrConfig; + parcelable Dpi { + float x; + float y; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConnectionType.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConnectionType.aidl new file mode 100644 index 0000000000..640f82a0cd --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConnectionType.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum DisplayConnectionType { + INTERNAL = 0, + EXTERNAL = 1, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSample.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSample.aidl new file mode 100644 index 0000000000..c62453634f --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSample.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayContentSample { + long frameCount; + long[] sampleComponent0; + long[] sampleComponent1; + long[] sampleComponent2; + long[] sampleComponent3; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSamplingAttributes.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSamplingAttributes.aidl new file mode 100644 index 0000000000..7c6542f527 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSamplingAttributes.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayContentSamplingAttributes { + android.hardware.graphics.common.PixelFormat format; + android.hardware.graphics.common.Dataspace dataspace; + android.hardware.graphics.composer3.FormatColorComponent componentMask; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayIdentification.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayIdentification.aidl new file mode 100644 index 0000000000..a0cc9b097b --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayIdentification.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayIdentification { + byte port; + byte[] data; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayRequest.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayRequest.aidl new file mode 100644 index 0000000000..e6db116398 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayRequest.aidl @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayRequest { + long display; + int mask; + android.hardware.graphics.composer3.DisplayRequest.LayerRequest[] layerRequests; + const int FLIP_CLIENT_TARGET = (1 << 0) /* 1 */; + const int WRITE_CLIENT_TARGET_TO_OUTPUT = (1 << 1) /* 2 */; + @VintfStability + parcelable LayerRequest { + long layer; + int mask; + const int CLEAR_CLIENT_TARGET = (1 << 0) /* 1 */; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/FormatColorComponent.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/FormatColorComponent.aidl new file mode 100644 index 0000000000..89dae83bbe --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/FormatColorComponent.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="byte") @VintfStability +enum FormatColorComponent { + FORMAT_COMPONENT_0 = (1 << 0) /* 1 */, + FORMAT_COMPONENT_1 = (1 << 1) /* 2 */, + FORMAT_COMPONENT_2 = (1 << 2) /* 4 */, + FORMAT_COMPONENT_3 = (1 << 3) /* 8 */, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/HdrCapabilities.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/HdrCapabilities.aidl new file mode 100644 index 0000000000..80141d3543 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/HdrCapabilities.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable HdrCapabilities { + android.hardware.graphics.common.Hdr[] types; + float maxLuminance; + float maxAverageLuminance; + float minLuminance; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposer.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposer.aidl new file mode 100644 index 0000000000..21b9ad88cd --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposer.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +interface IComposer { + android.hardware.graphics.composer3.IComposerClient createClient(); + android.hardware.graphics.composer3.Capability[] getCapabilities(); + const int EX_NO_RESOURCES = 6; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerCallback.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerCallback.aidl new file mode 100644 index 0000000000..e64bd5273e --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerCallback.aidl @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +interface IComposerCallback { + /** + * @deprecated : Use instead onHotplugEvent + */ + void onHotplug(long display, boolean connected); + oneway void onRefresh(long display); + oneway void onSeamlessPossible(long display); + oneway void onVsync(long display, long timestamp, int vsyncPeriodNanos); + oneway void onVsyncPeriodTimingChanged(long display, in android.hardware.graphics.composer3.VsyncPeriodChangeTimeline updatedTimeline); + oneway void onVsyncIdle(long display); + oneway void onRefreshRateChangedDebug(in android.hardware.graphics.composer3.RefreshRateChangedDebugData data); + void onHotplugEvent(long display, android.hardware.graphics.common.DisplayHotplugEvent event); +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerClient.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerClient.aidl new file mode 100644 index 0000000000..bc27cc7ec4 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerClient.aidl @@ -0,0 +1,101 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +interface IComposerClient { + long createLayer(long display, int bufferSlotCount); + android.hardware.graphics.composer3.VirtualDisplay createVirtualDisplay(int width, int height, android.hardware.graphics.common.PixelFormat formatHint, int outputBufferSlotCount); + void destroyLayer(long display, long layer); + void destroyVirtualDisplay(long display); + android.hardware.graphics.composer3.CommandResultPayload[] executeCommands(in android.hardware.graphics.composer3.DisplayCommand[] commands); + int getActiveConfig(long display); + android.hardware.graphics.composer3.ColorMode[] getColorModes(long display); + float[] getDataspaceSaturationMatrix(android.hardware.graphics.common.Dataspace dataspace); + /** + * @deprecated use getDisplayConfigurations instead. Returns a display attribute value for a particular display configuration. For legacy support getDisplayAttribute should return valid values for any requested DisplayAttribute, and for all of the configs obtained either through getDisplayConfigs or getDisplayConfigurations. + */ + int getDisplayAttribute(long display, int config, android.hardware.graphics.composer3.DisplayAttribute attribute); + android.hardware.graphics.composer3.DisplayCapability[] getDisplayCapabilities(long display); + /** + * @deprecated use getDisplayConfigurations instead. For legacy support getDisplayConfigs should return at least one valid config. All the configs returned from the getDisplayConfigs should also be returned from getDisplayConfigurations. + */ + int[] getDisplayConfigs(long display); + android.hardware.graphics.composer3.DisplayConnectionType getDisplayConnectionType(long display); + android.hardware.graphics.composer3.DisplayIdentification getDisplayIdentificationData(long display); + String getDisplayName(long display); + int getDisplayVsyncPeriod(long display); + android.hardware.graphics.composer3.DisplayContentSample getDisplayedContentSample(long display, long maxFrames, long timestamp); + android.hardware.graphics.composer3.DisplayContentSamplingAttributes getDisplayedContentSamplingAttributes(long display); + android.hardware.graphics.common.Transform getDisplayPhysicalOrientation(long display); + android.hardware.graphics.composer3.HdrCapabilities getHdrCapabilities(long display); + int getMaxVirtualDisplayCount(); + android.hardware.graphics.composer3.PerFrameMetadataKey[] getPerFrameMetadataKeys(long display); + android.hardware.graphics.composer3.ReadbackBufferAttributes getReadbackBufferAttributes(long display); + @nullable ParcelFileDescriptor getReadbackBufferFence(long display); + android.hardware.graphics.composer3.RenderIntent[] getRenderIntents(long display, android.hardware.graphics.composer3.ColorMode mode); + android.hardware.graphics.composer3.ContentType[] getSupportedContentTypes(long display); + @nullable android.hardware.graphics.common.DisplayDecorationSupport getDisplayDecorationSupport(long display); + void registerCallback(in android.hardware.graphics.composer3.IComposerCallback callback); + void setActiveConfig(long display, int config); + android.hardware.graphics.composer3.VsyncPeriodChangeTimeline setActiveConfigWithConstraints(long display, int config, in android.hardware.graphics.composer3.VsyncPeriodChangeConstraints vsyncPeriodChangeConstraints); + void setBootDisplayConfig(long display, int config); + void clearBootDisplayConfig(long display); + int getPreferredBootDisplayConfig(long display); + void setAutoLowLatencyMode(long display, boolean on); + void setClientTargetSlotCount(long display, int clientTargetSlotCount); + void setColorMode(long display, android.hardware.graphics.composer3.ColorMode mode, android.hardware.graphics.composer3.RenderIntent intent); + void setContentType(long display, android.hardware.graphics.composer3.ContentType type); + void setDisplayedContentSamplingEnabled(long display, boolean enable, android.hardware.graphics.composer3.FormatColorComponent componentMask, long maxFrames); + void setPowerMode(long display, android.hardware.graphics.composer3.PowerMode mode); + void setReadbackBuffer(long display, in android.hardware.common.NativeHandle buffer, in @nullable ParcelFileDescriptor releaseFence); + void setVsyncEnabled(long display, boolean enabled); + void setIdleTimerEnabled(long display, int timeoutMs); + android.hardware.graphics.composer3.OverlayProperties getOverlaySupport(); + android.hardware.graphics.common.HdrConversionCapability[] getHdrConversionCapabilities(); + android.hardware.graphics.common.Hdr setHdrConversionStrategy(in android.hardware.graphics.common.HdrConversionStrategy conversionStrategy); + void setRefreshRateChangedCallbackDebugEnabled(long display, boolean enabled); + android.hardware.graphics.composer3.DisplayConfiguration[] getDisplayConfigurations(long display, int maxFrameIntervalNs); + oneway void notifyExpectedPresent(long display, in android.hardware.graphics.composer3.ClockMonotonicTimestamp expectedPresentTime, int frameIntervalNs); + const int EX_BAD_CONFIG = 1; + const int EX_BAD_DISPLAY = 2; + const int EX_BAD_LAYER = 3; + const int EX_BAD_PARAMETER = 4; + const int EX_RESERVED = 5; + const int EX_NO_RESOURCES = 6; + const int EX_NOT_VALIDATED = 7; + const int EX_UNSUPPORTED = 8; + const int EX_SEAMLESS_NOT_ALLOWED = 9; + const int EX_SEAMLESS_NOT_POSSIBLE = 10; + const int INVALID_CONFIGURATION = 0x7fffffff; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerBrightness.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerBrightness.aidl new file mode 100644 index 0000000000..a726cc12bf --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerBrightness.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable LayerBrightness { + float brightness; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerCommand.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerCommand.aidl new file mode 100644 index 0000000000..87c8c18443 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerCommand.aidl @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable LayerCommand { + long layer; + @nullable android.hardware.graphics.common.Point cursorPosition; + @nullable android.hardware.graphics.composer3.Buffer buffer; + @nullable android.hardware.graphics.common.Rect[] damage; + @nullable android.hardware.graphics.composer3.ParcelableBlendMode blendMode; + @nullable android.hardware.graphics.composer3.Color color; + @nullable android.hardware.graphics.composer3.ParcelableComposition composition; + @nullable android.hardware.graphics.composer3.ParcelableDataspace dataspace; + @nullable android.hardware.graphics.common.Rect displayFrame; + @nullable android.hardware.graphics.composer3.PlaneAlpha planeAlpha; + @nullable android.hardware.common.NativeHandle sidebandStream; + @nullable android.hardware.graphics.common.FRect sourceCrop; + @nullable android.hardware.graphics.composer3.ParcelableTransform transform; + @nullable android.hardware.graphics.common.Rect[] visibleRegion; + @nullable android.hardware.graphics.composer3.ZOrder z; + @nullable float[] colorTransform; + @nullable android.hardware.graphics.composer3.LayerBrightness brightness; + @nullable android.hardware.graphics.composer3.PerFrameMetadata[] perFrameMetadata; + @nullable android.hardware.graphics.composer3.PerFrameMetadataBlob[] perFrameMetadataBlob; + @nullable android.hardware.graphics.common.Rect[] blockingRegion; + @nullable int[] bufferSlotsToClear; + android.hardware.graphics.composer3.LayerLifecycleBatchCommandType layerLifecycleBatchCommandType; + int newBufferSlotCount; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl new file mode 100644 index 0000000000..ac78cd51f9 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum LayerLifecycleBatchCommandType { + MODIFY = 0, + CREATE = 1, + DESTROY = 2, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/OverlayProperties.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/OverlayProperties.aidl new file mode 100644 index 0000000000..7d31ea3b1e --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/OverlayProperties.aidl @@ -0,0 +1,45 @@ +/** + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable OverlayProperties { + android.hardware.graphics.composer3.OverlayProperties.SupportedBufferCombinations[] combinations; + boolean supportMixedColorSpaces; + parcelable SupportedBufferCombinations { + android.hardware.graphics.common.PixelFormat[] pixelFormats; + android.hardware.graphics.common.Dataspace[] standards; + android.hardware.graphics.common.Dataspace[] transfers; + android.hardware.graphics.common.Dataspace[] ranges; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableBlendMode.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableBlendMode.aidl new file mode 100644 index 0000000000..f1fee5f376 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableBlendMode.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ParcelableBlendMode { + android.hardware.graphics.common.BlendMode blendMode; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableComposition.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableComposition.aidl new file mode 100644 index 0000000000..98fbb665e2 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableComposition.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ParcelableComposition { + android.hardware.graphics.composer3.Composition composition; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableDataspace.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableDataspace.aidl new file mode 100644 index 0000000000..76ecf85b9f --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableDataspace.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ParcelableDataspace { + android.hardware.graphics.common.Dataspace dataspace; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableTransform.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableTransform.aidl new file mode 100644 index 0000000000..b673656438 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableTransform.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ParcelableTransform { + android.hardware.graphics.common.Transform transform; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadata.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadata.aidl new file mode 100644 index 0000000000..cd1f351381 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadata.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PerFrameMetadata { + android.hardware.graphics.composer3.PerFrameMetadataKey key; + float value; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataBlob.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataBlob.aidl new file mode 100644 index 0000000000..c1e74d9e3d --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataBlob.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PerFrameMetadataBlob { + android.hardware.graphics.composer3.PerFrameMetadataKey key; + byte[] blob; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataKey.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataKey.aidl new file mode 100644 index 0000000000..10a7deef0a --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataKey.aidl @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum PerFrameMetadataKey { + DISPLAY_RED_PRIMARY_X, + DISPLAY_RED_PRIMARY_Y, + DISPLAY_GREEN_PRIMARY_X, + DISPLAY_GREEN_PRIMARY_Y, + DISPLAY_BLUE_PRIMARY_X, + DISPLAY_BLUE_PRIMARY_Y, + WHITE_POINT_X, + WHITE_POINT_Y, + MAX_LUMINANCE, + MIN_LUMINANCE, + MAX_CONTENT_LIGHT_LEVEL, + MAX_FRAME_AVERAGE_LIGHT_LEVEL, + HDR10_PLUS_SEI, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PlaneAlpha.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PlaneAlpha.aidl new file mode 100644 index 0000000000..c48c2a8a34 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PlaneAlpha.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PlaneAlpha { + float alpha; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PowerMode.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PowerMode.aidl new file mode 100644 index 0000000000..f587d4dfa8 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PowerMode.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum PowerMode { + OFF = 0, + DOZE = 1, + DOZE_SUSPEND = 3, + ON = 2, + ON_SUSPEND = 4, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentFence.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentFence.aidl new file mode 100644 index 0000000000..3bb09cdb34 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentFence.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PresentFence { + long display; + ParcelFileDescriptor fence; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentOrValidate.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentOrValidate.aidl new file mode 100644 index 0000000000..dbfac2259d --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentOrValidate.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PresentOrValidate { + long display; + android.hardware.graphics.composer3.PresentOrValidate.Result result; + @VintfStability + enum Result { + Validated, + Presented, + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReadbackBufferAttributes.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReadbackBufferAttributes.aidl new file mode 100644 index 0000000000..bb51bdc04a --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReadbackBufferAttributes.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ReadbackBufferAttributes { + android.hardware.graphics.common.PixelFormat format; + android.hardware.graphics.common.Dataspace dataspace; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RefreshRateChangedDebugData.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RefreshRateChangedDebugData.aidl new file mode 100644 index 0000000000..e9305e152c --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RefreshRateChangedDebugData.aidl @@ -0,0 +1,40 @@ +/** + * Copyright 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable RefreshRateChangedDebugData { + long display; + int vsyncPeriodNanos; + int refreshPeriodNanos; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReleaseFences.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReleaseFences.aidl new file mode 100644 index 0000000000..d623661250 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReleaseFences.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ReleaseFences { + long display; + android.hardware.graphics.composer3.ReleaseFences.Layer[] layers; + @VintfStability + parcelable Layer { + long layer; + ParcelFileDescriptor fence; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RenderIntent.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RenderIntent.aidl new file mode 100644 index 0000000000..5670c10655 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RenderIntent.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum RenderIntent { + COLORIMETRIC = 0, + ENHANCE = 1, + TONE_MAP_COLORIMETRIC = 2, + TONE_MAP_ENHANCE = 3, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VirtualDisplay.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VirtualDisplay.aidl new file mode 100644 index 0000000000..886be2e3d0 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VirtualDisplay.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable VirtualDisplay { + long display; + android.hardware.graphics.common.PixelFormat format; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VrrConfig.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VrrConfig.aidl new file mode 100644 index 0000000000..7377b4b3e5 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VrrConfig.aidl @@ -0,0 +1,48 @@ +/** + * Copyright 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable VrrConfig { + int minFrameIntervalNs; + @nullable android.hardware.graphics.composer3.VrrConfig.FrameIntervalPowerHint[] frameIntervalPowerHints; + @nullable android.hardware.graphics.composer3.VrrConfig.NotifyExpectedPresentConfig notifyExpectedPresentConfig; + parcelable FrameIntervalPowerHint { + int frameIntervalNs; + int averageRefreshPeriodNs; + } + parcelable NotifyExpectedPresentConfig { + int headsUpNs; + int timeoutNs; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeConstraints.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeConstraints.aidl new file mode 100644 index 0000000000..df38c11f58 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeConstraints.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable VsyncPeriodChangeConstraints { + long desiredTimeNanos; + boolean seamlessRequired; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeTimeline.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeTimeline.aidl new file mode 100644 index 0000000000..9fb3999e3e --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeTimeline.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable VsyncPeriodChangeTimeline { + long newVsyncAppliedTimeNanos; + boolean refreshRequired; + long refreshTimeNanos; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ZOrder.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ZOrder.aidl new file mode 100644 index 0000000000..ea96ea3a69 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ZOrder.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ZOrder { + int z; +} diff --git a/health/aidl/Android.bp b/health/aidl/Android.bp index 4691dd6432..97de0e2698 100644 --- a/health/aidl/Android.bp +++ b/health/aidl/Android.bp @@ -46,9 +46,13 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], - frozen: false, + frozen: true, } diff --git a/health/aidl/aidl_api/android.hardware.health/3/.hash b/health/aidl/aidl_api/android.hardware.health/3/.hash new file mode 100644 index 0000000000..40b6dbf119 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/.hash @@ -0,0 +1 @@ +3bab6273a5491102b29c9d7a1f0efa749533f46d diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryCapacityLevel.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryCapacityLevel.aidl new file mode 100644 index 0000000000..4d705887e5 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryCapacityLevel.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryCapacityLevel { + UNSUPPORTED = (-1) /* -1 */, + UNKNOWN, + CRITICAL, + LOW, + NORMAL, + HIGH, + FULL, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingPolicy.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingPolicy.aidl new file mode 100644 index 0000000000..42fbf95090 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingPolicy.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryChargingPolicy { + INVALID = 0, + DEFAULT = 1, + LONG_LIFE = 2, + ADAPTIVE = 3, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingState.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingState.aidl new file mode 100644 index 0000000000..e21eb28133 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryChargingState { + INVALID = 0, + NORMAL = 1, + TOO_COLD = 2, + TOO_HOT = 3, + LONG_LIFE = 4, + ADAPTIVE = 5, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealth.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealth.aidl new file mode 100644 index 0000000000..8d13198440 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealth.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryHealth { + UNKNOWN = 1, + GOOD = 2, + OVERHEAT = 3, + DEAD = 4, + OVER_VOLTAGE = 5, + UNSPECIFIED_FAILURE = 6, + COLD = 7, + FAIR = 8, + NOT_AVAILABLE = 11, + INCONSISTENT = 12, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealthData.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealthData.aidl new file mode 100644 index 0000000000..089c8ac3ae --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealthData.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +parcelable BatteryHealthData { + long batteryManufacturingDateSeconds; + long batteryFirstUsageSeconds; + long batteryStateOfHealth; + @nullable String batterySerialNumber; + android.hardware.health.BatteryPartStatus batteryPartStatus = android.hardware.health.BatteryPartStatus.UNSUPPORTED; +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryPartStatus.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryPartStatus.aidl new file mode 100644 index 0000000000..9303767975 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryPartStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryPartStatus { + UNSUPPORTED = 0, + ORIGINAL = 1, + REPLACED = 2, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryStatus.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryStatus.aidl new file mode 100644 index 0000000000..340b2ecc3f --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryStatus { + UNKNOWN = 1, + CHARGING = 2, + DISCHARGING = 3, + NOT_CHARGING = 4, + FULL = 5, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/DiskStats.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/DiskStats.aidl new file mode 100644 index 0000000000..5aa58900bb --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/DiskStats.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +parcelable DiskStats { + long reads; + long readMerges; + long readSectors; + long readTicks; + long writes; + long writeMerges; + long writeSectors; + long writeTicks; + long ioInFlight; + long ioTicks; + long ioInQueue; +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/HealthInfo.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/HealthInfo.aidl new file mode 100644 index 0000000000..bfa14758f3 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/HealthInfo.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +parcelable HealthInfo { + boolean chargerAcOnline; + boolean chargerUsbOnline; + boolean chargerWirelessOnline; + boolean chargerDockOnline; + int maxChargingCurrentMicroamps; + int maxChargingVoltageMicrovolts; + android.hardware.health.BatteryStatus batteryStatus; + android.hardware.health.BatteryHealth batteryHealth; + boolean batteryPresent; + int batteryLevel; + int batteryVoltageMillivolts; + int batteryTemperatureTenthsCelsius; + int batteryCurrentMicroamps; + int batteryCycleCount; + int batteryFullChargeUah; + int batteryChargeCounterUah; + String batteryTechnology; + int batteryCurrentAverageMicroamps; + android.hardware.health.DiskStats[] diskStats; + android.hardware.health.StorageInfo[] storageInfos; + android.hardware.health.BatteryCapacityLevel batteryCapacityLevel; + long batteryChargeTimeToFullNowSeconds; + int batteryFullChargeDesignCapacityUah; + android.hardware.health.BatteryChargingState chargingState; + android.hardware.health.BatteryChargingPolicy chargingPolicy; + @nullable android.hardware.health.BatteryHealthData batteryHealthData; + const int BATTERY_CHARGE_TIME_TO_FULL_NOW_SECONDS_UNSUPPORTED = (-1) /* -1 */; +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealth.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealth.aidl new file mode 100644 index 0000000000..b49dfffbe4 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealth.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +interface IHealth { + void registerCallback(in android.hardware.health.IHealthInfoCallback callback); + void unregisterCallback(in android.hardware.health.IHealthInfoCallback callback); + void update(); + int getChargeCounterUah(); + int getCurrentNowMicroamps(); + int getCurrentAverageMicroamps(); + int getCapacity(); + long getEnergyCounterNwh(); + android.hardware.health.BatteryStatus getChargeStatus(); + android.hardware.health.StorageInfo[] getStorageInfo(); + android.hardware.health.DiskStats[] getDiskStats(); + android.hardware.health.HealthInfo getHealthInfo(); + void setChargingPolicy(android.hardware.health.BatteryChargingPolicy in_value); + android.hardware.health.BatteryChargingPolicy getChargingPolicy(); + android.hardware.health.BatteryHealthData getBatteryHealthData(); + const int STATUS_UNKNOWN = 2; + const int STATUS_CALLBACK_DIED = 4; +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealthInfoCallback.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealthInfoCallback.aidl new file mode 100644 index 0000000000..1b6366fa7a --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealthInfoCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +interface IHealthInfoCallback { + oneway void healthInfoChanged(in android.hardware.health.HealthInfo info); +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/StorageInfo.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/StorageInfo.aidl new file mode 100644 index 0000000000..eaae5a6110 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/StorageInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +parcelable StorageInfo { + int eol; + int lifetimeA; + int lifetimeB; + String version; +} diff --git a/macsec/aidl/Android.bp b/macsec/aidl/Android.bp index 5e47999bce..361baf4ada 100644 --- a/macsec/aidl/Android.bp +++ b/macsec/aidl/Android.bp @@ -37,4 +37,12 @@ aidl_interface { enabled: false, }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/macsec/aidl/aidl_api/android.hardware.macsec/1/.hash b/macsec/aidl/aidl_api/android.hardware.macsec/1/.hash new file mode 100644 index 0000000000..60e8fa8707 --- /dev/null +++ b/macsec/aidl/aidl_api/android.hardware.macsec/1/.hash @@ -0,0 +1 @@ +9caeb6282adc082009c1f24f04d011723deed6d5 diff --git a/macsec/aidl/aidl_api/android.hardware.macsec/1/android/hardware/macsec/IMacsecPskPlugin.aidl b/macsec/aidl/aidl_api/android.hardware.macsec/1/android/hardware/macsec/IMacsecPskPlugin.aidl new file mode 100644 index 0000000000..02fd6e9888 --- /dev/null +++ b/macsec/aidl/aidl_api/android.hardware.macsec/1/android/hardware/macsec/IMacsecPskPlugin.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.macsec; +@VintfStability +interface IMacsecPskPlugin { + void addTestKey(in byte[] keyId, in byte[] CAK, in byte[] CKN); + byte[] calcIcv(in byte[] keyId, in byte[] data); + byte[] generateSak(in byte[] keyId, in byte[] data, in int sakLength); + byte[] wrapSak(in byte[] keyId, in byte[] sak); + byte[] unwrapSak(in byte[] keyId, in byte[] sak); +} diff --git a/media/bufferpool/aidl/Android.bp b/media/bufferpool/aidl/Android.bp index 010c7cdab0..829971d50b 100644 --- a/media/bufferpool/aidl/Android.bp +++ b/media/bufferpool/aidl/Android.bp @@ -65,7 +65,15 @@ aidl_interface { "android.hardware.common.fmq-V1", ], }, + { + version: "2", + imports: [ + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + ], + }, + ], - frozen: false, + frozen: true, } diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/.hash b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/.hash new file mode 100644 index 0000000000..44623f8b8b --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/.hash @@ -0,0 +1 @@ +c12818c51418fbfc76f1b81eba6678d75cf526c1 diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/Buffer.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/Buffer.aidl new file mode 100644 index 0000000000..85a78ad6ee --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/Buffer.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +parcelable Buffer { + int id; + @nullable android.hardware.common.NativeHandle buffer; + @nullable android.hardware.HardwareBuffer hwbBuffer; +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferInvalidationMessage.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferInvalidationMessage.aidl new file mode 100644 index 0000000000..181286c197 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferInvalidationMessage.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@FixedSize @VintfStability +parcelable BufferInvalidationMessage { + int messageId; + int fromBufferId; + int toBufferId; +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatus.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatus.aidl new file mode 100644 index 0000000000..13174ffe09 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatus.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@Backing(type="int") @VintfStability +enum BufferStatus { + NOT_USED = 0, + USED = 1, + TRANSFER_TO = 2, + TRANSFER_FROM = 3, + TRANSFER_TIMEOUT = 4, + TRANSFER_LOST = 5, + TRANSFER_FETCH = 6, + TRANSFER_OK = 7, + TRANSFER_ERROR = 8, + INVALIDATION_ACK = 9, +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatusMessage.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatusMessage.aidl new file mode 100644 index 0000000000..7e79a368d1 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatusMessage.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@FixedSize @VintfStability +parcelable BufferStatusMessage { + long transactionId; + int bufferId; + android.hardware.media.bufferpool2.BufferStatus status; + long connectionId; + long targetConnectionId; + long timestampUs; +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IAccessor.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IAccessor.aidl new file mode 100644 index 0000000000..4053797dcf --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IAccessor.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +interface IAccessor { + android.hardware.media.bufferpool2.IAccessor.ConnectionInfo connect(in android.hardware.media.bufferpool2.IObserver observer); + @VintfStability + parcelable ConnectionInfo { + android.hardware.media.bufferpool2.IConnection connection; + long connectionId; + int msgId; + android.hardware.common.fmq.MQDescriptor toFmqDesc; + android.hardware.common.fmq.MQDescriptor fromFmqDesc; + } +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.aidl new file mode 100644 index 0000000000..298cb13ec3 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +interface IClientManager { + android.hardware.media.bufferpool2.IClientManager.Registration registerSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); + android.hardware.media.bufferpool2.IClientManager.Registration registerPassiveSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); + @VintfStability + parcelable Registration { + long connectionId; + boolean isNew = true; + } +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IConnection.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IConnection.aidl new file mode 100644 index 0000000000..844e920df0 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IConnection.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +interface IConnection { + android.hardware.media.bufferpool2.IConnection.FetchResult[] fetch(in android.hardware.media.bufferpool2.IConnection.FetchInfo[] fetchInfos); + void sync(); + parcelable FetchInfo { + long transactionId; + int bufferId; + } + union FetchResult { + android.hardware.media.bufferpool2.Buffer buffer; + int failure; + } +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IObserver.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IObserver.aidl new file mode 100644 index 0000000000..2d8cffe70c --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IObserver.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +interface IObserver { + oneway void onMessage(in long connectionId, in int msgId); +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/ResultStatus.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/ResultStatus.aidl new file mode 100644 index 0000000000..4bc3889e3f --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/ResultStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +parcelable ResultStatus { + const int OK = 0; + const int NO_MEMORY = 1; + const int ALREADY_EXISTS = 2; + const int NOT_FOUND = 3; + const int CRITICAL_ERROR = 4; +} diff --git a/media/c2/aidl/Android.bp b/media/c2/aidl/Android.bp index 2eaeb010e2..c5ecacd516 100644 --- a/media/c2/aidl/Android.bp +++ b/media/c2/aidl/Android.bp @@ -49,4 +49,15 @@ aidl_interface { enabled: false, }, }, + versions_with_info: [ + { + version: "1", + imports: [ + "android.hardware.common-V2", + "android.hardware.media.bufferpool2-V2", + ], + }, + ], + frozen: true, + } diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/.hash b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/.hash new file mode 100644 index 0000000000..fc8aa82ddf --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/.hash @@ -0,0 +1 @@ +d4c3897135ef9475dee2021ac39a41ae79c7690e diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/BaseBlock.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/BaseBlock.aidl new file mode 100644 index 0000000000..069b2cf244 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/BaseBlock.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +union BaseBlock { + android.hardware.common.NativeHandle nativeBlock; + android.hardware.HardwareBuffer hwbBlock; + android.hardware.media.bufferpool2.BufferStatusMessage pooledBlock; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Block.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Block.aidl new file mode 100644 index 0000000000..7b3005e22d --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Block.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Block { + int index; + android.hardware.media.c2.Params meta; + android.hardware.common.NativeHandle fence; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Buffer.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Buffer.aidl new file mode 100644 index 0000000000..b632932cec --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Buffer.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Buffer { + android.hardware.media.c2.Params info; + android.hardware.media.c2.Block[] blocks; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldDescriptor.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldDescriptor.aidl new file mode 100644 index 0000000000..909476c39e --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldDescriptor.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FieldDescriptor { + android.hardware.media.c2.FieldId fieldId; + android.hardware.media.c2.FieldDescriptor.Type type; + int structIndex; + int extent; + String name; + android.hardware.media.c2.FieldDescriptor.NamedValue[] namedValues; + @Backing(type="int") @VintfStability + enum Type { + NO_INIT = 0, + INT32, + UINT32, + CNTR32, + INT64, + UINT64, + CNTR64, + FLOAT, + STRING = 0x100, + BLOB, + STRUCT = 0x20000, + } + @VintfStability + parcelable NamedValue { + String name; + long value; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldId.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldId.aidl new file mode 100644 index 0000000000..935b85dbbf --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FieldId { + int offset; + int sizeBytes; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValues.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValues.aidl new file mode 100644 index 0000000000..69060bea1d --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValues.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +union FieldSupportedValues { + boolean empty; + android.hardware.media.c2.ValueRange range; + long[] values; + long[] flags; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQuery.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQuery.aidl new file mode 100644 index 0000000000..6a5fbe26de --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQuery.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FieldSupportedValuesQuery { + android.hardware.media.c2.ParamField field; + android.hardware.media.c2.FieldSupportedValuesQuery.Type type; + @Backing(type="int") @VintfStability + enum Type { + POSSIBLE = 0, + CURRENT, + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQueryResult.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQueryResult.aidl new file mode 100644 index 0000000000..187e3ebfeb --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQueryResult.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FieldSupportedValuesQueryResult { + android.hardware.media.c2.Status status; + android.hardware.media.c2.FieldSupportedValues values; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FrameData.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FrameData.aidl new file mode 100644 index 0000000000..07bfb7201a --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FrameData.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FrameData { + int flags; + android.hardware.media.c2.WorkOrdinal ordinal; + android.hardware.media.c2.Buffer[] buffers; + android.hardware.media.c2.Params configUpdate; + android.hardware.media.c2.InfoBuffer[] infoBuffers; + const int DROP_FRAME = (1 << 0) /* 1 */; + const int END_OF_STREAM = (1 << 1) /* 2 */; + const int DISCARD_FRAME = (1 << 2) /* 4 */; + const int FLAG_INCOMPLETE = (1 << 3) /* 8 */; + const int CODEC_CONFIG = (1 << 31) /* -2147483648 */; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponent.aidl new file mode 100644 index 0000000000..0a7e3c4b53 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponent.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IComponent { + android.hardware.common.NativeHandle configureVideoTunnel(in int avSyncHwId); + android.hardware.media.c2.IComponent.BlockPool createBlockPool(in android.hardware.media.c2.IComponent.BlockPoolAllocator allocator); + void destroyBlockPool(in long blockPoolId); + void drain(in boolean withEos); + android.hardware.media.c2.WorkBundle flush(); + android.hardware.media.c2.IComponentInterface getInterface(); + void queue(in android.hardware.media.c2.WorkBundle workBundle); + void release(); + void reset(); + void start(); + void stop(); + android.hardware.media.c2.IInputSurfaceConnection connectToInputSurface(in android.hardware.media.c2.IInputSurface inputSurface); + android.hardware.media.c2.IInputSink asInputSink(); + parcelable BlockPool { + long blockPoolId; + android.hardware.media.c2.IConfigurable configurable; + } + parcelable GbAllocator { + ParcelFileDescriptor waitableFd; + android.hardware.media.c2.IGraphicBufferAllocator igba; + } + parcelable PooledGbAllocator { + ParcelFileDescriptor waitableFd; + long receiverId; + android.hardware.media.c2.IPooledGraphicBufferAllocator ipgba; + } + parcelable BlockPoolAllocator { + int allocatorId; + @nullable android.hardware.media.c2.IComponent.GbAllocator gbAllocator; + @nullable android.hardware.media.c2.IComponent.PooledGbAllocator pooledGbAllocator; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentInterface.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentInterface.aidl new file mode 100644 index 0000000000..2350daeec2 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentInterface.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IComponentInterface { + android.hardware.media.c2.IConfigurable getConfigurable(); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentListener.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentListener.aidl new file mode 100644 index 0000000000..f6f2a6391c --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentListener.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IComponentListener { + oneway void onError(in android.hardware.media.c2.Status status, in int errorCode); + oneway void onFramesRendered(in android.hardware.media.c2.IComponentListener.RenderedFrame[] renderedFrames); + oneway void onInputBuffersReleased(in android.hardware.media.c2.IComponentListener.InputBuffer[] inputBuffers); + oneway void onTripped(in android.hardware.media.c2.SettingResult[] settingResults); + oneway void onWorkDone(in android.hardware.media.c2.WorkBundle workBundle); + @VintfStability + parcelable InputBuffer { + long frameIndex; + int arrayIndex; + } + @VintfStability + parcelable RenderedFrame { + long bufferQueueId; + int slotId; + long timestampNs; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentStore.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentStore.aidl new file mode 100644 index 0000000000..d7a4706d19 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentStore.aidl @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IComponentStore { + void copyBuffer(in android.hardware.media.c2.Buffer src, in android.hardware.media.c2.Buffer dst); + android.hardware.media.c2.IComponent createComponent(in String name, in android.hardware.media.c2.IComponentListener listener, in android.hardware.media.bufferpool2.IClientManager pool); + android.hardware.media.c2.IComponentInterface createInterface(in String name); + android.hardware.media.c2.IConfigurable getConfigurable(); + android.hardware.media.bufferpool2.IClientManager getPoolClientManager(); + android.hardware.media.c2.StructDescriptor[] getStructDescriptors(in int[] indices); + android.hardware.media.c2.IComponentStore.ComponentTraits[] listComponents(); + android.hardware.media.c2.IInputSurface createInputSurface(); + @VintfStability + parcelable ComponentTraits { + String name; + android.hardware.media.c2.IComponentStore.ComponentTraits.Domain domain; + android.hardware.media.c2.IComponentStore.ComponentTraits.Kind kind; + int rank; + String mediaType; + String[] aliases; + @Backing(type="int") @VintfStability + enum Kind { + OTHER = 0, + DECODER, + ENCODER, + } + @Backing(type="int") @VintfStability + enum Domain { + OTHER = 0, + VIDEO, + AUDIO, + IMAGE, + } + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IConfigurable.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IConfigurable.aidl new file mode 100644 index 0000000000..04e776ee3c --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IConfigurable.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IConfigurable { + android.hardware.media.c2.IConfigurable.ConfigResult config(in android.hardware.media.c2.Params inParams, in boolean mayBlock); + int getId(); + String getName(); + android.hardware.media.c2.IConfigurable.QueryResult query(in int[] indices, in boolean mayBlock); + android.hardware.media.c2.ParamDescriptor[] querySupportedParams(in int start, in int count); + android.hardware.media.c2.IConfigurable.QuerySupportedValuesResult querySupportedValues(in android.hardware.media.c2.FieldSupportedValuesQuery[] inFields, in boolean mayBlock); + @VintfStability + parcelable ConfigResult { + android.hardware.media.c2.Params params; + android.hardware.media.c2.SettingResult[] failures; + android.hardware.media.c2.Status status; + } + @VintfStability + parcelable QueryResult { + android.hardware.media.c2.Params params; + android.hardware.media.c2.Status status; + } + @VintfStability + parcelable QuerySupportedValuesResult { + android.hardware.media.c2.FieldSupportedValuesQueryResult[] values; + android.hardware.media.c2.Status status; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IGraphicBufferAllocator.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IGraphicBufferAllocator.aidl new file mode 100644 index 0000000000..e13ba1f2aa --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IGraphicBufferAllocator.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IGraphicBufferAllocator { + android.hardware.media.c2.IGraphicBufferAllocator.Allocation allocate(in android.hardware.media.c2.IGraphicBufferAllocator.Description desc); + boolean deallocate(in long id); + ParcelFileDescriptor getWaitableFd(); + parcelable Allocation { + android.hardware.HardwareBuffer buffer; + @nullable ParcelFileDescriptor fence; + } + parcelable Description { + int width; + int height; + int format; + long usage; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSink.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSink.aidl new file mode 100644 index 0000000000..e6ea4d54e8 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSink.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSink { + void queue(in android.hardware.media.c2.WorkBundle workBundle); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurface.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurface.aidl new file mode 100644 index 0000000000..14455cb71f --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurface.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSurface { + android.view.Surface getSurface(); + android.hardware.media.c2.IConfigurable getConfigurable(); + android.hardware.media.c2.IInputSurfaceConnection connect(in android.hardware.media.c2.IInputSink sink); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurfaceConnection.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurfaceConnection.aidl new file mode 100644 index 0000000000..28fff65e14 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurfaceConnection.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSurfaceConnection { + void disconnect(); + void signalEndOfStream(); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl new file mode 100644 index 0000000000..1a8c66d1db --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IPooledGraphicBufferAllocator { + android.hardware.media.c2.IPooledGraphicBufferAllocator.Allocation allocate(in android.hardware.media.c2.IPooledGraphicBufferAllocator.Description desc); + boolean deallocate(in int id); + parcelable Allocation { + int bufferId; + @nullable ParcelFileDescriptor fence; + } + parcelable Description { + int widthPixels; + int heightPixels; + int format; + long usage; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/InfoBuffer.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/InfoBuffer.aidl new file mode 100644 index 0000000000..94cd77d925 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/InfoBuffer.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable InfoBuffer { + int index; + android.hardware.media.c2.Buffer buffer; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamDescriptor.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamDescriptor.aidl new file mode 100644 index 0000000000..6f0ac50bed --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamDescriptor.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable ParamDescriptor { + int index; + int attrib; + String name; + int[] dependencies; + const int ATTRIBUTE_REQUIRED = (1 << 0) /* 1 */; + const int ATTRIBUTE_PERSISTENT = (1 << 1) /* 2 */; + const int ATTRIBUTE_STRICT = (1 << 2) /* 4 */; + const int ATTRIBUTE_READ_ONLY = (1 << 3) /* 8 */; + const int ATTRIBUTE_HIDDEN = (1 << 4) /* 16 */; + const int ATTRIBUTE_INTERNAL = (1 << 5) /* 32 */; + const int ATTRIBUTE_CONST = (1 << 6) /* 64 */; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamField.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamField.aidl new file mode 100644 index 0000000000..13d252257e --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamField.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable ParamField { + int index; + android.hardware.media.c2.FieldId fieldId; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamFieldValues.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamFieldValues.aidl new file mode 100644 index 0000000000..5a2821cdb2 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamFieldValues.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable ParamFieldValues { + android.hardware.media.c2.ParamField paramOrField; + android.hardware.media.c2.FieldSupportedValues[] values; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Params.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Params.aidl new file mode 100644 index 0000000000..7d363c06b3 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Params.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Params { + byte[] params; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/SettingResult.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/SettingResult.aidl new file mode 100644 index 0000000000..07fc1f35aa --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/SettingResult.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable SettingResult { + android.hardware.media.c2.SettingResult.Failure failure; + android.hardware.media.c2.ParamFieldValues field; + android.hardware.media.c2.ParamFieldValues[] conflicts; + @Backing(type="int") @VintfStability + enum Failure { + BAD_TYPE, + BAD_PORT, + BAD_INDEX, + READ_ONLY, + MISMATCH, + BAD_VALUE, + CONFLICT, + UNSUPPORTED, + INFO_BAD_VALUE, + INFO_CONFLICT, + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Status.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Status.aidl new file mode 100644 index 0000000000..8b430d29f2 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Status.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Status { + int status; + const int OK = 0; + const int BAD_VALUE = (-22) /* -22 */; + const int BAD_INDEX = (-75) /* -75 */; + const int CANNOT_DO = (-2147483646) /* -2147483646 */; + const int DUPLICATE = (-17) /* -17 */; + const int NOT_FOUND = (-2) /* -2 */; + const int BAD_STATE = (-38) /* -38 */; + const int BLOCKING = (-9930) /* -9930 */; + const int NO_MEMORY = (-12) /* -12 */; + const int REFUSED = (-1) /* -1 */; + const int TIMED_OUT = (-110) /* -110 */; + const int OMITTED = (-74) /* -74 */; + const int CORRUPTED = (-2147483648) /* -2147483648 */; + const int NO_INIT = (-19) /* -19 */; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/StructDescriptor.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/StructDescriptor.aidl new file mode 100644 index 0000000000..58268e0b92 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/StructDescriptor.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable StructDescriptor { + int type; + android.hardware.media.c2.FieldDescriptor[] fields; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ValueRange.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ValueRange.aidl new file mode 100644 index 0000000000..db71ce044e --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ValueRange.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable ValueRange { + long min; + long max; + long step; + long num; + long denom; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Work.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Work.aidl new file mode 100644 index 0000000000..a5343488f5 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Work.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Work { + byte[] chainInfo; + android.hardware.media.c2.FrameData input; + android.hardware.media.c2.Worklet[] worklets; + int workletsProcessed; + android.hardware.media.c2.Status result; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkBundle.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkBundle.aidl new file mode 100644 index 0000000000..84708a8556 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkBundle.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable WorkBundle { + android.hardware.media.c2.Work[] works; + android.hardware.media.c2.BaseBlock[] baseBlocks; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkOrdinal.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkOrdinal.aidl new file mode 100644 index 0000000000..2833df3a79 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkOrdinal.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable WorkOrdinal { + long timestampUs; + long frameIndex; + long customOrdinal; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Worklet.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Worklet.aidl new file mode 100644 index 0000000000..a79abf202b --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Worklet.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Worklet { + int componentId; + byte[] tunings; + android.hardware.media.c2.SettingResult[] failures; + android.hardware.media.c2.FrameData output; +} diff --git a/power/aidl/Android.bp b/power/aidl/Android.bp index 8900fb8848..dc5761312b 100644 --- a/power/aidl/Android.bp +++ b/power/aidl/Android.bp @@ -62,9 +62,16 @@ aidl_interface { version: "4", imports: [], }, + { + version: "5", + imports: [ + "android.hardware.common.fmq-V1", + "android.hardware.common-V2", + ], + }, ], - frozen: false, + frozen: true, } diff --git a/power/aidl/aidl_api/android.hardware.power/5/.hash b/power/aidl/aidl_api/android.hardware.power/5/.hash new file mode 100644 index 0000000000..da156b24eb --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/.hash @@ -0,0 +1 @@ +d111735ed2b89b6c32443aac9b162b1afbbea3f2 diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Boost.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Boost.aidl new file mode 100644 index 0000000000..8ee15eff7f --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Boost.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum Boost { + INTERACTION, + DISPLAY_UPDATE_IMMINENT, + ML_ACC, + AUDIO_LAUNCH, + CAMERA_LAUNCH, + CAMERA_SHOT, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelConfig.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelConfig.aidl new file mode 100644 index 0000000000..d3caca413b --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelConfig.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable ChannelConfig { + android.hardware.common.fmq.MQDescriptor channelDescriptor; + @nullable android.hardware.common.fmq.MQDescriptor eventFlagDescriptor; + int readFlagBitmask; + int writeFlagBitmask; +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelMessage.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelMessage.aidl new file mode 100644 index 0000000000..ab38fcc21f --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelMessage.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@FixedSize @VintfStability +parcelable ChannelMessage { + int sessionID; + long timeStampNanos; + android.hardware.power.ChannelMessage.ChannelMessageContents data; + @FixedSize @VintfStability + union ChannelMessageContents { + long[16] reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + long targetDuration; + android.hardware.power.SessionHint hint; + android.hardware.power.ChannelMessage.ChannelMessageContents.SessionModeSetter mode; + android.hardware.power.WorkDurationFixedV1 workDuration; + @FixedSize @VintfStability + parcelable SessionModeSetter { + android.hardware.power.SessionMode modeInt; + boolean enabled; + } + } +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPower.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPower.aidl new file mode 100644 index 0000000000..8acdaf2014 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPower.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +interface IPower { + oneway void setMode(in android.hardware.power.Mode type, in boolean enabled); + boolean isModeSupported(in android.hardware.power.Mode type); + oneway void setBoost(in android.hardware.power.Boost type, in int durationMs); + boolean isBoostSupported(in android.hardware.power.Boost type); + android.hardware.power.IPowerHintSession createHintSession(in int tgid, in int uid, in int[] threadIds, in long durationNanos); + long getHintSessionPreferredRate(); + android.hardware.power.IPowerHintSession createHintSessionWithConfig(in int tgid, in int uid, in int[] threadIds, in long durationNanos, in android.hardware.power.SessionTag tag, out android.hardware.power.SessionConfig config); + android.hardware.power.ChannelConfig getSessionChannel(in int tgid, in int uid); + oneway void closeSessionChannel(in int tgid, in int uid); +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPowerHintSession.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPowerHintSession.aidl new file mode 100644 index 0000000000..010f815476 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPowerHintSession.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +interface IPowerHintSession { + oneway void updateTargetWorkDuration(long targetDurationNanos); + oneway void reportActualWorkDuration(in android.hardware.power.WorkDuration[] durations); + oneway void pause(); + oneway void resume(); + oneway void close(); + oneway void sendHint(android.hardware.power.SessionHint hint); + void setThreads(in int[] threadIds); + oneway void setMode(android.hardware.power.SessionMode type, boolean enabled); + android.hardware.power.SessionConfig getSessionConfig(); +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Mode.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Mode.aidl new file mode 100644 index 0000000000..46eca69309 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Mode.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum Mode { + DOUBLE_TAP_TO_WAKE, + LOW_POWER, + SUSTAINED_PERFORMANCE, + FIXED_PERFORMANCE, + VR, + LAUNCH, + EXPENSIVE_RENDERING, + INTERACTIVE, + DEVICE_IDLE, + DISPLAY_INACTIVE, + AUDIO_STREAMING_LOW_LATENCY, + CAMERA_STREAMING_SECURE, + CAMERA_STREAMING_LOW, + CAMERA_STREAMING_MID, + CAMERA_STREAMING_HIGH, + GAME, + GAME_LOADING, + DISPLAY_CHANGE, + AUTOMOTIVE_PROJECTION, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionConfig.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionConfig.aidl new file mode 100644 index 0000000000..b03cfb2db1 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionConfig.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable SessionConfig { + long id; +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionHint.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionHint.aidl new file mode 100644 index 0000000000..df316189a4 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionHint.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum SessionHint { + CPU_LOAD_UP = 0, + CPU_LOAD_DOWN = 1, + CPU_LOAD_RESET = 2, + CPU_LOAD_RESUME = 3, + POWER_EFFICIENCY = 4, + GPU_LOAD_UP = 5, + GPU_LOAD_DOWN = 6, + GPU_LOAD_RESET = 7, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionMode.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionMode.aidl new file mode 100644 index 0000000000..d0ae0bab70 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionMode.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum SessionMode { + POWER_EFFICIENCY, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionTag.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionTag.aidl new file mode 100644 index 0000000000..862fbc5a07 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionTag.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum SessionTag { + OTHER, + SURFACEFLINGER, + HWUI, + GAME, + APP, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDuration.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDuration.aidl new file mode 100644 index 0000000000..45013ddf77 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDuration.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable WorkDuration { + long timeStampNanos; + long durationNanos; + long workPeriodStartTimestampNanos; + long cpuDurationNanos; + long gpuDurationNanos; +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDurationFixedV1.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDurationFixedV1.aidl new file mode 100644 index 0000000000..45310b8927 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDurationFixedV1.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@FixedSize @VintfStability +parcelable WorkDurationFixedV1 { + long durationNanos; + long workPeriodStartTimestampNanos; + long cpuDurationNanos; + long gpuDurationNanos; +} diff --git a/radio/aidl/Android.bp b/radio/aidl/Android.bp index 7d4eb13e9a..f60c484ee7 100644 --- a/radio/aidl/Android.bp +++ b/radio/aidl/Android.bp @@ -31,8 +31,13 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], + frozen: true, } @@ -60,8 +65,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } @@ -89,8 +99,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -117,8 +132,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -145,8 +165,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -173,8 +198,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -238,8 +268,16 @@ aidl_interface { "android.hardware.radio.config-V2", ], }, + { + version: "3", + imports: [ + "android.hardware.radio-V3", + "android.hardware.radio.config-V3", + ], + }, ], + frozen: true, } aidl_interface { @@ -266,8 +304,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -295,7 +338,16 @@ aidl_interface { "android.hardware.radio.data-V2", ], }, + { + version: "2", + imports: [ + "android.hardware.radio-V3", + "android.hardware.radio.data-V3", + ], + }, + ], + frozen: true, } aidl_interface { @@ -317,5 +369,11 @@ aidl_interface { version: "1", imports: ["android.hardware.radio-V2"], }, + { + version: "2", + imports: ["android.hardware.radio-V3"], + }, + ], + frozen: true, } diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.config/3/.hash new file mode 100644 index 0000000000..5075e5b973 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/.hash @@ -0,0 +1 @@ +1e3dcfffc1e90fc886cf5a22ecaa94601b115710 diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfig.aidl new file mode 100644 index 0000000000..bc1c29236f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfig.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + * This interface is used by telephony and telecom to talk to cellular radio for the purpose of + * radio configuration, and it is not associated with any specific modem or slot. + * All the functions have minimum one parameter: + * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the + * duration of a method call. If clients provide colliding serials (including passing the same + * serial to different methods), multiple responses (one for each method call) must still be served. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@VintfStability +interface IRadioConfig { + oneway void getHalDeviceCapabilities(in int serial); + oneway void getNumOfLiveModems(in int serial); + oneway void getPhoneCapability(in int serial); + oneway void getSimSlotsStatus(in int serial); + oneway void setNumOfLiveModems(in int serial, in byte numOfLiveModems); + oneway void setPreferredDataModem(in int serial, in byte modemId); + oneway void setResponseFunctions(in android.hardware.radio.config.IRadioConfigResponse radioConfigResponse, in android.hardware.radio.config.IRadioConfigIndication radioConfigIndication); + oneway void setSimSlotsMapping(in int serial, in android.hardware.radio.config.SlotPortMapping[] slotMap); + oneway void getSimultaneousCallingSupport(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigIndication.aidl new file mode 100644 index 0000000000..f786373785 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigIndication.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@VintfStability +interface IRadioConfigIndication { + oneway void simSlotsStatusChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.config.SimSlotStatus[] slotStatus); + oneway void onSimultaneousCallingSupportChanged(in int[] enabledLogicalSlots); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigResponse.aidl new file mode 100644 index 0000000000..6ff7bd0b1b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigResponse.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@VintfStability +interface IRadioConfigResponse { + oneway void getHalDeviceCapabilitiesResponse(in android.hardware.radio.RadioResponseInfo info, in boolean modemReducedFeatureSet1); + oneway void getNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info, in byte numOfLiveModems); + oneway void getPhoneCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.config.PhoneCapability phoneCapability); + oneway void getSimSlotsStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.config.SimSlotStatus[] slotStatus); + oneway void setNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setPreferredDataModemResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSimSlotsMappingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getSimultaneousCallingSupportResponse(in android.hardware.radio.RadioResponseInfo info, in int[] enabledLogicalSlots); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/MultipleEnabledProfilesMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/MultipleEnabledProfilesMode.aidl new file mode 100644 index 0000000000..41c42016c2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/MultipleEnabledProfilesMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum MultipleEnabledProfilesMode { + NONE, + MEP_A1, + MEP_A2, + MEP_B, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/PhoneCapability.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/PhoneCapability.aidl new file mode 100644 index 0000000000..2c66abda59 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/PhoneCapability.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PhoneCapability { + byte maxActiveData; + byte maxActiveInternetData; + boolean isInternetLingeringSupported; + byte[] logicalModemIds; + byte maxActiveVoice = UNKNOWN /* -1 */; + const byte UNKNOWN = (-1) /* -1 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimPortInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimPortInfo.aidl new file mode 100644 index 0000000000..ede318931a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimPortInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SimPortInfo { + String iccId; + int logicalSlotId; + boolean portActive; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimSlotStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimSlotStatus.aidl new file mode 100644 index 0000000000..e84e7d45bd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimSlotStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SimSlotStatus { + int cardState; + String atr; + String eid; + android.hardware.radio.config.SimPortInfo[] portInfo; + android.hardware.radio.config.MultipleEnabledProfilesMode supportedMepMode = android.hardware.radio.config.MultipleEnabledProfilesMode.NONE; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SlotPortMapping.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SlotPortMapping.aidl new file mode 100644 index 0000000000..5278e79f1c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SlotPortMapping.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SlotPortMapping { + int physicalSlotId; + int portId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.data/3/.hash new file mode 100644 index 0000000000..b866bd6c37 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/.hash @@ -0,0 +1 @@ +cd8913a3f9d39f1cc0a5fcf9e90257be94ec38df diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnAuthType.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnAuthType.aidl new file mode 100644 index 0000000000..eed81701b8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnAuthType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ApnAuthType { + NO_PAP_NO_CHAP, + PAP_NO_CHAP, + NO_PAP_CHAP, + PAP_CHAP, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnTypes.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnTypes.aidl new file mode 100644 index 0000000000..782dbbf0ce --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnTypes.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ApnTypes { + NONE = 0, + DEFAULT = (1 << 0) /* 1 */, + MMS = (1 << 1) /* 2 */, + SUPL = (1 << 2) /* 4 */, + DUN = (1 << 3) /* 8 */, + HIPRI = (1 << 4) /* 16 */, + FOTA = (1 << 5) /* 32 */, + IMS = (1 << 6) /* 64 */, + CBS = (1 << 7) /* 128 */, + IA = (1 << 8) /* 256 */, + EMERGENCY = (1 << 9) /* 512 */, + MCX = (1 << 10) /* 1024 */, + XCAP = (1 << 11) /* 2048 */, + VSIM = (1 << 12) /* 4096 */, + BIP = (1 << 13) /* 8192 */, + ENTERPRISE = (1 << 14) /* 16384 */, + RCS = (1 << 15) /* 32768 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataCallFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataCallFailCause.aidl new file mode 100644 index 0000000000..009b428273 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataCallFailCause.aidl @@ -0,0 +1,382 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum DataCallFailCause { + NONE = 0, + OPERATOR_BARRED = 0x08, + NAS_SIGNALLING = 0x0E, + INSUFFICIENT_RESOURCES = 0x1A, + MISSING_UNKNOWN_APN = 0x1B, + UNKNOWN_PDP_ADDRESS_TYPE = 0x1C, + USER_AUTHENTICATION = 0x1D, + ACTIVATION_REJECT_GGSN = 0x1E, + ACTIVATION_REJECT_UNSPECIFIED = 0x1F, + SERVICE_OPTION_NOT_SUPPORTED = 0x20, + SERVICE_OPTION_NOT_SUBSCRIBED = 0x21, + SERVICE_OPTION_OUT_OF_ORDER = 0x22, + NSAPI_IN_USE = 0x23, + REGULAR_DEACTIVATION = 0x24, + QOS_NOT_ACCEPTED = 0x25, + NETWORK_FAILURE = 0x26, + UMTS_REACTIVATION_REQ = 0x27, + FEATURE_NOT_SUPP = 0x28, + TFT_SEMANTIC_ERROR = 0x29, + TFT_SYTAX_ERROR = 0x2A, + UNKNOWN_PDP_CONTEXT = 0x2B, + FILTER_SEMANTIC_ERROR = 0x2C, + FILTER_SYTAX_ERROR = 0x2D, + PDP_WITHOUT_ACTIVE_TFT = 0x2E, + ONLY_IPV4_ALLOWED = 0x32, + ONLY_IPV6_ALLOWED = 0x33, + ONLY_SINGLE_BEARER_ALLOWED = 0x34, + ESM_INFO_NOT_RECEIVED = 0x35, + PDN_CONN_DOES_NOT_EXIST = 0x36, + MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37, + MAX_ACTIVE_PDP_CONTEXT_REACHED = 0x41, + UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42, + INVALID_TRANSACTION_ID = 0x51, + MESSAGE_INCORRECT_SEMANTIC = 0x5F, + INVALID_MANDATORY_INFO = 0x60, + MESSAGE_TYPE_UNSUPPORTED = 0x61, + MSG_TYPE_NONCOMPATIBLE_STATE = 0x62, + UNKNOWN_INFO_ELEMENT = 0x63, + CONDITIONAL_IE_ERROR = 0x64, + MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65, + PROTOCOL_ERRORS = 0x6F, + APN_TYPE_CONFLICT = 0x70, + INVALID_PCSCF_ADDR = 0x71, + INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72, + EMM_ACCESS_BARRED = 0x73, + EMERGENCY_IFACE_ONLY = 0x74, + IFACE_MISMATCH = 0x75, + COMPANION_IFACE_IN_USE = 0x76, + IP_ADDRESS_MISMATCH = 0x77, + IFACE_AND_POL_FAMILY_MISMATCH = 0x78, + EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79, + AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A, + OEM_DCFAILCAUSE_1 = 0x1001, + OEM_DCFAILCAUSE_2 = 0x1002, + OEM_DCFAILCAUSE_3 = 0x1003, + OEM_DCFAILCAUSE_4 = 0x1004, + OEM_DCFAILCAUSE_5 = 0x1005, + OEM_DCFAILCAUSE_6 = 0x1006, + OEM_DCFAILCAUSE_7 = 0x1007, + OEM_DCFAILCAUSE_8 = 0x1008, + OEM_DCFAILCAUSE_9 = 0x1009, + OEM_DCFAILCAUSE_10 = 0x100A, + OEM_DCFAILCAUSE_11 = 0x100B, + OEM_DCFAILCAUSE_12 = 0x100C, + OEM_DCFAILCAUSE_13 = 0x100D, + OEM_DCFAILCAUSE_14 = 0x100E, + OEM_DCFAILCAUSE_15 = 0x100F, + VOICE_REGISTRATION_FAIL = (-1) /* -1 */, + DATA_REGISTRATION_FAIL = (-2) /* -2 */, + SIGNAL_LOST = (-3) /* -3 */, + PREF_RADIO_TECH_CHANGED = (-4) /* -4 */, + RADIO_POWER_OFF = (-5) /* -5 */, + TETHERED_CALL_ACTIVE = (-6) /* -6 */, + ERROR_UNSPECIFIED = 0xffff, + LLC_SNDCP = 0x19, + ACTIVATION_REJECTED_BCM_VIOLATION = 0x30, + COLLISION_WITH_NETWORK_INITIATED_REQUEST = 0x38, + ONLY_IPV4V6_ALLOWED = 0x39, + ONLY_NON_IP_ALLOWED = 0x3A, + UNSUPPORTED_QCI_VALUE = 0x3B, + BEARER_HANDLING_NOT_SUPPORTED = 0x3C, + INVALID_DNS_ADDR = 0x7B, + INVALID_PCSCF_OR_DNS_ADDRESS = 0x7C, + CALL_PREEMPT_BY_EMERGENCY_APN = 0x7F, + UE_INITIATED_DETACH_OR_DISCONNECT = 0x80, + MIP_FA_REASON_UNSPECIFIED = 0x7D0, + MIP_FA_ADMIN_PROHIBITED = 0x7D1, + MIP_FA_INSUFFICIENT_RESOURCES = 0x7D2, + MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7D3, + MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 0x7D4, + MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 0x7D5, + MIP_FA_MALFORMED_REQUEST = 0x7D6, + MIP_FA_MALFORMED_REPLY = 0x7D7, + MIP_FA_ENCAPSULATION_UNAVAILABLE = 0x7D8, + MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 0x7D9, + MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 0x7DA, + MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 0x7DB, + MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 0x7DC, + MIP_FA_MISSING_NAI = 0x7DD, + MIP_FA_MISSING_HOME_AGENT = 0x7DE, + MIP_FA_MISSING_HOME_ADDRESS = 0x7DF, + MIP_FA_UNKNOWN_CHALLENGE = 0x7E0, + MIP_FA_MISSING_CHALLENGE = 0x7E1, + MIP_FA_STALE_CHALLENGE = 0x7E2, + MIP_HA_REASON_UNSPECIFIED = 0x7E3, + MIP_HA_ADMIN_PROHIBITED = 0x7E4, + MIP_HA_INSUFFICIENT_RESOURCES = 0x7E5, + MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7E6, + MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 0x7E7, + MIP_HA_REGISTRATION_ID_MISMATCH = 0x7E8, + MIP_HA_MALFORMED_REQUEST = 0x7E9, + MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 0x7EA, + MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 0x7EB, + MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 0x7EC, + MIP_HA_ENCAPSULATION_UNAVAILABLE = 0x7ED, + CLOSE_IN_PROGRESS = 0x7EE, + NETWORK_INITIATED_TERMINATION = 0x7EF, + MODEM_APP_PREEMPTED = 0x7F0, + PDN_IPV4_CALL_DISALLOWED = 0x7F1, + PDN_IPV4_CALL_THROTTLED = 0x7F2, + PDN_IPV6_CALL_DISALLOWED = 0x7F3, + PDN_IPV6_CALL_THROTTLED = 0x7F4, + MODEM_RESTART = 0x7F5, + PDP_PPP_NOT_SUPPORTED = 0x7F6, + UNPREFERRED_RAT = 0x7F7, + PHYSICAL_LINK_CLOSE_IN_PROGRESS = 0x7F8, + APN_PENDING_HANDOVER = 0x7F9, + PROFILE_BEARER_INCOMPATIBLE = 0x7FA, + SIM_CARD_CHANGED = 0x7FB, + LOW_POWER_MODE_OR_POWERING_DOWN = 0x7FC, + APN_DISABLED = 0x7FD, + MAX_PPP_INACTIVITY_TIMER_EXPIRED = 0x7FE, + IPV6_ADDRESS_TRANSFER_FAILED = 0x7FF, + TRAT_SWAP_FAILED = 0x800, + EHRPD_TO_HRPD_FALLBACK = 0x801, + MIP_CONFIG_FAILURE = 0x802, + PDN_INACTIVITY_TIMER_EXPIRED = 0x803, + MAX_IPV4_CONNECTIONS = 0x804, + MAX_IPV6_CONNECTIONS = 0x805, + APN_MISMATCH = 0x806, + IP_VERSION_MISMATCH = 0x807, + DUN_CALL_DISALLOWED = 0x808, + INTERNAL_EPC_NONEPC_TRANSITION = 0x809, + INTERFACE_IN_USE = 0x80A, + APN_DISALLOWED_ON_ROAMING = 0x80B, + APN_PARAMETERS_CHANGED = 0x80C, + NULL_APN_DISALLOWED = 0x80D, + THERMAL_MITIGATION = 0x80E, + DATA_SETTINGS_DISABLED = 0x80F, + DATA_ROAMING_SETTINGS_DISABLED = 0x810, + DDS_SWITCHED = 0x811, + FORBIDDEN_APN_NAME = 0x812, + DDS_SWITCH_IN_PROGRESS = 0x813, + CALL_DISALLOWED_IN_ROAMING = 0x814, + NON_IP_NOT_SUPPORTED = 0x815, + PDN_NON_IP_CALL_THROTTLED = 0x816, + PDN_NON_IP_CALL_DISALLOWED = 0x817, + CDMA_LOCK = 0x818, + CDMA_INTERCEPT = 0x819, + CDMA_REORDER = 0x81A, + CDMA_RELEASE_DUE_TO_SO_REJECTION = 0x81B, + CDMA_INCOMING_CALL = 0x81C, + CDMA_ALERT_STOP = 0x81D, + CHANNEL_ACQUISITION_FAILURE = 0x81E, + MAX_ACCESS_PROBE = 0x81F, + CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 0x820, + NO_RESPONSE_FROM_BASE_STATION = 0x821, + REJECTED_BY_BASE_STATION = 0x822, + CONCURRENT_SERVICES_INCOMPATIBLE = 0x823, + NO_CDMA_SERVICE = 0x824, + RUIM_NOT_PRESENT = 0x825, + CDMA_RETRY_ORDER = 0x826, + ACCESS_BLOCK = 0x827, + ACCESS_BLOCK_ALL = 0x828, + IS707B_MAX_ACCESS_PROBES = 0x829, + THERMAL_EMERGENCY = 0x82A, + CONCURRENT_SERVICES_NOT_ALLOWED = 0x82B, + INCOMING_CALL_REJECTED = 0x82C, + NO_SERVICE_ON_GATEWAY = 0x82D, + NO_GPRS_CONTEXT = 0x82E, + ILLEGAL_MS = 0x82F, + ILLEGAL_ME = 0x830, + GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 0x831, + GPRS_SERVICES_NOT_ALLOWED = 0x832, + MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 0x833, + IMPLICITLY_DETACHED = 0x834, + PLMN_NOT_ALLOWED = 0x835, + LOCATION_AREA_NOT_ALLOWED = 0x836, + GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 0x837, + PDP_DUPLICATE = 0x838, + UE_RAT_CHANGE = 0x839, + CONGESTION = 0x83A, + NO_PDP_CONTEXT_ACTIVATED = 0x83B, + ACCESS_CLASS_DSAC_REJECTION = 0x83C, + PDP_ACTIVATE_MAX_RETRY_FAILED = 0x83D, + RADIO_ACCESS_BEARER_FAILURE = 0x83E, + ESM_UNKNOWN_EPS_BEARER_CONTEXT = 0x83F, + DRB_RELEASED_BY_RRC = 0x840, + CONNECTION_RELEASED = 0x841, + EMM_DETACHED = 0x842, + EMM_ATTACH_FAILED = 0x843, + EMM_ATTACH_STARTED = 0x844, + LTE_NAS_SERVICE_REQUEST_FAILED = 0x845, + DUPLICATE_BEARER_ID = 0x846, + ESM_COLLISION_SCENARIOS = 0x847, + ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 0x848, + ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 0x849, + ESM_BAD_OTA_MESSAGE = 0x84A, + ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 0x84B, + ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 0x84C, + DS_EXPLICIT_DEACTIVATION = 0x84D, + ESM_LOCAL_CAUSE_NONE = 0x84E, + LTE_THROTTLING_NOT_REQUIRED = 0x84F, + ACCESS_CONTROL_LIST_CHECK_FAILURE = 0x850, + SERVICE_NOT_ALLOWED_ON_PLMN = 0x851, + EMM_T3417_EXPIRED = 0x852, + EMM_T3417_EXT_EXPIRED = 0x853, + RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 0x854, + RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 0x855, + RRC_UPLINK_CONNECTION_RELEASE = 0x856, + RRC_UPLINK_RADIO_LINK_FAILURE = 0x857, + RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 0x858, + RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 0x859, + RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 0x85A, + RRC_CONNECTION_ACCESS_BARRED = 0x85B, + RRC_CONNECTION_CELL_RESELECTION = 0x85C, + RRC_CONNECTION_CONFIG_FAILURE = 0x85D, + RRC_CONNECTION_TIMER_EXPIRED = 0x85E, + RRC_CONNECTION_LINK_FAILURE = 0x85F, + RRC_CONNECTION_CELL_NOT_CAMPED = 0x860, + RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 0x861, + RRC_CONNECTION_REJECT_BY_NETWORK = 0x862, + RRC_CONNECTION_NORMAL_RELEASE = 0x863, + RRC_CONNECTION_RADIO_LINK_FAILURE = 0x864, + RRC_CONNECTION_REESTABLISHMENT_FAILURE = 0x865, + RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 0x866, + RRC_CONNECTION_ABORT_REQUEST = 0x867, + RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 0x868, + NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 0x869, + NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 0x86A, + ESM_PROCEDURE_TIME_OUT = 0x86B, + INVALID_CONNECTION_ID = 0x86C, + MAXIMIUM_NSAPIS_EXCEEDED = 0x86D, + INVALID_PRIMARY_NSAPI = 0x86E, + CANNOT_ENCODE_OTA_MESSAGE = 0x86F, + RADIO_ACCESS_BEARER_SETUP_FAILURE = 0x870, + PDP_ESTABLISH_TIMEOUT_EXPIRED = 0x871, + PDP_MODIFY_TIMEOUT_EXPIRED = 0x872, + PDP_INACTIVE_TIMEOUT_EXPIRED = 0x873, + PDP_LOWERLAYER_ERROR = 0x874, + PDP_MODIFY_COLLISION = 0x875, + /** + * @deprecated use MAXIMUM_SIZE_OF_L2_MESSAGE_EXCEEDED instead. + */ + MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 0x876, + MAXIMUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 0x876, + NAS_REQUEST_REJECTED_BY_NETWORK = 0x877, + RRC_CONNECTION_INVALID_REQUEST = 0x878, + RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 0x879, + RRC_CONNECTION_RF_UNAVAILABLE = 0x87A, + RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 0x87B, + RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 0x87C, + RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 0x87D, + RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 0x87E, + RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 0x87F, + IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 0x880, + IMEI_NOT_ACCEPTED = 0x881, + EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 0x882, + EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 0x883, + MSC_TEMPORARILY_NOT_REACHABLE = 0x884, + CS_DOMAIN_NOT_AVAILABLE = 0x885, + ESM_FAILURE = 0x886, + MAC_FAILURE = 0x887, + SYNCHRONIZATION_FAILURE = 0x888, + UE_SECURITY_CAPABILITIES_MISMATCH = 0x889, + SECURITY_MODE_REJECTED = 0x88A, + UNACCEPTABLE_NON_EPS_AUTHENTICATION = 0x88B, + CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 0x88C, + NO_EPS_BEARER_CONTEXT_ACTIVATED = 0x88D, + INVALID_EMM_STATE = 0x88E, + NAS_LAYER_FAILURE = 0x88F, + MULTIPLE_PDP_CALL_NOT_ALLOWED = 0x890, + EMBMS_NOT_ENABLED = 0x891, + IRAT_HANDOVER_FAILED = 0x892, + EMBMS_REGULAR_DEACTIVATION = 0x893, + TEST_LOOPBACK_REGULAR_DEACTIVATION = 0x894, + LOWER_LAYER_REGISTRATION_FAILURE = 0x895, + DATA_PLAN_EXPIRED = 0x896, + UMTS_HANDOVER_TO_IWLAN = 0x897, + EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 0x898, + EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 0x899, + EVDO_HDR_CHANGED = 0x89A, + EVDO_HDR_EXITED = 0x89B, + EVDO_HDR_NO_SESSION = 0x89C, + EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 0x89D, + EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 0x89E, + FAILED_TO_ACQUIRE_COLOCATED_HDR = 0x89F, + OTASP_COMMIT_IN_PROGRESS = 0x8A0, + NO_HYBRID_HDR_SERVICE = 0x8A1, + HDR_NO_LOCK_GRANTED = 0x8A2, + DBM_OR_SMS_IN_PROGRESS = 0x8A3, + HDR_FADE = 0x8A4, + HDR_ACCESS_FAILURE = 0x8A5, + UNSUPPORTED_1X_PREV = 0x8A6, + LOCAL_END = 0x8A7, + NO_SERVICE = 0x8A8, + FADE = 0x8A9, + NORMAL_RELEASE = 0x8AA, + ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 0x8AB, + REDIRECTION_OR_HANDOFF_IN_PROGRESS = 0x8AC, + EMERGENCY_MODE = 0x8AD, + PHONE_IN_USE = 0x8AE, + INVALID_MODE = 0x8AF, + INVALID_SIM_STATE = 0x8B0, + NO_COLLOCATED_HDR = 0x8B1, + UE_IS_ENTERING_POWERSAVE_MODE = 0x8B2, + DUAL_SWITCH = 0x8B3, + PPP_TIMEOUT = 0x8B4, + PPP_AUTH_FAILURE = 0x8B5, + PPP_OPTION_MISMATCH = 0x8B6, + PPP_PAP_FAILURE = 0x8B7, + PPP_CHAP_FAILURE = 0x8B8, + PPP_CLOSE_IN_PROGRESS = 0x8B9, + LIMITED_TO_IPV4 = 0x8BA, + LIMITED_TO_IPV6 = 0x8BB, + VSNCP_TIMEOUT = 0x8BC, + VSNCP_GEN_ERROR = 0x8BD, + VSNCP_APN_UNAUTHORIZED = 0x8BE, + VSNCP_PDN_LIMIT_EXCEEDED = 0x8BF, + VSNCP_NO_PDN_GATEWAY_ADDRESS = 0x8C0, + VSNCP_PDN_GATEWAY_UNREACHABLE = 0x8C1, + VSNCP_PDN_GATEWAY_REJECT = 0x8C2, + VSNCP_INSUFFICIENT_PARAMETERS = 0x8C3, + VSNCP_RESOURCE_UNAVAILABLE = 0x8C4, + VSNCP_ADMINISTRATIVELY_PROHIBITED = 0x8C5, + VSNCP_PDN_ID_IN_USE = 0x8C6, + VSNCP_SUBSCRIBER_LIMITATION = 0x8C7, + VSNCP_PDN_EXISTS_FOR_THIS_APN = 0x8C8, + VSNCP_RECONNECT_NOT_ALLOWED = 0x8C9, + IPV6_PREFIX_UNAVAILABLE = 0x8CA, + HANDOFF_PREFERENCE_CHANGED = 0x8CB, + SLICE_REJECTED = 0x8CC, + MATCH_ALL_RULE_NOT_ALLOWED = 0x8CD, + ALL_MATCHING_RULES_FAILED = 0x8CE, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataProfileInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataProfileInfo.aidl new file mode 100644 index 0000000000..7f3fdc7721 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataProfileInfo.aidl @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable DataProfileInfo { + int profileId; + String apn; + android.hardware.radio.data.PdpProtocolType protocol; + android.hardware.radio.data.PdpProtocolType roamingProtocol; + android.hardware.radio.data.ApnAuthType authType; + String user; + String password; + int type; + int maxConnsTime; + int maxConns; + int waitTime; + boolean enabled; + int supportedApnTypesBitmap; + int bearerBitmap; + int mtuV4; + int mtuV6; + boolean preferred; + boolean persistent; + boolean alwaysOn; + android.hardware.radio.data.TrafficDescriptor trafficDescriptor; + int infrastructureBitmap = INFRASTRUCTURE_UNKNOWN /* 0 */; + const int ID_DEFAULT = 0; + const int ID_TETHERED = 1; + const int ID_IMS = 2; + const int ID_FOTA = 3; + const int ID_CBS = 4; + const int ID_OEM_BASE = 1000; + const int ID_INVALID = 0xFFFFFFFF; + const int TYPE_COMMON = 0; + const int TYPE_3GPP = 1; + const int TYPE_3GPP2 = 2; + const int INFRASTRUCTURE_UNKNOWN = 0; + const int INFRASTRUCTURE_CELLULAR = (1 << 0) /* 1 */; + const int INFRASTRUCTURE_SATELLITE = (1 << 1) /* 2 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataRequestReason.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataRequestReason.aidl new file mode 100644 index 0000000000..98ae53a080 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataRequestReason.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum DataRequestReason { + NORMAL = 1, + SHUTDOWN = 2, + HANDOVER = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataThrottlingAction.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataThrottlingAction.aidl new file mode 100644 index 0000000000..e1fedb86c0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataThrottlingAction.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="byte") @JavaDerive(toString=true) @VintfStability +enum DataThrottlingAction { + NO_DATA_THROTTLING, + THROTTLE_SECONDARY_CARRIER, + THROTTLE_ANCHOR_CARRIER, + HOLD, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/EpsQos.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/EpsQos.aidl new file mode 100644 index 0000000000..3a3f41d98e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/EpsQos.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EpsQos { + int qci; + android.hardware.radio.data.QosBandwidth downlink; + android.hardware.radio.data.QosBandwidth uplink; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioData.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioData.aidl new file mode 100644 index 0000000000..3888c627e7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioData.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@VintfStability +interface IRadioData { + oneway void allocatePduSessionId(in int serial); + oneway void cancelHandover(in int serial, in int callId); + oneway void deactivateDataCall(in int serial, in int cid, in android.hardware.radio.data.DataRequestReason reason); + oneway void getDataCallList(in int serial); + oneway void getSlicingConfig(in int serial); + oneway void releasePduSessionId(in int serial, in int id); + oneway void responseAcknowledgement(); + oneway void setDataAllowed(in int serial, in boolean allow); + oneway void setDataProfile(in int serial, in android.hardware.radio.data.DataProfileInfo[] profiles); + oneway void setDataThrottling(in int serial, in android.hardware.radio.data.DataThrottlingAction dataThrottlingAction, in long completionDurationMillis); + oneway void setInitialAttachApn(in int serial, in @nullable android.hardware.radio.data.DataProfileInfo dataProfileInfo); + oneway void setResponseFunctions(in android.hardware.radio.data.IRadioDataResponse radioDataResponse, in android.hardware.radio.data.IRadioDataIndication radioDataIndication); + oneway void setupDataCall(in int serial, in android.hardware.radio.AccessNetwork accessNetwork, in android.hardware.radio.data.DataProfileInfo dataProfileInfo, in boolean roamingAllowed, in android.hardware.radio.data.DataRequestReason reason, in android.hardware.radio.data.LinkAddress[] addresses, in String[] dnses, in int pduSessionId, in @nullable android.hardware.radio.data.SliceInfo sliceInfo, in boolean matchAllRuleAllowed); + oneway void startHandover(in int serial, in int callId); + oneway void startKeepalive(in int serial, in android.hardware.radio.data.KeepaliveRequest keepalive); + oneway void stopKeepalive(in int serial, in int sessionHandle); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataIndication.aidl new file mode 100644 index 0000000000..6057d6af07 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataIndication.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@VintfStability +interface IRadioDataIndication { + oneway void dataCallListChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.SetupDataCallResult[] dcList); + oneway void keepaliveStatus(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.KeepaliveStatus status); + oneway void pcoData(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.PcoDataInfo pco); + oneway void unthrottleApn(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.DataProfileInfo dataProfileInfo); + oneway void slicingConfigChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.SlicingConfig slicingConfig); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataResponse.aidl new file mode 100644 index 0000000000..dc44454f3f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataResponse.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@VintfStability +interface IRadioDataResponse { + oneway void acknowledgeRequest(in int serial); + oneway void allocatePduSessionIdResponse(in android.hardware.radio.RadioResponseInfo info, in int id); + oneway void cancelHandoverResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void deactivateDataCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getDataCallListResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.data.SetupDataCallResult[] dcResponse); + oneway void getSlicingConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.data.SlicingConfig slicingConfig); + oneway void releasePduSessionIdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataAllowedResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataProfileResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataThrottlingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setInitialAttachApnResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setupDataCallResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.data.SetupDataCallResult dcResponse); + oneway void startHandoverResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startKeepaliveResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.data.KeepaliveStatus status); + oneway void stopKeepaliveResponse(in android.hardware.radio.RadioResponseInfo info); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveRequest.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveRequest.aidl new file mode 100644 index 0000000000..789ee863f2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveRequest.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable KeepaliveRequest { + int type; + byte[] sourceAddress; + int sourcePort; + byte[] destinationAddress; + int destinationPort; + int maxKeepaliveIntervalMillis; + int cid; + const int TYPE_NATT_IPV4 = 0; + const int TYPE_NATT_IPV6 = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveStatus.aidl new file mode 100644 index 0000000000..404b44a3e0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable KeepaliveStatus { + int sessionHandle; + int code; + const int CODE_ACTIVE = 0; + const int CODE_INACTIVE = 1; + const int CODE_PENDING = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/LinkAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/LinkAddress.aidl new file mode 100644 index 0000000000..bef4c736f8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/LinkAddress.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LinkAddress { + String address; + int addressProperties; + long deprecationTime; + long expirationTime; + const int ADDRESS_PROPERTY_NONE = 0; + const int ADDRESS_PROPERTY_DEPRECATED = 0x20; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/NrQos.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/NrQos.aidl new file mode 100644 index 0000000000..22bbe42933 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/NrQos.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NrQos { + int fiveQi; + android.hardware.radio.data.QosBandwidth downlink; + android.hardware.radio.data.QosBandwidth uplink; + byte qfi; + /** + * @deprecated use averagingWindowMillis; + */ + char averagingWindowMs; + int averagingWindowMillis = AVERAGING_WINDOW_UNKNOWN /* -1 */; + const byte FLOW_ID_RANGE_MIN = 1; + const byte FLOW_ID_RANGE_MAX = 63; + const int AVERAGING_WINDOW_UNKNOWN = (-1) /* -1 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/OsAppId.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/OsAppId.aidl new file mode 100644 index 0000000000..e4bbf79126 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/OsAppId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable OsAppId { + byte[] osAppId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PcoDataInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PcoDataInfo.aidl new file mode 100644 index 0000000000..ea7529cb34 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PcoDataInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PcoDataInfo { + int cid; + String bearerProto; + int pcoId; + byte[] contents; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PdpProtocolType.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PdpProtocolType.aidl new file mode 100644 index 0000000000..3a7f82d401 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PdpProtocolType.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum PdpProtocolType { + UNKNOWN = (-1) /* -1 */, + IP = 0, + IPV6 = 1, + IPV4V6 = 2, + PPP = 3, + NON_IP = 4, + UNSTRUCTURED = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PortRange.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PortRange.aidl new file mode 100644 index 0000000000..45e2dc9687 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PortRange.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PortRange { + int start; + int end; + const int PORT_RANGE_MIN = 20; + const int PORT_RANGE_MAX = 65535; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/Qos.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/Qos.aidl new file mode 100644 index 0000000000..4dac56c5d9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/Qos.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union Qos { + boolean noinit; + android.hardware.radio.data.EpsQos eps; + android.hardware.radio.data.NrQos nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosBandwidth.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosBandwidth.aidl new file mode 100644 index 0000000000..b59dee0d40 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosBandwidth.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable QosBandwidth { + int maxBitrateKbps; + int guaranteedBitrateKbps; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilter.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilter.aidl new file mode 100644 index 0000000000..a3208d9b6c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilter.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable QosFilter { + String[] localAddresses; + String[] remoteAddresses; + @nullable android.hardware.radio.data.PortRange localPort; + @nullable android.hardware.radio.data.PortRange remotePort; + byte protocol; + android.hardware.radio.data.QosFilterTypeOfService tos; + android.hardware.radio.data.QosFilterIpv6FlowLabel flowLabel; + android.hardware.radio.data.QosFilterIpsecSpi spi; + byte direction; + int precedence; + const byte DIRECTION_DOWNLINK = 0; + const byte DIRECTION_UPLINK = 1; + const byte DIRECTION_BIDIRECTIONAL = 2; + const byte PROTOCOL_UNSPECIFIED = (-1) /* -1 */; + const byte PROTOCOL_TCP = 6; + const byte PROTOCOL_UDP = 17; + const byte PROTOCOL_ESP = 50; + const byte PROTOCOL_AH = 51; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpsecSpi.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpsecSpi.aidl new file mode 100644 index 0000000000..50b52a4957 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpsecSpi.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union QosFilterIpsecSpi { + boolean noinit; + int value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpv6FlowLabel.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpv6FlowLabel.aidl new file mode 100644 index 0000000000..4913dcf07b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpv6FlowLabel.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union QosFilterIpv6FlowLabel { + boolean noinit; + int value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterTypeOfService.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterTypeOfService.aidl new file mode 100644 index 0000000000..4f0d2605e1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterTypeOfService.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union QosFilterTypeOfService { + boolean noinit; + byte value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosSession.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosSession.aidl new file mode 100644 index 0000000000..89010a9feb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosSession.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable QosSession { + int qosSessionId; + android.hardware.radio.data.Qos qos; + android.hardware.radio.data.QosFilter[] qosFilters; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/RouteSelectionDescriptor.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/RouteSelectionDescriptor.aidl new file mode 100644 index 0000000000..8864c246d6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/RouteSelectionDescriptor.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RouteSelectionDescriptor { + byte precedence; + android.hardware.radio.data.PdpProtocolType sessionType; + byte sscMode; + android.hardware.radio.data.SliceInfo[] sliceInfo; + String[] dnn; + const byte SSC_MODE_UNKNOWN = (-1) /* -1 */; + const byte SSC_MODE_1 = 1; + const byte SSC_MODE_2 = 2; + const byte SSC_MODE_3 = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SetupDataCallResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SetupDataCallResult.aidl new file mode 100644 index 0000000000..6ae626eab7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SetupDataCallResult.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SetupDataCallResult { + android.hardware.radio.data.DataCallFailCause cause; + long suggestedRetryTime; + int cid; + int active; + android.hardware.radio.data.PdpProtocolType type; + String ifname; + android.hardware.radio.data.LinkAddress[] addresses; + String[] dnses; + String[] gateways; + String[] pcscf; + int mtuV4; + int mtuV6; + android.hardware.radio.data.Qos defaultQos; + android.hardware.radio.data.QosSession[] qosSessions; + byte handoverFailureMode; + int pduSessionId; + @nullable android.hardware.radio.data.SliceInfo sliceInfo; + android.hardware.radio.data.TrafficDescriptor[] trafficDescriptors; + const int DATA_CONNECTION_STATUS_INACTIVE = 0; + const int DATA_CONNECTION_STATUS_DORMANT = 1; + const int DATA_CONNECTION_STATUS_ACTIVE = 2; + const byte HANDOVER_FAILURE_MODE_LEGACY = 0; + const byte HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; + const byte HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 2; + const byte HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SliceInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SliceInfo.aidl new file mode 100644 index 0000000000..60df402a81 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SliceInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SliceInfo { + byte sliceServiceType; + int sliceDifferentiator; + byte mappedHplmnSst; + int mappedHplmnSd; + byte status; + const byte SERVICE_TYPE_NONE = 0; + const byte SERVICE_TYPE_EMBB = 1; + const byte SERVICE_TYPE_URLLC = 2; + const byte SERVICE_TYPE_MIOT = 3; + const byte STATUS_UNKNOWN = 0; + const byte STATUS_CONFIGURED = 1; + const byte STATUS_ALLOWED = 2; + const byte STATUS_REJECTED_NOT_AVAILABLE_IN_PLMN = 3; + const byte STATUS_REJECTED_NOT_AVAILABLE_IN_REG_AREA = 4; + const byte STATUS_DEFAULT_CONFIGURED = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SlicingConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SlicingConfig.aidl new file mode 100644 index 0000000000..4d28737134 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SlicingConfig.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SlicingConfig { + android.hardware.radio.data.UrspRule[] urspRules; + android.hardware.radio.data.SliceInfo[] sliceInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/TrafficDescriptor.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/TrafficDescriptor.aidl new file mode 100644 index 0000000000..dc474a2d1d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/TrafficDescriptor.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable TrafficDescriptor { + @nullable String dnn; + @nullable android.hardware.radio.data.OsAppId osAppId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/UrspRule.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/UrspRule.aidl new file mode 100644 index 0000000000..6850f6a049 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/UrspRule.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable UrspRule { + int precedence; + android.hardware.radio.data.TrafficDescriptor[] trafficDescriptors; + android.hardware.radio.data.RouteSelectionDescriptor[] routeSelectionDescriptor; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/.hash b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/.hash new file mode 100644 index 0000000000..9b9d9c1cfe --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/.hash @@ -0,0 +1 @@ +32f1efa112630eb17660b761f3350407239ee725 diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrMode.aidl new file mode 100644 index 0000000000..36a538cdb4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrMode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum AmrMode { + AMR_MODE_0 = (1 << 0) /* 1 */, + AMR_MODE_1 = (1 << 1) /* 2 */, + AMR_MODE_2 = (1 << 2) /* 4 */, + AMR_MODE_3 = (1 << 3) /* 8 */, + AMR_MODE_4 = (1 << 4) /* 16 */, + AMR_MODE_5 = (1 << 5) /* 32 */, + AMR_MODE_6 = (1 << 6) /* 64 */, + AMR_MODE_7 = (1 << 7) /* 128 */, + AMR_MODE_8 = (1 << 8) /* 256 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrParams.aidl new file mode 100644 index 0000000000..dcf0dd1775 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable AmrParams { + android.hardware.radio.ims.media.AmrMode amrMode; + boolean octetAligned; + int maxRedundancyMillis; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AnbrMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AnbrMode.aidl new file mode 100644 index 0000000000..eca7b9323c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AnbrMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable AnbrMode { + android.hardware.radio.ims.media.CodecMode anbrUplinkMode; + android.hardware.radio.ims.media.CodecMode anbrDownlinkMode; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CallQuality.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CallQuality.aidl new file mode 100644 index 0000000000..594a39faee --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CallQuality.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CallQuality { + int downlinkCallQualityLevel; + int uplinkCallQualityLevel; + int callDuration; + int numRtpPacketsTransmitted; + int numRtpPacketsReceived; + int numRtpPacketsTransmittedLost; + int numRtpPacketsNotReceived; + int averageRelativeJitter; + int maxRelativeJitter; + int averageRoundTripTime; + int codecType; + boolean rtpInactivityDetected; + boolean rxSilenceDetected; + boolean txSilenceDetected; + int numVoiceFrames; + int numNoDataFrames; + int numDroppedRtpPackets; + long minPlayoutDelayMillis; + long maxPlayoutDelayMillis; + int numRtpSidPacketsReceived; + int numRtpDuplicatePackets; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecMode.aidl new file mode 100644 index 0000000000..644321cd3f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union CodecMode { + boolean noinit; + android.hardware.radio.ims.media.AmrMode amr; + android.hardware.radio.ims.media.EvsMode evs; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecParams.aidl new file mode 100644 index 0000000000..6eefb347c4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecParams.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CodecParams { + android.hardware.radio.ims.media.CodecType codecType; + byte rxPayloadTypeNumber; + byte txPayloadTypeNumber; + byte samplingRateKHz; + boolean dtxEnabled; + android.hardware.radio.ims.media.CodecSpecificParams codecSpecificParams; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecSpecificParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecSpecificParams.aidl new file mode 100644 index 0000000000..7e5722f935 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecSpecificParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union CodecSpecificParams { + android.hardware.radio.ims.media.AmrParams amr; + android.hardware.radio.ims.media.EvsParams evs; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecType.aidl new file mode 100644 index 0000000000..98463b184b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CodecType { + AMR = (1 << 0) /* 1 */, + AMR_WB = (1 << 1) /* 2 */, + EVS = (1 << 2) /* 4 */, + PCMA = (1 << 3) /* 8 */, + PCMU = (1 << 4) /* 16 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/DtmfParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/DtmfParams.aidl new file mode 100644 index 0000000000..f420fa71d2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/DtmfParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable DtmfParams { + byte rxPayloadTypeNumber; + byte txPayloadTypeNumber; + byte samplingRateKHz; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsBandwidth.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsBandwidth.aidl new file mode 100644 index 0000000000..d8c77bdccc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsBandwidth.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EvsBandwidth { + NONE = 0, + NARROW_BAND = (1 << 0) /* 1 */, + WIDE_BAND = (1 << 1) /* 2 */, + SUPER_WIDE_BAND = (1 << 2) /* 4 */, + FULL_BAND = (1 << 3) /* 8 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsMode.aidl new file mode 100644 index 0000000000..1a593890fd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsMode.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EvsMode { + EVS_MODE_0 = (1 << 0) /* 1 */, + EVS_MODE_1 = (1 << 1) /* 2 */, + EVS_MODE_2 = (1 << 2) /* 4 */, + EVS_MODE_3 = (1 << 3) /* 8 */, + EVS_MODE_4 = (1 << 4) /* 16 */, + EVS_MODE_5 = (1 << 5) /* 32 */, + EVS_MODE_6 = (1 << 6) /* 64 */, + EVS_MODE_7 = (1 << 7) /* 128 */, + EVS_MODE_8 = (1 << 8) /* 256 */, + EVS_MODE_9 = (1 << 9) /* 512 */, + EVS_MODE_10 = (1 << 10) /* 1024 */, + EVS_MODE_11 = (1 << 11) /* 2048 */, + EVS_MODE_12 = (1 << 12) /* 4096 */, + EVS_MODE_13 = (1 << 13) /* 8192 */, + EVS_MODE_14 = (1 << 14) /* 16384 */, + EVS_MODE_15 = (1 << 15) /* 32768 */, + EVS_MODE_16 = (1 << 16) /* 65536 */, + EVS_MODE_17 = (1 << 17) /* 131072 */, + EVS_MODE_18 = (1 << 18) /* 262144 */, + EVS_MODE_19 = (1 << 19) /* 524288 */, + EVS_MODE_20 = (1 << 20) /* 1048576 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsParams.aidl new file mode 100644 index 0000000000..deb53af54a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsParams.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EvsParams { + android.hardware.radio.ims.media.EvsBandwidth bandwidth; + android.hardware.radio.ims.media.EvsMode evsMode; + byte channelAwareMode; + boolean useHeaderFullOnly; + boolean useEvsModeSwitch; + byte codecModeRequest; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMedia.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMedia.aidl new file mode 100644 index 0000000000..190d25b61c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMedia.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@VintfStability +interface IImsMedia { + oneway void setListener(in android.hardware.radio.ims.media.IImsMediaListener mediaListener); + oneway void openSession(int sessionId, in android.hardware.radio.ims.media.LocalEndPoint localEndPoint, in android.hardware.radio.ims.media.RtpConfig config); + oneway void closeSession(int sessionId); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaListener.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaListener.aidl new file mode 100644 index 0000000000..9b7a392edd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaListener.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@VintfStability +interface IImsMediaListener { + oneway void onOpenSessionSuccess(int sessionId, android.hardware.radio.ims.media.IImsMediaSession session); + oneway void onOpenSessionFailure(int sessionId, android.hardware.radio.ims.media.RtpError error); + oneway void onSessionClosed(int sessionId); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSession.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSession.aidl new file mode 100644 index 0000000000..2150fbe0a1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSession.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@VintfStability +interface IImsMediaSession { + oneway void setListener(in android.hardware.radio.ims.media.IImsMediaSessionListener sessionListener); + oneway void modifySession(in android.hardware.radio.ims.media.RtpConfig config); + oneway void sendDtmf(char dtmfDigit, int duration); + oneway void startDtmf(char dtmfDigit); + oneway void stopDtmf(); + oneway void sendHeaderExtension(in List extensions); + oneway void setMediaQualityThreshold(in android.hardware.radio.ims.media.MediaQualityThreshold threshold); + oneway void requestRtpReceptionStats(in int intervalMs); + oneway void adjustDelay(in int delayMs); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl new file mode 100644 index 0000000000..87474eff37 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@VintfStability +interface IImsMediaSessionListener { + oneway void onModifySessionResponse(in android.hardware.radio.ims.media.RtpConfig config, android.hardware.radio.ims.media.RtpError error); + oneway void onFirstMediaPacketReceived(in android.hardware.radio.ims.media.RtpConfig config); + oneway void onHeaderExtensionReceived(in List extensions); + oneway void notifyMediaQualityStatus(in android.hardware.radio.ims.media.MediaQualityStatus quality); + oneway void triggerAnbrQuery(in android.hardware.radio.ims.media.RtpConfig config); + oneway void onDtmfReceived(char dtmfDigit, int durationMs); + oneway void onCallQualityChanged(in android.hardware.radio.ims.media.CallQuality callQuality); + oneway void notifyRtpReceptionStats(in android.hardware.radio.ims.media.RtpReceptionStats stats); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/LocalEndPoint.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/LocalEndPoint.aidl new file mode 100644 index 0000000000..1095f01ea1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/LocalEndPoint.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LocalEndPoint { + ParcelFileDescriptor rtpFd; + ParcelFileDescriptor rtcpFd; + int modemId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaDirection.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaDirection.aidl new file mode 100644 index 0000000000..5410f2ade0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaDirection.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum MediaDirection { + NO_FLOW = 0, + RTP_TX = (1 << 0) /* 1 */, + RTP_RX = (1 << 1) /* 2 */, + RTCP_TX = (1 << 2) /* 4 */, + RTCP_RX = (1 << 3) /* 8 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityStatus.aidl new file mode 100644 index 0000000000..da6e751243 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable MediaQualityStatus { + int rtpInactivityTimeMillis; + int rtcpInactivityTimeMillis; + int rtpPacketLossRate; + int rtpJitterMillis; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityThreshold.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityThreshold.aidl new file mode 100644 index 0000000000..ecc379c071 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityThreshold.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable MediaQualityThreshold { + int[] rtpInactivityTimerMillis; + int rtcpInactivityTimerMillis; + int rtpPacketLossDurationMillis; + int rtpHysteresisTimeInMillis; + int[] rtpPacketLossRate; + int[] rtpJitterMillis; + boolean notifyCurrentStatus; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpConfig.aidl new file mode 100644 index 0000000000..0bc41547fa --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpConfig.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtcpConfig { + String canonicalName; + int transmitPort; + int transmitIntervalSec; + int rtcpXrBlocks; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpXrReportBlockType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpXrReportBlockType.aidl new file mode 100644 index 0000000000..714442cce6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpXrReportBlockType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RtcpXrReportBlockType { + RTCPXR_NONE = 0, + RTCPXR_LOSS_RLE_REPORT_BLOCK = (1 << 0) /* 1 */, + RTCPXR_DUPLICATE_RLE_REPORT_BLOCK = (1 << 1) /* 2 */, + RTCPXR_PACKET_RECEIPT_TIMES_REPORT_BLOCK = (1 << 2) /* 4 */, + RTCPXR_RECEIVER_REFERENCE_TIME_REPORT_BLOCK = (1 << 3) /* 8 */, + RTCPXR_DLRR_REPORT_BLOCK = (1 << 4) /* 16 */, + RTCPXR_STATISTICS_SUMMARY_REPORT_BLOCK = (1 << 5) /* 32 */, + RTCPXR_VOIP_METRICS_REPORT_BLOCK = (1 << 6) /* 64 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpAddress.aidl new file mode 100644 index 0000000000..dd7f4661f7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpAddress.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtpAddress { + String ipAddress; + int portNumber; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpConfig.aidl new file mode 100644 index 0000000000..472ec35010 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpConfig.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtpConfig { + int direction; + android.hardware.radio.AccessNetwork accessNetwork; + android.hardware.radio.ims.media.RtpAddress remoteAddress; + android.hardware.radio.ims.media.RtpSessionParams sessionParams; + android.hardware.radio.ims.media.RtcpConfig rtcpConfig; + android.hardware.radio.ims.media.AnbrMode anbrModeParams; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpError.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpError.aidl new file mode 100644 index 0000000000..97dacf1804 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpError.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RtpError { + NONE = 0, + INVALID_PARAM = 1, + NOT_READY = 2, + NO_MEMORY = 3, + NO_RESOURCES = 4, + PORT_UNAVAILABLE = 5, + NOT_SUPPORTED = 6, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpHeaderExtension.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpHeaderExtension.aidl new file mode 100644 index 0000000000..06207ee4d3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpHeaderExtension.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtpHeaderExtension { + int localId; + byte[] data; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpReceptionStats.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpReceptionStats.aidl new file mode 100644 index 0000000000..216da4c55c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpReceptionStats.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +@VintfStability +parcelable RtpReceptionStats { + int rtpTimestamp; + int rtcpSrTimestamp; + long rtcpSrNtpTimestamp; + int jitterBufferMs; + int roundTripTimeMs; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpSessionParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpSessionParams.aidl new file mode 100644 index 0000000000..4107432676 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpSessionParams.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtpSessionParams { + byte pTimeMillis; + int maxPtimeMillis; + byte dscp; + android.hardware.radio.ims.media.DtmfParams dtmfParams; + android.hardware.radio.ims.media.CodecParams codecParams; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/.hash b/radio/aidl/aidl_api/android.hardware.radio.ims/2/.hash new file mode 100644 index 0000000000..7b058acd54 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/.hash @@ -0,0 +1 @@ +ec0dfedf764f3916783848c540ad312a74fa755d diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ConnectionFailureInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ConnectionFailureInfo.aidl new file mode 100644 index 0000000000..421f752010 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ConnectionFailureInfo.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ConnectionFailureInfo { + android.hardware.radio.ims.ConnectionFailureInfo.ConnectionFailureReason failureReason; + int causeCode; + int waitTimeMillis; + @Backing(type="int") @VintfStability + enum ConnectionFailureReason { + REASON_ACCESS_DENIED = 1, + REASON_NAS_FAILURE = 2, + REASON_RACH_FAILURE = 3, + REASON_RLC_FAILURE = 4, + REASON_RRC_REJECT = 5, + REASON_RRC_TIMEOUT = 6, + REASON_NO_SERVICE = 7, + REASON_PDN_NOT_AVAILABLE = 8, + REASON_RF_BUSY = 9, + REASON_UNSPECIFIED = 0xFFFF, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/EpsFallbackReason.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/EpsFallbackReason.aidl new file mode 100644 index 0000000000..75099e7f1a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/EpsFallbackReason.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EpsFallbackReason { + NO_NETWORK_TRIGGER = 1, + NO_NETWORK_RESPONSE = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioIms.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioIms.aidl new file mode 100644 index 0000000000..6018a4b904 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioIms.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@VintfStability +interface IRadioIms { + oneway void setSrvccCallInfo(int serial, in android.hardware.radio.ims.SrvccCall[] srvccCalls); + oneway void updateImsRegistrationInfo(int serial, in android.hardware.radio.ims.ImsRegistration imsRegistration); + oneway void startImsTraffic(int serial, int token, android.hardware.radio.ims.ImsTrafficType imsTrafficType, android.hardware.radio.AccessNetwork accessNetworkType, android.hardware.radio.ims.ImsCall.Direction trafficDirection); + oneway void stopImsTraffic(int serial, int token); + oneway void triggerEpsFallback(int serial, in android.hardware.radio.ims.EpsFallbackReason reason); + oneway void setResponseFunctions(in android.hardware.radio.ims.IRadioImsResponse radioImsResponse, in android.hardware.radio.ims.IRadioImsIndication radioImsIndication); + oneway void sendAnbrQuery(int serial, android.hardware.radio.ims.ImsStreamType mediaType, android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond); + oneway void updateImsCallStatus(int serial, in android.hardware.radio.ims.ImsCall[] imsCalls); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsIndication.aidl new file mode 100644 index 0000000000..c754af3806 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsIndication.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@VintfStability +interface IRadioImsIndication { + oneway void onConnectionSetupFailure(in android.hardware.radio.RadioIndicationType type, int token, in android.hardware.radio.ims.ConnectionFailureInfo info); + oneway void notifyAnbr(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.ims.ImsStreamType mediaType, in android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond); + oneway void triggerImsDeregistration(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.ims.ImsDeregistrationReason reason); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsResponse.aidl new file mode 100644 index 0000000000..fbb1bfc66c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsResponse.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@VintfStability +interface IRadioImsResponse { + oneway void setSrvccCallInfoResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void updateImsRegistrationInfoResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startImsTrafficResponse(in android.hardware.radio.RadioResponseInfo info, in @nullable android.hardware.radio.ims.ConnectionFailureInfo failureInfo); + oneway void stopImsTrafficResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void triggerEpsFallbackResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendAnbrQueryResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void updateImsCallStatusResponse(in android.hardware.radio.RadioResponseInfo info); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsCall.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsCall.aidl new file mode 100644 index 0000000000..3895d75d6e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsCall.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImsCall { + int index; + android.hardware.radio.ims.ImsCall.CallType callType; + android.hardware.radio.AccessNetwork accessNetwork; + android.hardware.radio.ims.ImsCall.CallState callState; + android.hardware.radio.ims.ImsCall.Direction direction; + boolean isHeldByRemote; + @Backing(type="int") + enum CallType { + NORMAL, + EMERGENCY, + } + @Backing(type="int") + enum CallState { + ACTIVE, + HOLDING, + DIALING, + ALERTING, + INCOMING, + WAITING, + DISCONNECTING, + DISCONNECTED, + } + @Backing(type="int") + enum Direction { + INCOMING, + OUTGOING, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsDeregistrationReason.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsDeregistrationReason.aidl new file mode 100644 index 0000000000..5b5bd405f5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsDeregistrationReason.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsDeregistrationReason { + REASON_SIM_REMOVED = 1, + REASON_SIM_REFRESH = 2, + REASON_ALLOWED_NETWORK_TYPES_CHANGED = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistration.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistration.aidl new file mode 100644 index 0000000000..66d81650fb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistration.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImsRegistration { + android.hardware.radio.ims.ImsRegistrationState regState; + android.hardware.radio.AccessNetwork accessNetworkType; + android.hardware.radio.ims.SuggestedAction suggestedAction; + int capabilities; + const int IMS_MMTEL_CAPABILITY_NONE = 0; + const int IMS_MMTEL_CAPABILITY_VOICE = (1 << 0) /* 1 */; + const int IMS_MMTEL_CAPABILITY_VIDEO = (1 << 1) /* 2 */; + const int IMS_MMTEL_CAPABILITY_SMS = (1 << 2) /* 4 */; + const int IMS_RCS_CAPABILITIES = (1 << 3) /* 8 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistrationState.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistrationState.aidl new file mode 100644 index 0000000000..01ae565d79 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistrationState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsRegistrationState { + NOT_REGISTERED, + REGISTERED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamDirection.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamDirection.aidl new file mode 100644 index 0000000000..efc35511bc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamDirection.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsStreamDirection { + UPLINK = 1, + DOWNLINK = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamType.aidl new file mode 100644 index 0000000000..853f4b5c0e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsStreamType { + AUDIO = 1, + VIDEO = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsTrafficType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsTrafficType.aidl new file mode 100644 index 0000000000..4eeda9db07 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsTrafficType.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsTrafficType { + EMERGENCY, + EMERGENCY_SMS, + VOICE, + VIDEO, + SMS, + REGISTRATION, + UT_XCAP, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SrvccCall.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SrvccCall.aidl new file mode 100644 index 0000000000..21645dae0a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SrvccCall.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SrvccCall { + int index; + android.hardware.radio.ims.SrvccCall.CallType callType; + int callState; + android.hardware.radio.ims.SrvccCall.CallSubState callSubstate; + android.hardware.radio.ims.SrvccCall.ToneType ringbackToneType; + boolean isMpty; + boolean isMT; + String number; + int numPresentation; + String name; + int namePresentation; + @Backing(type="int") @VintfStability + enum CallType { + NORMAL, + EMERGENCY, + } + @Backing(type="int") @VintfStability + enum CallSubState { + NONE, + PREALERTING, + } + @Backing(type="int") @VintfStability + enum ToneType { + NONE, + LOCAL, + NETWORK, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SuggestedAction.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SuggestedAction.aidl new file mode 100644 index 0000000000..98460061ac --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SuggestedAction.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SuggestedAction { + NONE, + TRIGGER_PLMN_BLOCK, + TRIGGER_PLMN_BLOCK_WITH_TIMEOUT, + TRIGGER_RAT_BLOCK, + TRIGGER_CLEAR_RAT_BLOCKS, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/.hash new file mode 100644 index 0000000000..3347c21759 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/.hash @@ -0,0 +1 @@ +30b0bc0e84679bc3b5ccb3a52da34c47cda6b7eb diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl new file mode 100644 index 0000000000..abfb308bf9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaBroadcastSmsConfigInfo { + int serviceCategory; + int language; + boolean selected; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAck.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAck.aidl new file mode 100644 index 0000000000..ee8371c686 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAck.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsAck { + boolean errorClass; + int smsCauseCode; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAddress.aidl new file mode 100644 index 0000000000..7382b1fd3b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAddress.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsAddress { + int digitMode; + boolean isNumberModeDataNetwork; + int numberType; + int numberPlan; + byte[] digits; + const int DIGIT_MODE_FOUR_BIT = 0; + const int DIGIT_MODE_EIGHT_BIT = 1; + const int NUMBER_PLAN_UNKNOWN = 0; + const int NUMBER_PLAN_TELEPHONY = 1; + const int NUMBER_PLAN_RESERVED_2 = 2; + const int NUMBER_PLAN_DATA = 3; + const int NUMBER_PLAN_TELEX = 4; + const int NUMBER_PLAN_RESERVED_5 = 5; + const int NUMBER_PLAN_RESERVED_6 = 6; + const int NUMBER_PLAN_RESERVED_7 = 7; + const int NUMBER_PLAN_RESERVED_8 = 8; + const int NUMBER_PLAN_PRIVATE = 9; + const int NUMBER_PLAN_RESERVED_10 = 10; + const int NUMBER_PLAN_RESERVED_11 = 11; + const int NUMBER_PLAN_RESERVED_12 = 12; + const int NUMBER_PLAN_RESERVED_13 = 13; + const int NUMBER_PLAN_RESERVED_14 = 14; + const int NUMBER_PLAN_RESERVED_15 = 15; + const int NUMBER_TYPE_UNKNOWN = 0; + const int NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP = 1; + const int NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2; + const int NUMBER_TYPE_NETWORK = 3; + const int NUMBER_TYPE_SUBSCRIBER = 4; + const int NUMBER_TYPE_ALPHANUMERIC = 5; + const int NUMBER_TYPE_ABBREVIATED = 6; + const int NUMBER_TYPE_RESERVED_7 = 7; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsMessage.aidl new file mode 100644 index 0000000000..0e98f4b844 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsMessage.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsMessage { + int teleserviceId; + boolean isServicePresent; + int serviceCategory; + android.hardware.radio.messaging.CdmaSmsAddress address; + android.hardware.radio.messaging.CdmaSmsSubaddress subAddress; + byte[] bearerData; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl new file mode 100644 index 0000000000..a0e3991910 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsSubaddress { + int subaddressType; + boolean odd; + byte[] digits; + const int SUBADDRESS_TYPE_NSAP = 0; + const int SUBADDRESS_TYPE_USER_SPECIFIED = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl new file mode 100644 index 0000000000..d6292e7b2e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsWriteArgs { + int status; + android.hardware.radio.messaging.CdmaSmsMessage message; + const int STATUS_REC_UNREAD = 0; + const int STATUS_REC_READ = 1; + const int STATUS_STO_UNSENT = 2; + const int STATUS_STO_SENT = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmBroadcastSmsConfigInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmBroadcastSmsConfigInfo.aidl new file mode 100644 index 0000000000..1ccba8614e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmBroadcastSmsConfigInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable GsmBroadcastSmsConfigInfo { + int fromServiceId; + int toServiceId; + int fromCodeScheme; + int toCodeScheme; + boolean selected; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmSmsMessage.aidl new file mode 100644 index 0000000000..bdd7d0c396 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmSmsMessage.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable GsmSmsMessage { + String smscPdu; + String pdu; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessaging.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessaging.aidl new file mode 100644 index 0000000000..bf5fde5045 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessaging.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@VintfStability +interface IRadioMessaging { + oneway void acknowledgeIncomingGsmSmsWithPdu(in int serial, in boolean success, in String ackPdu); + oneway void acknowledgeLastIncomingCdmaSms(in int serial, in android.hardware.radio.messaging.CdmaSmsAck smsAck); + oneway void acknowledgeLastIncomingGsmSms(in int serial, in boolean success, in android.hardware.radio.messaging.SmsAcknowledgeFailCause cause); + oneway void deleteSmsOnRuim(in int serial, in int index); + oneway void deleteSmsOnSim(in int serial, in int index); + oneway void getCdmaBroadcastConfig(in int serial); + oneway void getGsmBroadcastConfig(in int serial); + oneway void getSmscAddress(in int serial); + oneway void reportSmsMemoryStatus(in int serial, in boolean available); + oneway void responseAcknowledgement(); + oneway void sendCdmaSms(in int serial, in android.hardware.radio.messaging.CdmaSmsMessage sms); + oneway void sendCdmaSmsExpectMore(in int serial, in android.hardware.radio.messaging.CdmaSmsMessage sms); + oneway void sendImsSms(in int serial, in android.hardware.radio.messaging.ImsSmsMessage message); + oneway void sendSms(in int serial, in android.hardware.radio.messaging.GsmSmsMessage message); + oneway void sendSmsExpectMore(in int serial, in android.hardware.radio.messaging.GsmSmsMessage message); + oneway void setCdmaBroadcastActivation(in int serial, in boolean activate); + oneway void setCdmaBroadcastConfig(in int serial, in android.hardware.radio.messaging.CdmaBroadcastSmsConfigInfo[] configInfo); + oneway void setGsmBroadcastActivation(in int serial, in boolean activate); + oneway void setGsmBroadcastConfig(in int serial, in android.hardware.radio.messaging.GsmBroadcastSmsConfigInfo[] configInfo); + oneway void setResponseFunctions(in android.hardware.radio.messaging.IRadioMessagingResponse radioMessagingResponse, in android.hardware.radio.messaging.IRadioMessagingIndication radioMessagingIndication); + oneway void setSmscAddress(in int serial, in String smsc); + oneway void writeSmsToRuim(in int serial, in android.hardware.radio.messaging.CdmaSmsWriteArgs cdmaSms); + oneway void writeSmsToSim(in int serial, in android.hardware.radio.messaging.SmsWriteArgs smsWriteArgs); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingIndication.aidl new file mode 100644 index 0000000000..389fb2659a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingIndication.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@VintfStability +interface IRadioMessagingIndication { + oneway void cdmaNewSms(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.messaging.CdmaSmsMessage msg); + oneway void cdmaRuimSmsStorageFull(in android.hardware.radio.RadioIndicationType type); + oneway void newBroadcastSms(in android.hardware.radio.RadioIndicationType type, in byte[] data); + oneway void newSms(in android.hardware.radio.RadioIndicationType type, in byte[] pdu); + oneway void newSmsOnSim(in android.hardware.radio.RadioIndicationType type, in int recordNumber); + oneway void newSmsStatusReport(in android.hardware.radio.RadioIndicationType type, in byte[] pdu); + oneway void simSmsStorageFull(in android.hardware.radio.RadioIndicationType type); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingResponse.aidl new file mode 100644 index 0000000000..9b10464837 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingResponse.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@VintfStability +interface IRadioMessagingResponse { + oneway void acknowledgeIncomingGsmSmsWithPduResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeLastIncomingCdmaSmsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeLastIncomingGsmSmsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeRequest(in int serial); + oneway void deleteSmsOnRuimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void deleteSmsOnSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getCdmaBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.CdmaBroadcastSmsConfigInfo[] configs); + oneway void getGsmBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.GsmBroadcastSmsConfigInfo[] configs); + oneway void getSmscAddressResponse(in android.hardware.radio.RadioResponseInfo info, in String smsc); + oneway void reportSmsMemoryStatusResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendCdmaSmsExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void sendCdmaSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void sendImsSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void sendSmsExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void sendSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void setCdmaBroadcastActivationResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setGsmBroadcastActivationResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setGsmBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSmscAddressResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void writeSmsToRuimResponse(in android.hardware.radio.RadioResponseInfo info, in int index); + oneway void writeSmsToSimResponse(in android.hardware.radio.RadioResponseInfo info, in int index); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/ImsSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/ImsSmsMessage.aidl new file mode 100644 index 0000000000..40b9ddbb40 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/ImsSmsMessage.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImsSmsMessage { + android.hardware.radio.RadioTechnologyFamily tech; + boolean retry; + int messageRef; + android.hardware.radio.messaging.CdmaSmsMessage[] cdmaMessage; + android.hardware.radio.messaging.GsmSmsMessage[] gsmMessage; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SendSmsResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SendSmsResult.aidl new file mode 100644 index 0000000000..3f1d120a99 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SendSmsResult.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SendSmsResult { + int messageRef; + String ackPDU; + int errorCode; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsAcknowledgeFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsAcknowledgeFailCause.aidl new file mode 100644 index 0000000000..6aeda3ef4b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsAcknowledgeFailCause.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SmsAcknowledgeFailCause { + MEMORY_CAPACITY_EXCEEDED = 0xD3, + UNSPECIFIED_ERROR = 0XFF, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsWriteArgs.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsWriteArgs.aidl new file mode 100644 index 0000000000..a294b47767 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsWriteArgs.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SmsWriteArgs { + int status; + String pdu; + String smsc; + const int STATUS_REC_UNREAD = 0; + const int STATUS_REC_READ = 1; + const int STATUS_STO_UNSENT = 2; + const int STATUS_STO_SENT = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.modem/3/.hash new file mode 100644 index 0000000000..79f0d7102f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/.hash @@ -0,0 +1 @@ +8586a5528f0085c15cff4b6628f1b8153aca29ad diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsInfo.aidl new file mode 100644 index 0000000000..c834342e75 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ActivityStatsInfo { + int sleepModeTimeMs; + int idleModeTimeMs; + android.hardware.radio.modem.ActivityStatsTechSpecificInfo[] techSpecificInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsTechSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsTechSpecificInfo.aidl new file mode 100644 index 0000000000..b44ab71e3f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsTechSpecificInfo.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ActivityStatsTechSpecificInfo { + android.hardware.radio.AccessNetwork rat; + int frequencyRange; + int[] txmModetimeMs; + int rxModeTimeMs; + const int FREQUENCY_RANGE_UNKNOWN = 0; + const int FREQUENCY_RANGE_LOW = 1; + const int FREQUENCY_RANGE_MID = 2; + const int FREQUENCY_RANGE_HIGH = 3; + const int FREQUENCY_RANGE_MMWAVE = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/DeviceStateType.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/DeviceStateType.aidl new file mode 100644 index 0000000000..1159f93b51 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/DeviceStateType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum DeviceStateType { + POWER_SAVE_MODE, + CHARGING_STATE, + LOW_DATA_EXPECTED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfig.aidl new file mode 100644 index 0000000000..2d814efbe2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfig.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable HardwareConfig { + int type; + String uuid; + int state; + android.hardware.radio.modem.HardwareConfigModem[] modem; + android.hardware.radio.modem.HardwareConfigSim[] sim; + const int STATE_ENABLED = 0; + const int STATE_STANDBY = 1; + const int STATE_DISABLED = 2; + const int TYPE_MODEM = 0; + const int TYPE_SIM = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigModem.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigModem.aidl new file mode 100644 index 0000000000..d453cb01c3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigModem.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable HardwareConfigModem { + int rilModel; + android.hardware.radio.RadioTechnology rat; + int maxVoiceCalls; + int maxDataCalls; + int maxStandby; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigSim.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigSim.aidl new file mode 100644 index 0000000000..4c2e31b82a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigSim.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable HardwareConfigSim { + String modemUuid; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModem.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModem.aidl new file mode 100644 index 0000000000..bd8ba4734b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModem.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@VintfStability +interface IRadioModem { + oneway void enableModem(in int serial, in boolean on); + oneway void getBasebandVersion(in int serial); + /** + * @deprecated use getImei(int serial) + */ + oneway void getDeviceIdentity(in int serial); + oneway void getHardwareConfig(in int serial); + oneway void getModemActivityInfo(in int serial); + oneway void getModemStackStatus(in int serial); + oneway void getRadioCapability(in int serial); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvReadItem(in int serial, in android.hardware.radio.modem.NvItem itemId); + oneway void nvResetConfig(in int serial, in android.hardware.radio.modem.ResetNvType resetType); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvWriteCdmaPrl(in int serial, in byte[] prl); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvWriteItem(in int serial, in android.hardware.radio.modem.NvWriteItem item); + oneway void requestShutdown(in int serial); + oneway void responseAcknowledgement(); + oneway void sendDeviceState(in int serial, in android.hardware.radio.modem.DeviceStateType deviceStateType, in boolean state); + oneway void setRadioCapability(in int serial, in android.hardware.radio.modem.RadioCapability rc); + oneway void setRadioPower(in int serial, in boolean powerOn, in boolean forEmergencyCall, in boolean preferredForEmergencyCall); + oneway void setResponseFunctions(in android.hardware.radio.modem.IRadioModemResponse radioModemResponse, in android.hardware.radio.modem.IRadioModemIndication radioModemIndication); + oneway void getImei(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemIndication.aidl new file mode 100644 index 0000000000..3c06877587 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemIndication.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@VintfStability +interface IRadioModemIndication { + oneway void hardwareConfigChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.HardwareConfig[] configs); + oneway void modemReset(in android.hardware.radio.RadioIndicationType type, in String reason); + oneway void radioCapabilityIndication(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.RadioCapability rc); + oneway void radioStateChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.RadioState radioState); + oneway void rilConnected(in android.hardware.radio.RadioIndicationType type); + oneway void onImeiMappingChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.ImeiInfo imeiInfo); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemResponse.aidl new file mode 100644 index 0000000000..b9ef51b342 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemResponse.aidl @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@VintfStability +interface IRadioModemResponse { + oneway void acknowledgeRequest(in int serial); + oneway void enableModemResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getBasebandVersionResponse(in android.hardware.radio.RadioResponseInfo info, in String version); + /** + * @deprecated use getImeiResponse(RadioResponseInfo responseInfo, ImeiInfo imeiInfo) + */ + oneway void getDeviceIdentityResponse(in android.hardware.radio.RadioResponseInfo info, in String imei, in String imeisv, in String esn, in String meid); + oneway void getHardwareConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.modem.HardwareConfig[] config); + oneway void getModemActivityInfoResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.modem.ActivityStatsInfo activityInfo); + oneway void getModemStackStatusResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); + oneway void getRadioCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.modem.RadioCapability rc); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvReadItemResponse(in android.hardware.radio.RadioResponseInfo info, in String result); + oneway void nvResetConfigResponse(in android.hardware.radio.RadioResponseInfo info); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvWriteCdmaPrlResponse(in android.hardware.radio.RadioResponseInfo info); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvWriteItemResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void requestShutdownResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendDeviceStateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setRadioCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.modem.RadioCapability rc); + oneway void setRadioPowerResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getImeiResponse(in android.hardware.radio.RadioResponseInfo responseInfo, in @nullable android.hardware.radio.modem.ImeiInfo imeiInfo); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ImeiInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ImeiInfo.aidl new file mode 100644 index 0000000000..a2df30ddfa --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ImeiInfo.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImeiInfo { + android.hardware.radio.modem.ImeiInfo.ImeiType type; + String imei; + String svn; + @Backing(type="int") @VintfStability + enum ImeiType { + PRIMARY = 1, + SECONDARY = 2, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvItem.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvItem.aidl new file mode 100644 index 0000000000..f97b9a2017 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvItem.aidl @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/** + * @hide + * @deprecated NV APIs are deprecated starting from Android U. + */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum NvItem { + CDMA_MEID = 1, + CDMA_MIN = 2, + CDMA_MDN = 3, + CDMA_ACCOLC = 4, + DEVICE_MSL = 11, + RTN_RECONDITIONED_STATUS = 12, + RTN_ACTIVATION_DATE = 13, + RTN_LIFE_TIMER = 14, + RTN_LIFE_CALLS = 15, + RTN_LIFE_DATA_TX = 16, + RTN_LIFE_DATA_RX = 17, + OMADM_HFA_LEVEL = 18, + MIP_PROFILE_NAI = 31, + MIP_PROFILE_HOME_ADDRESS = 32, + MIP_PROFILE_AAA_AUTH = 33, + MIP_PROFILE_HA_AUTH = 34, + MIP_PROFILE_PRI_HA_ADDR = 35, + MIP_PROFILE_SEC_HA_ADDR = 36, + MIP_PROFILE_REV_TUN_PREF = 37, + MIP_PROFILE_HA_SPI = 38, + MIP_PROFILE_AAA_SPI = 39, + MIP_PROFILE_MN_HA_SS = 40, + MIP_PROFILE_MN_AAA_SS = 41, + CDMA_PRL_VERSION = 51, + CDMA_BC10 = 52, + CDMA_BC14 = 53, + CDMA_SO68 = 54, + CDMA_SO73_COP0 = 55, + CDMA_SO73_COP1TO7 = 56, + CDMA_1X_ADVANCED_ENABLED = 57, + CDMA_EHRPD_ENABLED = 58, + CDMA_EHRPD_FORCED = 59, + LTE_BAND_ENABLE_25 = 71, + LTE_BAND_ENABLE_26 = 72, + LTE_BAND_ENABLE_41 = 73, + LTE_SCAN_PRIORITY_25 = 74, + LTE_SCAN_PRIORITY_26 = 75, + LTE_SCAN_PRIORITY_41 = 76, + LTE_HIDDEN_BAND_PRIORITY_25 = 77, + LTE_HIDDEN_BAND_PRIORITY_26 = 78, + LTE_HIDDEN_BAND_PRIORITY_41 = 79, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvWriteItem.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvWriteItem.aidl new file mode 100644 index 0000000000..c38ceb779a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvWriteItem.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/** + * @hide + * @deprecated NV APIs are deprecated starting from Android U. + */ +@JavaDerive(toString=true) @VintfStability +parcelable NvWriteItem { + android.hardware.radio.modem.NvItem itemId; + String value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioCapability.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioCapability.aidl new file mode 100644 index 0000000000..bc3cfccde4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioCapability.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioCapability { + int session; + int phase; + int raf; + String logicalModemUuid; + int status; + const int PHASE_CONFIGURED = 0; + const int PHASE_START = 1; + const int PHASE_APPLY = 2; + const int PHASE_UNSOL_RSP = 3; + const int PHASE_FINISH = 4; + const int STATUS_NONE = 0; + const int STATUS_SUCCESS = 1; + const int STATUS_FAIL = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioState.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioState.aidl new file mode 100644 index 0000000000..3383fa4a97 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioState { + OFF = 0, + UNAVAILABLE = 1, + ON = 10, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ResetNvType.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ResetNvType.aidl new file mode 100644 index 0000000000..b4208b7754 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ResetNvType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ResetNvType { + RELOAD, + ERASE, + FACTORY_RESET, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.network/3/.hash new file mode 100644 index 0000000000..749da79668 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/.hash @@ -0,0 +1 @@ +c45c122528c07c449ea08f6eacaace17bb7abc38 diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl new file mode 100644 index 0000000000..667a8a770a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union AccessTechnologySpecificInfo { + boolean noinit; + android.hardware.radio.network.Cdma2000RegistrationInfo cdmaInfo; + android.hardware.radio.network.EutranRegistrationInfo eutranInfo; + android.hardware.radio.network.NrVopsInfo ngranNrVopsInfo; + boolean geranDtmSupported; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringInfo.aidl new file mode 100644 index 0000000000..67c9349e9e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringInfo.aidl @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable BarringInfo { + int serviceType; + int barringType; + @nullable android.hardware.radio.network.BarringTypeSpecificInfo barringTypeSpecificInfo; + const int BARRING_TYPE_NONE = 0; + const int BARRING_TYPE_CONDITIONAL = 1; + const int BARRING_TYPE_UNCONDITIONAL = 2; + const int SERVICE_TYPE_CS_SERVICE = 0; + const int SERVICE_TYPE_PS_SERVICE = 1; + const int SERVICE_TYPE_CS_VOICE = 2; + const int SERVICE_TYPE_MO_SIGNALLING = 3; + const int SERVICE_TYPE_MO_DATA = 4; + const int SERVICE_TYPE_CS_FALLBACK = 5; + const int SERVICE_TYPE_MMTEL_VOICE = 6; + const int SERVICE_TYPE_MMTEL_VIDEO = 7; + const int SERVICE_TYPE_EMERGENCY = 8; + const int SERVICE_TYPE_SMS = 9; + const int SERVICE_TYPE_OPERATOR_1 = 1001; + const int SERVICE_TYPE_OPERATOR_2 = 1002; + const int SERVICE_TYPE_OPERATOR_3 = 1003; + const int SERVICE_TYPE_OPERATOR_4 = 1004; + const int SERVICE_TYPE_OPERATOR_5 = 1005; + const int SERVICE_TYPE_OPERATOR_6 = 1006; + const int SERVICE_TYPE_OPERATOR_7 = 1007; + const int SERVICE_TYPE_OPERATOR_8 = 1008; + const int SERVICE_TYPE_OPERATOR_9 = 1009; + const int SERVICE_TYPE_OPERATOR_10 = 1010; + const int SERVICE_TYPE_OPERATOR_11 = 1011; + const int SERVICE_TYPE_OPERATOR_12 = 1012; + const int SERVICE_TYPE_OPERATOR_13 = 1013; + const int SERVICE_TYPE_OPERATOR_14 = 1014; + const int SERVICE_TYPE_OPERATOR_15 = 1015; + const int SERVICE_TYPE_OPERATOR_16 = 1016; + const int SERVICE_TYPE_OPERATOR_17 = 1017; + const int SERVICE_TYPE_OPERATOR_18 = 1018; + const int SERVICE_TYPE_OPERATOR_19 = 1019; + const int SERVICE_TYPE_OPERATOR_20 = 1020; + const int SERVICE_TYPE_OPERATOR_21 = 1021; + const int SERVICE_TYPE_OPERATOR_22 = 1022; + const int SERVICE_TYPE_OPERATOR_23 = 1023; + const int SERVICE_TYPE_OPERATOR_24 = 1024; + const int SERVICE_TYPE_OPERATOR_25 = 1025; + const int SERVICE_TYPE_OPERATOR_26 = 1026; + const int SERVICE_TYPE_OPERATOR_27 = 1027; + const int SERVICE_TYPE_OPERATOR_28 = 1028; + const int SERVICE_TYPE_OPERATOR_29 = 1029; + const int SERVICE_TYPE_OPERATOR_30 = 1030; + const int SERVICE_TYPE_OPERATOR_31 = 1031; + const int SERVICE_TYPE_OPERATOR_32 = 1032; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringTypeSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringTypeSpecificInfo.aidl new file mode 100644 index 0000000000..03369b91d4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringTypeSpecificInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable BarringTypeSpecificInfo { + int factor; + int timeSeconds; + boolean isBarred; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl new file mode 100644 index 0000000000..bc9c0baa24 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Cdma2000RegistrationInfo { + boolean cssSupported; + int roamingIndicator; + int systemIsInPrl; + int defaultRoamingIndicator; + const int PRL_INDICATOR_NOT_REGISTERED = (-1) /* -1 */; + const int PRL_INDICATOR_NOT_IN_PRL = 0; + const int PRL_INDICATOR_IN_PRL = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaRoamingType.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaRoamingType.aidl new file mode 100644 index 0000000000..84532e3842 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaRoamingType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CdmaRoamingType { + HOME_NETWORK, + AFFILIATED_ROAM, + ANY_ROAM, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaSignalStrength.aidl new file mode 100644 index 0000000000..94430a8760 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaSignalStrength.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSignalStrength { + int dbm; + int ecio; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellConnectionStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellConnectionStatus.aidl new file mode 100644 index 0000000000..3775a40e08 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellConnectionStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CellConnectionStatus { + NONE, + PRIMARY_SERVING, + SECONDARY_SERVING, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentity.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentity.aidl new file mode 100644 index 0000000000..ba27b39527 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentity.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union CellIdentity { + boolean noinit; + android.hardware.radio.network.CellIdentityGsm gsm; + android.hardware.radio.network.CellIdentityWcdma wcdma; + android.hardware.radio.network.CellIdentityTdscdma tdscdma; + android.hardware.radio.network.CellIdentityCdma cdma; + android.hardware.radio.network.CellIdentityLte lte; + android.hardware.radio.network.CellIdentityNr nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityCdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityCdma.aidl new file mode 100644 index 0000000000..63571bb533 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityCdma.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityCdma { + int networkId; + int systemId; + int baseStationId; + int longitude; + int latitude; + android.hardware.radio.network.OperatorInfo operatorNames; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityGsm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityGsm.aidl new file mode 100644 index 0000000000..5040f205b8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityGsm.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityGsm { + String mcc; + String mnc; + int lac; + int cid; + int arfcn; + byte bsic; + android.hardware.radio.network.OperatorInfo operatorNames; + String[] additionalPlmns; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityLte.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityLte.aidl new file mode 100644 index 0000000000..be7821d2d4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityLte.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityLte { + String mcc; + String mnc; + int ci; + int pci; + int tac; + int earfcn; + android.hardware.radio.network.OperatorInfo operatorNames; + int bandwidth; + String[] additionalPlmns; + @nullable android.hardware.radio.network.ClosedSubscriberGroupInfo csgInfo; + android.hardware.radio.network.EutranBands[] bands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityNr.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityNr.aidl new file mode 100644 index 0000000000..6f4f9a030a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityNr.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityNr { + String mcc; + String mnc; + long nci; + int pci; + int tac; + int nrarfcn; + android.hardware.radio.network.OperatorInfo operatorNames; + String[] additionalPlmns; + android.hardware.radio.network.NgranBands[] bands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityTdscdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityTdscdma.aidl new file mode 100644 index 0000000000..864a886553 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityTdscdma.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityTdscdma { + String mcc; + String mnc; + int lac; + int cid; + int cpid; + int uarfcn; + android.hardware.radio.network.OperatorInfo operatorNames; + String[] additionalPlmns; + @nullable android.hardware.radio.network.ClosedSubscriberGroupInfo csgInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityWcdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityWcdma.aidl new file mode 100644 index 0000000000..4e762777b9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityWcdma.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityWcdma { + String mcc; + String mnc; + int lac; + int cid; + int psc; + int uarfcn; + android.hardware.radio.network.OperatorInfo operatorNames; + String[] additionalPlmns; + @nullable android.hardware.radio.network.ClosedSubscriberGroupInfo csgInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfo.aidl new file mode 100644 index 0000000000..6bb31b0278 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfo { + boolean registered; + android.hardware.radio.network.CellConnectionStatus connectionStatus; + android.hardware.radio.network.CellInfoRatSpecificInfo ratSpecificInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoCdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoCdma.aidl new file mode 100644 index 0000000000..6d76a26b82 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoCdma.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoCdma { + android.hardware.radio.network.CellIdentityCdma cellIdentityCdma; + android.hardware.radio.network.CdmaSignalStrength signalStrengthCdma; + android.hardware.radio.network.EvdoSignalStrength signalStrengthEvdo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoGsm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoGsm.aidl new file mode 100644 index 0000000000..2074c2fee0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoGsm.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoGsm { + android.hardware.radio.network.CellIdentityGsm cellIdentityGsm; + android.hardware.radio.network.GsmSignalStrength signalStrengthGsm; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoLte.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoLte.aidl new file mode 100644 index 0000000000..aa3b31080b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoLte.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoLte { + android.hardware.radio.network.CellIdentityLte cellIdentityLte; + android.hardware.radio.network.LteSignalStrength signalStrengthLte; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoNr.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoNr.aidl new file mode 100644 index 0000000000..a8f49afd67 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoNr.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoNr { + android.hardware.radio.network.CellIdentityNr cellIdentityNr; + android.hardware.radio.network.NrSignalStrength signalStrengthNr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl new file mode 100644 index 0000000000..fd3239dbd8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union CellInfoRatSpecificInfo { + android.hardware.radio.network.CellInfoGsm gsm; + android.hardware.radio.network.CellInfoWcdma wcdma; + android.hardware.radio.network.CellInfoTdscdma tdscdma; + android.hardware.radio.network.CellInfoLte lte; + android.hardware.radio.network.CellInfoNr nr; + android.hardware.radio.network.CellInfoCdma cdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoTdscdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoTdscdma.aidl new file mode 100644 index 0000000000..1a03f341d6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoTdscdma.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoTdscdma { + android.hardware.radio.network.CellIdentityTdscdma cellIdentityTdscdma; + android.hardware.radio.network.TdscdmaSignalStrength signalStrengthTdscdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoWcdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoWcdma.aidl new file mode 100644 index 0000000000..d02824d9a7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoWcdma.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoWcdma { + android.hardware.radio.network.CellIdentityWcdma cellIdentityWcdma; + android.hardware.radio.network.WcdmaSignalStrength signalStrengthWcdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifier.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifier.aidl new file mode 100644 index 0000000000..d38494f6a1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifier.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CellularIdentifier { + UNKNOWN = 0, + IMSI = 1, + IMEI = 2, + SUCI = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifierDisclosure.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifierDisclosure.aidl new file mode 100644 index 0000000000..cb542e860c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifierDisclosure.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellularIdentifierDisclosure { + String plmn; + android.hardware.radio.network.CellularIdentifier identifier; + android.hardware.radio.network.NasProtocolMessage protocolMessage; + boolean isEmergency; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ClosedSubscriberGroupInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ClosedSubscriberGroupInfo.aidl new file mode 100644 index 0000000000..b9e6f82f17 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ClosedSubscriberGroupInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ClosedSubscriberGroupInfo { + boolean csgIndication; + String homeNodebName; + int csgIdentity; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ConnectionEvent.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ConnectionEvent.aidl new file mode 100644 index 0000000000..1529512695 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ConnectionEvent.aidl @@ -0,0 +1,54 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ConnectionEvent { + CS_SIGNALLING_GSM = 0, + PS_SIGNALLING_GPRS = 1, + CS_SIGNALLING_3G = 2, + PS_SIGNALLING_3G = 3, + NAS_SIGNALLING_LTE = 4, + AS_SIGNALLING_LTE = 5, + VOLTE_SIP = 6, + VOLTE_SIP_SOS = 7, + VOLTE_RTP = 8, + VOLTE_RTP_SOS = 9, + NAS_SIGNALLING_5G = 10, + AS_SIGNALLING_5G = 11, + VONR_SIP = 12, + VONR_SIP_SOS = 13, + VONR_RTP = 14, + VONR_RTP_SOS = 15, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Domain.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Domain.aidl new file mode 100644 index 0000000000..0de7e20855 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Domain.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum Domain { + CS = (1 << 0) /* 1 */, + PS = (1 << 1) /* 2 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyMode.aidl new file mode 100644 index 0000000000..c5b067e38b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EmergencyMode { + EMERGENCY_WWAN = 1, + EMERGENCY_WLAN = 2, + EMERGENCY_CALLBACK = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyNetworkScanTrigger.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyNetworkScanTrigger.aidl new file mode 100644 index 0000000000..471c7a0a93 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyNetworkScanTrigger.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EmergencyNetworkScanTrigger { + android.hardware.radio.AccessNetwork[] accessNetwork; + android.hardware.radio.network.EmergencyScanType scanType; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyRegResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyRegResult.aidl new file mode 100644 index 0000000000..3b8083dacc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyRegResult.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EmergencyRegResult { + android.hardware.radio.AccessNetwork accessNetwork; + android.hardware.radio.network.RegState regState; + android.hardware.radio.network.Domain emcDomain; + boolean isVopsSupported; + boolean isEmcBearerSupported; + byte nwProvidedEmc; + byte nwProvidedEmf; + String mcc = ""; + String mnc = ""; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyScanType.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyScanType.aidl new file mode 100644 index 0000000000..0681a73005 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyScanType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EmergencyScanType { + NO_PREFERENCE = 0, + LIMITED_SERVICE = 1, + FULL_SERVICE = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranBands.aidl new file mode 100644 index 0000000000..82257ecffe --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranBands.aidl @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EutranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_4 = 4, + BAND_5 = 5, + BAND_6 = 6, + BAND_7 = 7, + BAND_8 = 8, + BAND_9 = 9, + BAND_10 = 10, + BAND_11 = 11, + BAND_12 = 12, + BAND_13 = 13, + BAND_14 = 14, + BAND_17 = 17, + BAND_18 = 18, + BAND_19 = 19, + BAND_20 = 20, + BAND_21 = 21, + BAND_22 = 22, + BAND_23 = 23, + BAND_24 = 24, + BAND_25 = 25, + BAND_26 = 26, + BAND_27 = 27, + BAND_28 = 28, + BAND_30 = 30, + BAND_31 = 31, + BAND_33 = 33, + BAND_34 = 34, + BAND_35 = 35, + BAND_36 = 36, + BAND_37 = 37, + BAND_38 = 38, + BAND_39 = 39, + BAND_40 = 40, + BAND_41 = 41, + BAND_42 = 42, + BAND_43 = 43, + BAND_44 = 44, + BAND_45 = 45, + BAND_46 = 46, + BAND_47 = 47, + BAND_48 = 48, + BAND_65 = 65, + BAND_66 = 66, + BAND_68 = 68, + BAND_70 = 70, + BAND_49 = 49, + BAND_50 = 50, + BAND_51 = 51, + BAND_52 = 52, + BAND_53 = 53, + BAND_71 = 71, + BAND_72 = 72, + BAND_73 = 73, + BAND_74 = 74, + BAND_85 = 85, + BAND_87 = 87, + BAND_88 = 88, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranRegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranRegistrationInfo.aidl new file mode 100644 index 0000000000..bb34fe10d7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranRegistrationInfo.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EutranRegistrationInfo { + android.hardware.radio.network.LteVopsInfo lteVopsInfo; + android.hardware.radio.network.NrIndicators nrIndicators; + android.hardware.radio.network.EutranRegistrationInfo.AttachResultType lteAttachResultType; + int extraInfo; + const int EXTRA_CSFB_NOT_PREFERRED = (1 << 0) /* 1 */; + const int EXTRA_SMS_ONLY = (1 << 1) /* 2 */; + enum AttachResultType { + NONE, + EPS_ONLY, + COMBINED, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EvdoSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EvdoSignalStrength.aidl new file mode 100644 index 0000000000..e97e17dab3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EvdoSignalStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EvdoSignalStrength { + int dbm; + int ecio; + int signalNoiseRatio; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GeranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GeranBands.aidl new file mode 100644 index 0000000000..ee0d419060 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GeranBands.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum GeranBands { + BAND_T380 = 1, + BAND_T410 = 2, + BAND_450 = 3, + BAND_480 = 4, + BAND_710 = 5, + BAND_750 = 6, + BAND_T810 = 7, + BAND_850 = 8, + BAND_P900 = 9, + BAND_E900 = 10, + BAND_R900 = 11, + BAND_DCS1800 = 12, + BAND_PCS1900 = 13, + BAND_ER900 = 14, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GsmSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GsmSignalStrength.aidl new file mode 100644 index 0000000000..65847ef93f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GsmSignalStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable GsmSignalStrength { + int signalStrength; + int bitErrorRate; + int timingAdvance; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetwork.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetwork.aidl new file mode 100644 index 0000000000..8af617f6fc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetwork.aidl @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@VintfStability +interface IRadioNetwork { + oneway void getAllowedNetworkTypesBitmap(in int serial); + oneway void getAvailableBandModes(in int serial); + oneway void getAvailableNetworks(in int serial); + oneway void getBarringInfo(in int serial); + oneway void getCdmaRoamingPreference(in int serial); + oneway void getCellInfoList(in int serial); + oneway void getDataRegistrationState(in int serial); + /** + * @deprecated Deprecated starting from Android U. + */ + oneway void getImsRegistrationState(in int serial); + oneway void getNetworkSelectionMode(in int serial); + oneway void getOperator(in int serial); + oneway void getSignalStrength(in int serial); + oneway void getSystemSelectionChannels(in int serial); + oneway void getVoiceRadioTechnology(in int serial); + oneway void getVoiceRegistrationState(in int serial); + oneway void isNrDualConnectivityEnabled(in int serial); + oneway void responseAcknowledgement(); + oneway void setAllowedNetworkTypesBitmap(in int serial, in int networkTypeBitmap); + oneway void setBandMode(in int serial, in android.hardware.radio.network.RadioBandMode mode); + oneway void setBarringPassword(in int serial, in String facility, in String oldPassword, in String newPassword); + oneway void setCdmaRoamingPreference(in int serial, in android.hardware.radio.network.CdmaRoamingType type); + oneway void setCellInfoListRate(in int serial, in int rate); + oneway void setIndicationFilter(in int serial, in int indicationFilter); + oneway void setLinkCapacityReportingCriteria(in int serial, in int hysteresisMs, in int hysteresisDlKbps, in int hysteresisUlKbps, in int[] thresholdsDownlinkKbps, in int[] thresholdsUplinkKbps, in android.hardware.radio.AccessNetwork accessNetwork); + oneway void setLocationUpdates(in int serial, in boolean enable); + oneway void setNetworkSelectionModeAutomatic(in int serial); + oneway void setNetworkSelectionModeManual(in int serial, in String operatorNumeric, in android.hardware.radio.AccessNetwork ran); + oneway void setNrDualConnectivityState(in int serial, in android.hardware.radio.network.NrDualConnectivityState nrDualConnectivityState); + oneway void setResponseFunctions(in android.hardware.radio.network.IRadioNetworkResponse radioNetworkResponse, in android.hardware.radio.network.IRadioNetworkIndication radioNetworkIndication); + oneway void setSignalStrengthReportingCriteria(in int serial, in android.hardware.radio.network.SignalThresholdInfo[] signalThresholdInfos); + oneway void setSuppServiceNotifications(in int serial, in boolean enable); + oneway void setSystemSelectionChannels(in int serial, in boolean specifyChannels, in android.hardware.radio.network.RadioAccessSpecifier[] specifiers); + oneway void startNetworkScan(in int serial, in android.hardware.radio.network.NetworkScanRequest request); + oneway void stopNetworkScan(in int serial); + oneway void supplyNetworkDepersonalization(in int serial, in String netPin); + oneway void setUsageSetting(in int serial, in android.hardware.radio.network.UsageSetting usageSetting); + oneway void getUsageSetting(in int serial); + oneway void setEmergencyMode(int serial, in android.hardware.radio.network.EmergencyMode emcModeType); + oneway void triggerEmergencyNetworkScan(int serial, in android.hardware.radio.network.EmergencyNetworkScanTrigger request); + oneway void cancelEmergencyNetworkScan(int serial, boolean resetScan); + oneway void exitEmergencyMode(in int serial); + oneway void setNullCipherAndIntegrityEnabled(in int serial, in boolean enabled); + oneway void isNullCipherAndIntegrityEnabled(in int serial); + oneway void isN1ModeEnabled(in int serial); + oneway void setN1ModeEnabled(in int serial, boolean enable); + oneway void isCellularIdentifierTransparencyEnabled(in int serial); + oneway void setCellularIdentifierTransparencyEnabled(in int serial, in boolean enabled); + oneway void setSecurityAlgorithmsUpdatedEnabled(in int serial, boolean enable); + oneway void isSecurityAlgorithmsUpdatedEnabled(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkIndication.aidl new file mode 100644 index 0000000000..8eea14f422 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkIndication.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@VintfStability +interface IRadioNetworkIndication { + oneway void barringInfoChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellIdentity cellIdentity, in android.hardware.radio.network.BarringInfo[] barringInfos); + oneway void cdmaPrlChanged(in android.hardware.radio.RadioIndicationType type, in int version); + oneway void cellInfoList(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellInfo[] records); + oneway void currentLinkCapacityEstimate(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.LinkCapacityEstimate lce); + oneway void currentPhysicalChannelConfigs(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.PhysicalChannelConfig[] configs); + oneway void currentSignalStrength(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.SignalStrength signalStrength); + oneway void imsNetworkStateChanged(in android.hardware.radio.RadioIndicationType type); + oneway void networkScanResult(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.NetworkScanResult result); + oneway void networkStateChanged(in android.hardware.radio.RadioIndicationType type); + oneway void nitzTimeReceived(in android.hardware.radio.RadioIndicationType type, in String nitzTime, in long receivedTimeMs, in long ageMs); + oneway void registrationFailed(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellIdentity cellIdentity, in String chosenPlmn, in int domain, in int causeCode, in int additionalCauseCode); + oneway void restrictedStateChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.PhoneRestrictedState state); + oneway void suppSvcNotify(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.SuppSvcNotification suppSvc); + oneway void voiceRadioTechChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.RadioTechnology rat); + oneway void emergencyNetworkScanResult(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.EmergencyRegResult result); + oneway void cellularIdentifierDisclosed(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellularIdentifierDisclosure disclosure); + oneway void securityAlgorithmsUpdated(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.SecurityAlgorithmUpdate securityAlgorithmUpdate); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkResponse.aidl new file mode 100644 index 0000000000..e7f291879a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkResponse.aidl @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@VintfStability +interface IRadioNetworkResponse { + oneway void acknowledgeRequest(in int serial); + oneway void getAllowedNetworkTypesBitmapResponse(in android.hardware.radio.RadioResponseInfo info, in int networkTypeBitmap); + oneway void getAvailableBandModesResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RadioBandMode[] bandModes); + oneway void getAvailableNetworksResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.OperatorInfo[] networkInfos); + oneway void getBarringInfoResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CellIdentity cellIdentity, in android.hardware.radio.network.BarringInfo[] barringInfos); + oneway void getCdmaRoamingPreferenceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CdmaRoamingType type); + oneway void getCellInfoListResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CellInfo[] cellInfo); + oneway void getDataRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RegStateResult dataRegResponse); + /** + * @deprecated Deprecated starting from Android U. + */ + oneway void getImsRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isRegistered, in android.hardware.radio.RadioTechnologyFamily ratFamily); + oneway void getNetworkSelectionModeResponse(in android.hardware.radio.RadioResponseInfo info, in boolean manual); + oneway void getOperatorResponse(in android.hardware.radio.RadioResponseInfo info, in String longName, in String shortName, in String numeric); + oneway void getSignalStrengthResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.SignalStrength signalStrength); + oneway void getSystemSelectionChannelsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RadioAccessSpecifier[] specifiers); + oneway void getVoiceRadioTechnologyResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioTechnology rat); + oneway void getVoiceRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RegStateResult voiceRegResponse); + oneway void isNrDualConnectivityEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); + oneway void setAllowedNetworkTypesBitmapResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setBandModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setBarringPasswordResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaRoamingPreferenceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCellInfoListRateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setIndicationFilterResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setLinkCapacityReportingCriteriaResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setLocationUpdatesResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNetworkSelectionModeAutomaticResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNetworkSelectionModeManualResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNrDualConnectivityStateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSignalStrengthReportingCriteriaResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSuppServiceNotificationsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSystemSelectionChannelsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void stopNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void supplyNetworkDepersonalizationResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void setUsageSettingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getUsageSettingResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.UsageSetting usageSetting); + oneway void setEmergencyModeResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.EmergencyRegResult regState); + oneway void triggerEmergencyNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void exitEmergencyModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void cancelEmergencyNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNullCipherAndIntegrityEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void isNullCipherAndIntegrityEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); + oneway void isN1ModeEnabledResponse(in android.hardware.radio.RadioResponseInfo info, boolean isEnabled); + oneway void setN1ModeEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void isCellularIdentifierTransparencyEnabledResponse(in android.hardware.radio.RadioResponseInfo info, boolean isEnabled); + oneway void setCellularIdentifierTransparencyEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSecurityAlgorithmsUpdatedEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void isSecurityAlgorithmsUpdatedEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IndicationFilter.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IndicationFilter.aidl new file mode 100644 index 0000000000..7847fbe4c3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IndicationFilter.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum IndicationFilter { + NONE = 0, + ALL = (~0) /* -1 */, + SIGNAL_STRENGTH = (1 << 0) /* 1 */, + FULL_NETWORK_STATE = (1 << 1) /* 2 */, + DATA_CALL_DORMANCY_CHANGED = (1 << 2) /* 4 */, + LINK_CAPACITY_ESTIMATE = (1 << 3) /* 8 */, + PHYSICAL_CHANNEL_CONFIG = (1 << 4) /* 16 */, + REGISTRATION_FAILURE = (1 << 5) /* 32 */, + BARRING_INFO = (1 << 6) /* 64 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LceDataInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LceDataInfo.aidl new file mode 100644 index 0000000000..6dc6d3ecc6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LceDataInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LceDataInfo { + int lastHopCapacityKbps; + byte confidenceLevel; + boolean lceSuspended; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LinkCapacityEstimate.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LinkCapacityEstimate.aidl new file mode 100644 index 0000000000..3fc4b5c5cd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LinkCapacityEstimate.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LinkCapacityEstimate { + int downlinkCapacityKbps; + int uplinkCapacityKbps; + int secondaryDownlinkCapacityKbps; + int secondaryUplinkCapacityKbps; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteSignalStrength.aidl new file mode 100644 index 0000000000..eb2ca28e13 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteSignalStrength.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LteSignalStrength { + int signalStrength; + int rsrp; + int rsrq; + int rssnr; + int cqi; + int timingAdvance; + int cqiTableIndex; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteVopsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteVopsInfo.aidl new file mode 100644 index 0000000000..f8d3aa1907 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteVopsInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LteVopsInfo { + boolean isVopsSupported; + boolean isEmcBearerSupported; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NasProtocolMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NasProtocolMessage.aidl new file mode 100644 index 0000000000..4fbc802873 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NasProtocolMessage.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum NasProtocolMessage { + UNKNOWN = 0, + ATTACH_REQUEST = 1, + IDENTITY_RESPONSE = 2, + DETACH_REQUEST = 3, + TRACKING_AREA_UPDATE_REQUEST = 4, + LOCATION_UPDATE_REQUEST = 5, + AUTHENTICATION_AND_CIPHERING_RESPONSE = 6, + REGISTRATION_REQUEST = 7, + DEREGISTRATION_REQUEST = 8, + CM_REESTABLISHMENT_REQUEST = 9, + CM_SERVICE_REQUEST = 10, + IMSI_DETACH_INDICATION = 11, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanRequest.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanRequest.aidl new file mode 100644 index 0000000000..60eaf777a1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanRequest.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NetworkScanRequest { + int type; + int interval; + android.hardware.radio.network.RadioAccessSpecifier[] specifiers; + int maxSearchTime; + boolean incrementalResults; + int incrementalResultsPeriodicity; + String[] mccMncs; + const int RADIO_ACCESS_SPECIFIER_MAX_SIZE = 8; + const int INCREMENTAL_RESULTS_PREIODICITY_RANGE_MIN = 1; + const int INCREMENTAL_RESULTS_PREIODICITY_RANGE_MAX = 10; + const int MAX_SEARCH_TIME_RANGE_MIN = 60; + const int MAX_SEARCH_TIME_RANGE_MAX = 3600; + const int SCAN_INTERVAL_RANGE_MIN = 5; + const int SCAN_INTERVAL_RANGE_MAX = 300; + const int SCAN_TYPE_ONE_SHOT = 0; + const int SCAN_TYPE_PERIODIC = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanResult.aidl new file mode 100644 index 0000000000..695a194485 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanResult.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NetworkScanResult { + int status; + android.hardware.radio.RadioError error; + android.hardware.radio.network.CellInfo[] networkInfos; + const int SCAN_STATUS_PARTIAL = 1; + const int SCAN_STATUS_COMPLETE = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NgranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NgranBands.aidl new file mode 100644 index 0000000000..fb939df072 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NgranBands.aidl @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum NgranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_5 = 5, + BAND_7 = 7, + BAND_8 = 8, + BAND_12 = 12, + BAND_14 = 14, + BAND_18 = 18, + BAND_20 = 20, + BAND_25 = 25, + BAND_26 = 26, + BAND_28 = 28, + BAND_29 = 29, + BAND_30 = 30, + BAND_34 = 34, + BAND_38 = 38, + BAND_39 = 39, + BAND_40 = 40, + BAND_41 = 41, + BAND_46 = 46, + BAND_48 = 48, + BAND_50 = 50, + BAND_51 = 51, + BAND_53 = 53, + BAND_65 = 65, + BAND_66 = 66, + BAND_70 = 70, + BAND_71 = 71, + BAND_74 = 74, + BAND_75 = 75, + BAND_76 = 76, + BAND_77 = 77, + BAND_78 = 78, + BAND_79 = 79, + BAND_80 = 80, + BAND_81 = 81, + BAND_82 = 82, + BAND_83 = 83, + BAND_84 = 84, + BAND_86 = 86, + BAND_89 = 89, + BAND_90 = 90, + BAND_91 = 91, + BAND_92 = 92, + BAND_93 = 93, + BAND_94 = 94, + BAND_95 = 95, + BAND_96 = 96, + BAND_257 = 257, + BAND_258 = 258, + BAND_260 = 260, + BAND_261 = 261, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrDualConnectivityState.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrDualConnectivityState.aidl new file mode 100644 index 0000000000..7af15a7ca8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrDualConnectivityState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="byte") @JavaDerive(toString=true) @VintfStability +enum NrDualConnectivityState { + ENABLE = 1, + DISABLE = 2, + DISABLE_IMMEDIATE = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrIndicators.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrIndicators.aidl new file mode 100644 index 0000000000..efcd6d3047 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrIndicators.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NrIndicators { + boolean isEndcAvailable; + boolean isDcNrRestricted; + boolean isNrAvailable; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrSignalStrength.aidl new file mode 100644 index 0000000000..11e7356a44 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrSignalStrength.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NrSignalStrength { + int ssRsrp; + int ssRsrq; + int ssSinr; + int csiRsrp; + int csiRsrq; + int csiSinr; + int csiCqiTableIndex; + byte[] csiCqiReport; + int timingAdvance = 0x7FFFFFFF; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrVopsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrVopsInfo.aidl new file mode 100644 index 0000000000..61146aa6e2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrVopsInfo.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NrVopsInfo { + byte vopsSupported; + byte emcSupported; + byte emfSupported; + const byte EMC_INDICATOR_NOT_SUPPORTED = 0; + const byte EMC_INDICATOR_NR_CONNECTED_TO_5GCN = 1; + const byte EMC_INDICATOR_EUTRA_CONNECTED_TO_5GCN = 2; + const byte EMC_INDICATOR_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3; + const byte EMF_INDICATOR_NOT_SUPPORTED = 0; + const byte EMF_INDICATOR_NR_CONNECTED_TO_5GCN = 1; + const byte EMF_INDICATOR_EUTRA_CONNECTED_TO_5GCN = 2; + const byte EMF_INDICATOR_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3; + const byte VOPS_INDICATOR_VOPS_NOT_SUPPORTED = 0; + const byte VOPS_INDICATOR_VOPS_OVER_3GPP = 1; + const byte VOPS_INDICATOR_VOPS_OVER_NON_3GPP = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/OperatorInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/OperatorInfo.aidl new file mode 100644 index 0000000000..abe2bea223 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/OperatorInfo.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable OperatorInfo { + String alphaLong; + String alphaShort; + String operatorNumeric; + int status; + const int STATUS_UNKNOWN = 0; + const int STATUS_AVAILABLE = 1; + const int STATUS_CURRENT = 2; + const int STATUS_FORBIDDEN = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhoneRestrictedState.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhoneRestrictedState.aidl new file mode 100644 index 0000000000..44cab0e000 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhoneRestrictedState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum PhoneRestrictedState { + NONE = 0x00, + CS_EMERGENCY = 0x01, + CS_NORMAL = 0x02, + CS_ALL = 0x04, + PS_ALL = 0x10, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfig.aidl new file mode 100644 index 0000000000..7d64f7e92e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfig.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PhysicalChannelConfig { + android.hardware.radio.network.CellConnectionStatus status; + android.hardware.radio.RadioTechnology rat; + int downlinkChannelNumber; + int uplinkChannelNumber; + int cellBandwidthDownlinkKhz; + int cellBandwidthUplinkKhz; + int[] contextIds; + int physicalCellId; + android.hardware.radio.network.PhysicalChannelConfigBand band; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfigBand.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfigBand.aidl new file mode 100644 index 0000000000..2e50e67627 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfigBand.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union PhysicalChannelConfigBand { + boolean noinit; + android.hardware.radio.network.GeranBands geranBand; + android.hardware.radio.network.UtranBands utranBand; + android.hardware.radio.network.EutranBands eutranBand; + android.hardware.radio.network.NgranBands ngranBand; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifier.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifier.aidl new file mode 100644 index 0000000000..8229207359 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifier.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioAccessSpecifier { + android.hardware.radio.AccessNetwork accessNetwork; + android.hardware.radio.network.RadioAccessSpecifierBands bands; + int[] channels; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifierBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifierBands.aidl new file mode 100644 index 0000000000..9ba420e891 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifierBands.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union RadioAccessSpecifierBands { + boolean noinit; + android.hardware.radio.network.GeranBands[] geranBands; + android.hardware.radio.network.UtranBands[] utranBands; + android.hardware.radio.network.EutranBands[] eutranBands; + android.hardware.radio.network.NgranBands[] ngranBands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioBandMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioBandMode.aidl new file mode 100644 index 0000000000..6058e30696 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioBandMode.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioBandMode { + BAND_MODE_UNSPECIFIED, + BAND_MODE_EURO, + BAND_MODE_USA, + BAND_MODE_JPN, + BAND_MODE_AUS, + BAND_MODE_AUS_2, + BAND_MODE_CELL_800, + BAND_MODE_PCS, + BAND_MODE_JTACS, + BAND_MODE_KOREA_PCS, + BAND_MODE_5_450M, + BAND_MODE_IMT2000, + BAND_MODE_7_700M_2, + BAND_MODE_8_1800M, + BAND_MODE_9_900M, + BAND_MODE_10_800M_2, + BAND_MODE_EURO_PAMR_400M, + BAND_MODE_AWS, + BAND_MODE_USA_2500M, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegState.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegState.aidl new file mode 100644 index 0000000000..f11b91114c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegState.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RegState { + NOT_REG_MT_NOT_SEARCHING_OP = 0, + REG_HOME = 1, + NOT_REG_MT_SEARCHING_OP = 2, + REG_DENIED = 3, + UNKNOWN = 4, + REG_ROAMING = 5, + NOT_REG_MT_NOT_SEARCHING_OP_EM = 10, + NOT_REG_MT_SEARCHING_OP_EM = 12, + REG_DENIED_EM = 13, + UNKNOWN_EM = 14, + REG_EM = 20, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegStateResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegStateResult.aidl new file mode 100644 index 0000000000..625d9702c8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegStateResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RegStateResult { + android.hardware.radio.network.RegState regState; + android.hardware.radio.RadioTechnology rat; + android.hardware.radio.network.RegistrationFailCause reasonForDenial; + android.hardware.radio.network.CellIdentity cellIdentity; + String registeredPlmn; + android.hardware.radio.network.AccessTechnologySpecificInfo accessTechnologySpecificInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegistrationFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegistrationFailCause.aidl new file mode 100644 index 0000000000..fcc079ec0f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegistrationFailCause.aidl @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RegistrationFailCause { + NONE = 0, + IMSI_UNKNOWN_IN_HLR = 2, + ILLEGAL_MS = 3, + IMSI_UNKNOWN_IN_VLR = 4, + IMEI_NOT_ACCEPTED = 5, + ILLEGAL_ME = 6, + GPRS_SERVICES_NOT_ALLOWED = 7, + GPRS_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 8, + MS_IDENTITY_CANNOT_BE_DERIVED_BY_NETWORK = 9, + IMPLICITLY_DETACHED = 10, + PLMN_NOT_ALLOWED = 11, + LOCATION_AREA_NOT_ALLOWED = 12, + ROAMING_NOT_ALLOWED = 13, + GPRS_SERVICES_NOT_ALLOWED_IN_PLMN = 14, + NO_SUITABLE_CELLS = 15, + /** + * @deprecated MSC_TEMPORARILY_NOT_REACHABLE value is wrong and should not be used. Use MSC_TEMP_NOT_REACHABLE instead. + */ + MSC_TEMPORARILY_NOT_REACHABLE = 15, + MSC_TEMP_NOT_REACHABLE = 16, + NETWORK_FAILURE = 17, + MAC_FAILURE = 20, + SYNC_FAILURE = 21, + CONGESTION = 22, + GSM_AUTHENTICATION_UNACCEPTABLE = 23, + NOT_AUTHORIZED_FOR_THIS_CSG = 25, + SMS_PROVIDED_BY_GPRS_IN_ROUTING_AREA, + SERVICE_OPTION_NOT_SUPPORTED = 32, + SERVICE_OPTION_NOT_SUBSCRIBED = 33, + SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER = 34, + CALL_CANNOT_BE_IDENTIFIED = 38, + NO_PDP_CONTEXT_ACTIVATED = 40, + RETRY_UPON_ENTRY_INTO_NEW_CELL_1 = 48, + RETRY_UPON_ENTRY_INTO_NEW_CELL_2 = 49, + RETRY_UPON_ENTRY_INTO_NEW_CELL_3 = 50, + RETRY_UPON_ENTRY_INTO_NEW_CELL_4 = 51, + RETRY_UPON_ENTRY_INTO_NEW_CELL_5 = 52, + RETRY_UPON_ENTRY_INTO_NEW_CELL_6 = 53, + RETRY_UPON_ENTRY_INTO_NEW_CELL_7 = 54, + RETRY_UPON_ENTRY_INTO_NEW_CELL_8 = 55, + RETRY_UPON_ENTRY_INTO_NEW_CELL_9 = 56, + RETRY_UPON_ENTRY_INTO_NEW_CELL_10 = 57, + RETRY_UPON_ENTRY_INTO_NEW_CELL_11 = 58, + RETRY_UPON_ENTRY_INTO_NEW_CELL_12 = 59, + RETRY_UPON_ENTRY_INTO_NEW_CELL_13 = 60, + RETRY_UPON_ENTRY_INTO_NEW_CELL_14 = 61, + RETRY_UPON_ENTRY_INTO_NEW_CELL_15 = 62, + RETRY_UPON_ENTRY_INTO_NEW_CELL_16 = 63, + SEMANTICALLY_INCORRECT_MESSAGE = 95, + INVALID_MANDATORY_INFORMATION = 96, + MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97, + MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99, + CONDITIONAL_IE_ERROR = 100, + MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + PROTOCOL_ERROR_UNSPECIFIED = 111, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithm.aidl new file mode 100644 index 0000000000..c3333bf190 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -0,0 +1,81 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SecurityAlgorithm { + A50 = 0, + A51 = 1, + A52 = 2, + A53 = 3, + A54 = 4, + GEA0 = 14, + GEA1 = 15, + GEA2 = 16, + GEA3 = 17, + GEA4 = 18, + GEA5 = 19, + UEA0 = 29, + UEA1 = 30, + UEA2 = 31, + EEA0 = 41, + EEA1 = 42, + EEA2 = 43, + EEA3 = 44, + NEA0 = 55, + NEA1 = 56, + NEA2 = 57, + NEA3 = 58, + SIP_NO_IPSEC_CONFIG = 66, + IMS_NULL = 67, + SIP_NULL = 68, + AES_GCM = 69, + AES_GMAC = 70, + AES_CBC = 71, + DES_EDE3_CBC = 72, + AES_EDE3_CBC = 73, + HMAC_SHA1_96 = 74, + HMAC_MD5_96 = 75, + RTP = 85, + SRTP_NULL = 86, + SRTP_AES_COUNTER = 87, + SRTP_AES_F8 = 88, + SRTP_HMAC_SHA1 = 89, + ENCR_AES_GCM_16 = 99, + ENCR_AES_CBC = 100, + AUTH_HMAC_SHA2_256_128 = 101, + UNKNOWN = 113, + OTHER = 114, + ORYX = 124, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithmUpdate.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithmUpdate.aidl new file mode 100644 index 0000000000..73ad18083d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithmUpdate.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SecurityAlgorithmUpdate { + android.hardware.radio.network.ConnectionEvent connectionEvent; + android.hardware.radio.network.SecurityAlgorithm encryption; + android.hardware.radio.network.SecurityAlgorithm integrity; + boolean isUnprotectedEmergency; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalStrength.aidl new file mode 100644 index 0000000000..da7db9a2ae --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalStrength.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SignalStrength { + android.hardware.radio.network.GsmSignalStrength gsm; + android.hardware.radio.network.CdmaSignalStrength cdma; + android.hardware.radio.network.EvdoSignalStrength evdo; + android.hardware.radio.network.LteSignalStrength lte; + android.hardware.radio.network.TdscdmaSignalStrength tdscdma; + android.hardware.radio.network.WcdmaSignalStrength wcdma; + android.hardware.radio.network.NrSignalStrength nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalThresholdInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalThresholdInfo.aidl new file mode 100644 index 0000000000..77b4831359 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalThresholdInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SignalThresholdInfo { + int signalMeasurement; + int hysteresisMs; + int hysteresisDb; + int[] thresholds; + boolean isEnabled; + android.hardware.radio.AccessNetwork ran; + const int SIGNAL_MEASUREMENT_TYPE_RSSI = 1; + const int SIGNAL_MEASUREMENT_TYPE_RSCP = 2; + const int SIGNAL_MEASUREMENT_TYPE_RSRP = 3; + const int SIGNAL_MEASUREMENT_TYPE_RSRQ = 4; + const int SIGNAL_MEASUREMENT_TYPE_RSSNR = 5; + const int SIGNAL_MEASUREMENT_TYPE_SSRSRP = 6; + const int SIGNAL_MEASUREMENT_TYPE_SSRSRQ = 7; + const int SIGNAL_MEASUREMENT_TYPE_SSSINR = 8; + const int SIGNAL_MEASUREMENT_TYPE_ECNO = 9; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SuppSvcNotification.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SuppSvcNotification.aidl new file mode 100644 index 0000000000..5192eaea07 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SuppSvcNotification.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SuppSvcNotification { + boolean isMT; + int code; + int index; + int type; + String number; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/TdscdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/TdscdmaSignalStrength.aidl new file mode 100644 index 0000000000..fe209e5c77 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/TdscdmaSignalStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable TdscdmaSignalStrength { + int signalStrength; + int bitErrorRate; + int rscp; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UsageSetting.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UsageSetting.aidl new file mode 100644 index 0000000000..a6f4d132ae --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UsageSetting.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum UsageSetting { + VOICE_CENTRIC = 1, + DATA_CENTRIC = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UtranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UtranBands.aidl new file mode 100644 index 0000000000..977afe3d98 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UtranBands.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum UtranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_4 = 4, + BAND_5 = 5, + BAND_6 = 6, + BAND_7 = 7, + BAND_8 = 8, + BAND_9 = 9, + BAND_10 = 10, + BAND_11 = 11, + BAND_12 = 12, + BAND_13 = 13, + BAND_14 = 14, + BAND_19 = 19, + BAND_20 = 20, + BAND_21 = 21, + BAND_22 = 22, + BAND_25 = 25, + BAND_26 = 26, + BAND_A = 101, + BAND_B = 102, + BAND_C = 103, + BAND_D = 104, + BAND_E = 105, + BAND_F = 106, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/WcdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/WcdmaSignalStrength.aidl new file mode 100644 index 0000000000..b765ab6ddc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/WcdmaSignalStrength.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable WcdmaSignalStrength { + int signalStrength; + int bitErrorRate; + int rscp; + int ecno; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.sim/3/.hash new file mode 100644 index 0000000000..ddc2a2156c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/.hash @@ -0,0 +1 @@ +ea7be3035be8d4869237a6478d2e0bb0efcc1e87 diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/AppStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/AppStatus.aidl new file mode 100644 index 0000000000..898b616a2c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/AppStatus.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable AppStatus { + int appType; + int appState; + android.hardware.radio.sim.PersoSubstate persoSubstate; + String aidPtr; + String appLabelPtr; + boolean pin1Replaced; + android.hardware.radio.sim.PinState pin1; + android.hardware.radio.sim.PinState pin2; + const int APP_STATE_UNKNOWN = 0; + const int APP_STATE_DETECTED = 1; + const int APP_STATE_PIN = 2; + const int APP_STATE_PUK = 3; + const int APP_STATE_SUBSCRIPTION_PERSO = 4; + const int APP_STATE_READY = 5; + const int APP_TYPE_UNKNOWN = 0; + const int APP_TYPE_SIM = 1; + const int APP_TYPE_USIM = 2; + const int APP_TYPE_RUIM = 3; + const int APP_TYPE_CSIM = 4; + const int APP_TYPE_ISIM = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardPowerState.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardPowerState.aidl new file mode 100644 index 0000000000..066777aa5f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardPowerState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CardPowerState { + POWER_DOWN, + POWER_UP, + POWER_UP_PASS_THROUGH, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardStatus.aidl new file mode 100644 index 0000000000..1a9d621390 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardStatus.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CardStatus { + int cardState; + android.hardware.radio.sim.PinState universalPinState; + int gsmUmtsSubscriptionAppIndex; + int cdmaSubscriptionAppIndex; + int imsSubscriptionAppIndex; + android.hardware.radio.sim.AppStatus[] applications; + String atr; + String iccid; + String eid; + android.hardware.radio.config.SlotPortMapping slotMap; + android.hardware.radio.config.MultipleEnabledProfilesMode supportedMepMode = android.hardware.radio.config.MultipleEnabledProfilesMode.NONE; + const int STATE_ABSENT = 0; + const int STATE_PRESENT = 1; + const int STATE_ERROR = 2; + const int STATE_RESTRICTED = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Carrier.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Carrier.aidl new file mode 100644 index 0000000000..24fff2ee7c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Carrier.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Carrier { + String mcc; + String mnc; + int matchType; + String matchData; + const int MATCH_TYPE_ALL = 0; + const int MATCH_TYPE_SPN = 1; + const int MATCH_TYPE_IMSI_PREFIX = 2; + const int MATCH_TYPE_GID1 = 3; + const int MATCH_TYPE_GID2 = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierInfo.aidl new file mode 100644 index 0000000000..7d4a54b242 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierInfo.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CarrierInfo { + String mcc; + String mnc; + @nullable String spn; + @nullable String gid1; + @nullable String gid2; + @nullable String imsiPrefix; + @nullable List ehplmn; + @nullable String iccid; + @nullable String impi; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierRestrictions.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierRestrictions.aidl new file mode 100644 index 0000000000..a5b8dc96f6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierRestrictions.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CarrierRestrictions { + /** + * @deprecated use @List allowedCarrierInfoList + */ + android.hardware.radio.sim.Carrier[] allowedCarriers; + /** + * @deprecated use @List excludedCarrierInfoList + */ + android.hardware.radio.sim.Carrier[] excludedCarriers; + boolean allowedCarriersPrioritized; + android.hardware.radio.sim.CarrierRestrictions.CarrierRestrictionStatus status; + android.hardware.radio.sim.CarrierInfo[] allowedCarrierInfoList = {}; + android.hardware.radio.sim.CarrierInfo[] excludedCarrierInfoList = {}; + @Backing(type="int") @VintfStability + enum CarrierRestrictionStatus { + UNKNOWN = 0, + NOT_RESTRICTED = 1, + RESTRICTED = 2, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CdmaSubscriptionSource.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CdmaSubscriptionSource.aidl new file mode 100644 index 0000000000..13b06e7fdb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CdmaSubscriptionSource.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CdmaSubscriptionSource { + RUIM_SIM, + NV, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSim.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSim.aidl new file mode 100644 index 0000000000..1728e41010 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSim.aidl @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@VintfStability +interface IRadioSim { + oneway void areUiccApplicationsEnabled(in int serial); + oneway void changeIccPin2ForApp(in int serial, in String oldPin2, in String newPin2, in String aid); + oneway void changeIccPinForApp(in int serial, in String oldPin, in String newPin, in String aid); + oneway void enableUiccApplications(in int serial, in boolean enable); + oneway void getAllowedCarriers(in int serial); + oneway void getCdmaSubscription(in int serial); + oneway void getCdmaSubscriptionSource(in int serial); + oneway void getFacilityLockForApp(in int serial, in String facility, in String password, in int serviceClass, in String appId); + oneway void getIccCardStatus(in int serial); + oneway void getImsiForApp(in int serial, in String aid); + oneway void getSimPhonebookCapacity(in int serial); + oneway void getSimPhonebookRecords(in int serial); + /** + * @deprecated use iccCloseLogicalChannelWithSessionInfo instead. + */ + oneway void iccCloseLogicalChannel(in int serial, in int channelId); + oneway void iccIoForApp(in int serial, in android.hardware.radio.sim.IccIo iccIo); + oneway void iccOpenLogicalChannel(in int serial, in String aid, in int p2); + oneway void iccTransmitApduBasicChannel(in int serial, in android.hardware.radio.sim.SimApdu message); + oneway void iccTransmitApduLogicalChannel(in int serial, in android.hardware.radio.sim.SimApdu message); + oneway void reportStkServiceIsRunning(in int serial); + oneway void requestIccSimAuthentication(in int serial, in int authContext, in String authData, in String aid); + oneway void responseAcknowledgement(); + oneway void sendEnvelope(in int serial, in String contents); + oneway void sendEnvelopeWithStatus(in int serial, in String contents); + oneway void sendTerminalResponseToSim(in int serial, in String contents); + oneway void setAllowedCarriers(in int serial, in android.hardware.radio.sim.CarrierRestrictions carriers, in android.hardware.radio.sim.SimLockMultiSimPolicy multiSimPolicy); + oneway void setCarrierInfoForImsiEncryption(in int serial, in android.hardware.radio.sim.ImsiEncryptionInfo imsiEncryptionInfo); + oneway void setCdmaSubscriptionSource(in int serial, in android.hardware.radio.sim.CdmaSubscriptionSource cdmaSub); + oneway void setFacilityLockForApp(in int serial, in String facility, in boolean lockState, in String password, in int serviceClass, in String appId); + oneway void setResponseFunctions(in android.hardware.radio.sim.IRadioSimResponse radioSimResponse, in android.hardware.radio.sim.IRadioSimIndication radioSimIndication); + oneway void setSimCardPower(in int serial, in android.hardware.radio.sim.CardPowerState powerUp); + oneway void setUiccSubscription(in int serial, in android.hardware.radio.sim.SelectUiccSub uiccSub); + oneway void supplyIccPin2ForApp(in int serial, in String pin2, in String aid); + oneway void supplyIccPinForApp(in int serial, in String pin, in String aid); + oneway void supplyIccPuk2ForApp(in int serial, in String puk2, in String pin2, in String aid); + oneway void supplyIccPukForApp(in int serial, in String puk, in String pin, in String aid); + oneway void supplySimDepersonalization(in int serial, in android.hardware.radio.sim.PersoSubstate persoType, in String controlKey); + oneway void updateSimPhonebookRecords(in int serial, in android.hardware.radio.sim.PhonebookRecordInfo recordInfo); + oneway void iccCloseLogicalChannelWithSessionInfo(in int serial, in android.hardware.radio.sim.SessionInfo sessionInfo); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimIndication.aidl new file mode 100644 index 0000000000..a74b65acad --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimIndication.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@VintfStability +interface IRadioSimIndication { + oneway void carrierInfoForImsiEncryption(in android.hardware.radio.RadioIndicationType info); + oneway void cdmaSubscriptionSourceChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.sim.CdmaSubscriptionSource cdmaSource); + oneway void simPhonebookChanged(in android.hardware.radio.RadioIndicationType type); + oneway void simPhonebookRecordsReceived(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.sim.PbReceivedStatus status, in android.hardware.radio.sim.PhonebookRecordInfo[] records); + oneway void simRefresh(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.sim.SimRefreshResult refreshResult); + oneway void simStatusChanged(in android.hardware.radio.RadioIndicationType type); + oneway void stkEventNotify(in android.hardware.radio.RadioIndicationType type, in String cmd); + oneway void stkProactiveCommand(in android.hardware.radio.RadioIndicationType type, in String cmd); + oneway void stkSessionEnd(in android.hardware.radio.RadioIndicationType type); + oneway void subscriptionStatusChanged(in android.hardware.radio.RadioIndicationType type, in boolean activate); + oneway void uiccApplicationsEnablementChanged(in android.hardware.radio.RadioIndicationType type, in boolean enabled); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimResponse.aidl new file mode 100644 index 0000000000..c653847706 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimResponse.aidl @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@VintfStability +interface IRadioSimResponse { + oneway void acknowledgeRequest(in int serial); + oneway void areUiccApplicationsEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enabled); + oneway void changeIccPin2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void changeIccPinForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void enableUiccApplicationsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getAllowedCarriersResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CarrierRestrictions carriers, in android.hardware.radio.sim.SimLockMultiSimPolicy multiSimPolicy); + oneway void getCdmaSubscriptionResponse(in android.hardware.radio.RadioResponseInfo info, in String mdn, in String hSid, in String hNid, in String min, in String prl); + oneway void getCdmaSubscriptionSourceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CdmaSubscriptionSource source); + oneway void getFacilityLockForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int response); + oneway void getIccCardStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CardStatus cardStatus); + oneway void getImsiForAppResponse(in android.hardware.radio.RadioResponseInfo info, in String imsi); + oneway void getSimPhonebookCapacityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.PhonebookCapacity capacity); + oneway void getSimPhonebookRecordsResponse(in android.hardware.radio.RadioResponseInfo info); + /** + * @deprecated use iccCloseLogicalChannelWithSessionInfoResponse instead. + */ + oneway void iccCloseLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void iccIoForAppResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult iccIo); + oneway void iccOpenLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info, in int channelId, in byte[] selectResponse); + oneway void iccTransmitApduBasicChannelResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult result); + oneway void iccTransmitApduLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult result); + oneway void reportStkServiceIsRunningResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void requestIccSimAuthenticationResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult result); + oneway void sendEnvelopeResponse(in android.hardware.radio.RadioResponseInfo info, in String commandResponse); + oneway void sendEnvelopeWithStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult iccIo); + oneway void sendTerminalResponseToSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setAllowedCarriersResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCarrierInfoForImsiEncryptionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaSubscriptionSourceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setFacilityLockForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int retry); + oneway void setSimCardPowerResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setUiccSubscriptionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void supplyIccPin2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPinForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPuk2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPukForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplySimDepersonalizationResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.PersoSubstate persoType, in int remainingRetries); + oneway void updateSimPhonebookRecordsResponse(in android.hardware.radio.RadioResponseInfo info, in int updatedRecordIndex); + oneway void iccCloseLogicalChannelWithSessionInfoResponse(in android.hardware.radio.RadioResponseInfo info); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIo.aidl new file mode 100644 index 0000000000..661518d2eb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIo.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable IccIo { + int command; + int fileId; + String path; + int p1; + int p2; + int p3; + String data; + String pin2; + String aid; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIoResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIoResult.aidl new file mode 100644 index 0000000000..1e418cd2ab --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIoResult.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable IccIoResult { + int sw1; + int sw2; + String simResponse; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/ImsiEncryptionInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/ImsiEncryptionInfo.aidl new file mode 100644 index 0000000000..40722e5f79 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/ImsiEncryptionInfo.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImsiEncryptionInfo { + String mcc; + String mnc; + byte[] carrierKey; + String keyIdentifier; + long expirationTime; + byte keyType; + const byte PUBLIC_KEY_TYPE_EPDG = 1; + const byte PUBLIC_KEY_TYPE_WLAN = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PbReceivedStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PbReceivedStatus.aidl new file mode 100644 index 0000000000..aaf9f3eb50 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PbReceivedStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="byte") @JavaDerive(toString=true) @VintfStability +enum PbReceivedStatus { + PB_RECEIVED_OK = 1, + PB_RECEIVED_ERROR = 2, + PB_RECEIVED_ABORT = 3, + PB_RECEIVED_FINAL = 4, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PersoSubstate.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PersoSubstate.aidl new file mode 100644 index 0000000000..795230892c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PersoSubstate.aidl @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum PersoSubstate { + UNKNOWN, + IN_PROGRESS, + READY, + SIM_NETWORK, + SIM_NETWORK_SUBSET, + SIM_CORPORATE, + SIM_SERVICE_PROVIDER, + SIM_SIM, + SIM_NETWORK_PUK, + SIM_NETWORK_SUBSET_PUK, + SIM_CORPORATE_PUK, + SIM_SERVICE_PROVIDER_PUK, + SIM_SIM_PUK, + RUIM_NETWORK1, + RUIM_NETWORK2, + RUIM_HRPD, + RUIM_CORPORATE, + RUIM_SERVICE_PROVIDER, + RUIM_RUIM, + RUIM_NETWORK1_PUK, + RUIM_NETWORK2_PUK, + RUIM_HRPD_PUK, + RUIM_CORPORATE_PUK, + RUIM_SERVICE_PROVIDER_PUK, + RUIM_RUIM_PUK, + SIM_SPN, + SIM_SPN_PUK, + SIM_SP_EHPLMN, + SIM_SP_EHPLMN_PUK, + SIM_ICCID, + SIM_ICCID_PUK, + SIM_IMPI, + SIM_IMPI_PUK, + SIM_NS_SP, + SIM_NS_SP_PUK, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookCapacity.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookCapacity.aidl new file mode 100644 index 0000000000..b02068712e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookCapacity.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PhonebookCapacity { + int maxAdnRecords; + int usedAdnRecords; + int maxEmailRecords; + int usedEmailRecords; + int maxAdditionalNumberRecords; + int usedAdditionalNumberRecords; + int maxNameLen; + int maxNumberLen; + int maxEmailLen; + int maxAdditionalNumberLen; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookRecordInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookRecordInfo.aidl new file mode 100644 index 0000000000..1a6943bd53 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookRecordInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PhonebookRecordInfo { + int recordId; + String name; + String number; + String[] emails; + String[] additionalNumbers; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PinState.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PinState.aidl new file mode 100644 index 0000000000..924929b450 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PinState.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum PinState { + UNKNOWN, + ENABLED_NOT_VERIFIED, + ENABLED_VERIFIED, + DISABLED, + ENABLED_BLOCKED, + ENABLED_PERM_BLOCKED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Plmn.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Plmn.aidl new file mode 100644 index 0000000000..b29a4a76bd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Plmn.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Plmn { + String mcc; + String mnc; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SelectUiccSub.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SelectUiccSub.aidl new file mode 100644 index 0000000000..57ca2a5b14 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SelectUiccSub.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SelectUiccSub { + int slot; + int appIndex; + int subType; + int actStatus; + const int SUBSCRIPTION_TYPE_1 = 0; + const int SUBSCRIPTION_TYPE_2 = 1; + const int SUBSCRIPTION_TYPE_3 = 2; + const int ACT_STATUS_DEACTIVATE = 0; + const int ACT_STATUS_ACTIVATE = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SessionInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SessionInfo.aidl new file mode 100644 index 0000000000..5c81e3d77a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SessionInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SessionInfo { + int sessionId; + boolean isEs10 = false; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimApdu.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimApdu.aidl new file mode 100644 index 0000000000..45f6e48168 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimApdu.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SimApdu { + int sessionId; + int cla; + int instruction; + int p1; + int p2; + int p3; + String data; + boolean isEs10 = false; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimLockMultiSimPolicy.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimLockMultiSimPolicy.aidl new file mode 100644 index 0000000000..8cfe417c26 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimLockMultiSimPolicy.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SimLockMultiSimPolicy { + NO_MULTISIM_POLICY, + ONE_VALID_SIM_MUST_BE_PRESENT, + APPLY_TO_ALL_SLOTS, + APPLY_TO_ONLY_SLOT_1, + VALID_SIM_MUST_PRESENT_ON_SLOT_1, + ACTIVE_SERVICE_ON_SLOT_1_TO_UNBLOCK_OTHER_SLOTS, + ACTIVE_SERVICE_ON_ANY_SLOT_TO_UNBLOCK_OTHER_SLOTS, + ALL_SIMS_MUST_BE_VALID, + SLOT_POLICY_OTHER, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimRefreshResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimRefreshResult.aidl new file mode 100644 index 0000000000..81ba510c2f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimRefreshResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SimRefreshResult { + int type; + int efId; + String aid; + const int TYPE_SIM_FILE_UPDATE = 0; + const int TYPE_SIM_INIT = 1; + const int TYPE_SIM_RESET = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.voice/3/.hash new file mode 100644 index 0000000000..d3fb7e5e82 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/.hash @@ -0,0 +1 @@ +78fb79bcb32590a868b3eb7affb39ab90e4ca782 diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/AudioQuality.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/AudioQuality.aidl new file mode 100644 index 0000000000..8725c7fb5d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/AudioQuality.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum AudioQuality { + UNSPECIFIED, + AMR, + AMR_WB, + GSM_EFR, + GSM_FR, + GSM_HR, + EVRC, + EVRC_B, + EVRC_WB, + EVRC_NW, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Call.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Call.aidl new file mode 100644 index 0000000000..b45a45b110 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Call.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Call { + int state; + int index; + int toa; + boolean isMpty; + boolean isMT; + byte als; + boolean isVoice; + boolean isVoicePrivacy; + String number; + int numberPresentation; + String name; + int namePresentation; + android.hardware.radio.voice.UusInfo[] uusInfo; + android.hardware.radio.voice.AudioQuality audioQuality; + String forwardedNumber; + const int PRESENTATION_ALLOWED = 0; + const int PRESENTATION_RESTRICTED = 1; + const int PRESENTATION_UNKNOWN = 2; + const int PRESENTATION_PAYPHONE = 3; + const int STATE_ACTIVE = 0; + const int STATE_HOLDING = 1; + const int STATE_DIALING = 2; + const int STATE_ALERTING = 3; + const int STATE_INCOMING = 4; + const int STATE_WAITING = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CallForwardInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CallForwardInfo.aidl new file mode 100644 index 0000000000..51c87584ef --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CallForwardInfo.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CallForwardInfo { + int status; + int reason; + int serviceClass; + int toa; + String number; + int timeSeconds; + const int STATUS_DISABLE = 0; + const int STATUS_ENABLE = 1; + const int STATUS_INTERROGATE = 2; + const int STATUS_REGISTRATION = 3; + const int STATUS_ERASURE = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaCallWaiting.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaCallWaiting.aidl new file mode 100644 index 0000000000..0b36be4eba --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaCallWaiting.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaCallWaiting { + String number; + int numberPresentation; + String name; + android.hardware.radio.voice.CdmaSignalInfoRecord signalInfoRecord; + int numberType; + int numberPlan; + const int NUMBER_PLAN_UNKNOWN = 0; + const int NUMBER_PLAN_ISDN = 1; + const int NUMBER_PLAN_DATA = 3; + const int NUMBER_PLAN_TELEX = 4; + const int NUMBER_PLAN_NATIONAL = 8; + const int NUMBER_PLAN_PRIVATE = 9; + const int NUMBER_PRESENTATION_ALLOWED = 0; + const int NUMBER_PRESENTATION_RESTRICTED = 1; + const int NUMBER_PRESENTATION_UNKNOWN = 2; + const int NUMBER_TYPE_UNKNOWN = 0; + const int NUMBER_TYPE_INTERNATIONAL = 1; + const int NUMBER_TYPE_NATIONAL = 2; + const int NUMBER_TYPE_NETWORK_SPECIFIC = 3; + const int NUMBER_TYPE_SUBSCRIBER = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl new file mode 100644 index 0000000000..300b03f6da --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaDisplayInfoRecord { + String alphaBuf; + const int CDMA_ALPHA_INFO_BUFFER_LENGTH = 64; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaInformationRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaInformationRecord.aidl new file mode 100644 index 0000000000..2f7f5f05c9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaInformationRecord.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaInformationRecord { + int name; + android.hardware.radio.voice.CdmaDisplayInfoRecord[] display; + android.hardware.radio.voice.CdmaNumberInfoRecord[] number; + android.hardware.radio.voice.CdmaSignalInfoRecord[] signal; + android.hardware.radio.voice.CdmaRedirectingNumberInfoRecord[] redir; + android.hardware.radio.voice.CdmaLineControlInfoRecord[] lineCtrl; + android.hardware.radio.voice.CdmaT53ClirInfoRecord[] clir; + android.hardware.radio.voice.CdmaT53AudioControlInfoRecord[] audioCtrl; + const int CDMA_MAX_NUMBER_OF_INFO_RECS = 10; + const int NAME_DISPLAY = 0; + const int NAME_CALLED_PARTY_NUMBER = 1; + const int NAME_CALLING_PARTY_NUMBER = 2; + const int NAME_CONNECTED_NUMBER = 3; + const int NAME_SIGNAL = 4; + const int NAME_REDIRECTING_NUMBER = 5; + const int NAME_LINE_CONTROL = 6; + const int NAME_EXTENDED_DISPLAY = 7; + const int NAME_T53_CLIR = 8; + const int NAME_T53_RELEASE = 9; + const int NAME_T53_AUDIO_CONTROL = 10; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl new file mode 100644 index 0000000000..4e4a7ee7b7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaLineControlInfoRecord { + byte lineCtrlPolarityIncluded; + byte lineCtrlToggle; + byte lineCtrlReverse; + byte lineCtrlPowerDenial; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl new file mode 100644 index 0000000000..c3b0d5a442 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaNumberInfoRecord { + String number; + byte numberType; + byte numberPlan; + byte pi; + byte si; + const int CDMA_NUMBER_INFO_BUFFER_LENGTH = 81; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl new file mode 100644 index 0000000000..ae35fbad52 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CdmaOtaProvisionStatus { + SPL_UNLOCKED, + SPC_RETRIES_EXCEEDED, + A_KEY_EXCHANGED, + SSD_UPDATED, + NAM_DOWNLOADED, + MDN_DOWNLOADED, + IMSI_DOWNLOADED, + PRL_DOWNLOADED, + COMMITTED, + OTAPA_STARTED, + OTAPA_STOPPED, + OTAPA_ABORTED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl new file mode 100644 index 0000000000..93c7c6b065 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaRedirectingNumberInfoRecord { + android.hardware.radio.voice.CdmaNumberInfoRecord redirectingNumber; + int redirectingReason; + const int REDIRECTING_REASON_UNKNOWN = 0; + const int REDIRECTING_REASON_CALL_FORWARDING_BUSY = 1; + const int REDIRECTING_REASON_CALL_FORWARDING_NO_REPLY = 2; + const int REDIRECTING_REASON_CALLED_DTE_OUT_OF_ORDER = 9; + const int REDIRECTING_REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10; + const int REDIRECTING_REASON_CALL_FORWARDING_UNCONDITIONAL = 15; + const int REDIRECTING_REASON_RESERVED = 16; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl new file mode 100644 index 0000000000..69447b433a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSignalInfoRecord { + boolean isPresent; + byte signalType; + byte alertPitch; + byte signal; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl new file mode 100644 index 0000000000..69d79aa43b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaT53AudioControlInfoRecord { + byte upLink; + byte downLink; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl new file mode 100644 index 0000000000..83b6fb9af7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaT53ClirInfoRecord { + byte cause; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CfData.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CfData.aidl new file mode 100644 index 0000000000..fc811f2d73 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CfData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CfData { + android.hardware.radio.voice.CallForwardInfo[] cfInfo; + const int NUM_SERVICE_CLASSES = 7; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/ClipStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/ClipStatus.aidl new file mode 100644 index 0000000000..c38c8012fb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/ClipStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ClipStatus { + CLIP_PROVISIONED, + CLIP_UNPROVISIONED, + UNKNOWN, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Dial.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Dial.aidl new file mode 100644 index 0000000000..26041f0620 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Dial.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Dial { + String address; + int clir; + android.hardware.radio.voice.UusInfo[] uusInfo; + const int CLIR_DEFAULT = 0; + const int CLIR_INVOCATION = 1; + const int CLIR_SUPPRESSION = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyCallRouting.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyCallRouting.aidl new file mode 100644 index 0000000000..3099a20626 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyCallRouting.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EmergencyCallRouting { + UNKNOWN, + EMERGENCY, + NORMAL, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyNumber.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyNumber.aidl new file mode 100644 index 0000000000..2129f397e0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyNumber.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EmergencyNumber { + String number; + String mcc; + String mnc; + int categories; + String[] urns; + int sources; + const int SOURCE_NETWORK_SIGNALING = (1 << 0) /* 1 */; + const int SOURCE_SIM = (1 << 1) /* 2 */; + const int SOURCE_MODEM_CONFIG = (1 << 2) /* 4 */; + const int SOURCE_DEFAULT = (1 << 3) /* 8 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyServiceCategory.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyServiceCategory.aidl new file mode 100644 index 0000000000..819baf89f1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyServiceCategory.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EmergencyServiceCategory { + UNSPECIFIED = 0, + POLICE = (1 << 0) /* 1 */, + AMBULANCE = (1 << 1) /* 2 */, + FIRE_BRIGADE = (1 << 2) /* 4 */, + MARINE_GUARD = (1 << 3) /* 8 */, + MOUNTAIN_RESCUE = (1 << 4) /* 16 */, + MIEC = (1 << 5) /* 32 */, + AIEC = (1 << 6) /* 64 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoice.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoice.aidl new file mode 100644 index 0000000000..d0a9451a36 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoice.aidl @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@VintfStability +interface IRadioVoice { + oneway void acceptCall(in int serial); + oneway void cancelPendingUssd(in int serial); + oneway void conference(in int serial); + oneway void dial(in int serial, in android.hardware.radio.voice.Dial dialInfo); + oneway void emergencyDial(in int serial, in android.hardware.radio.voice.Dial dialInfo, in int categories, in String[] urns, in android.hardware.radio.voice.EmergencyCallRouting routing, in boolean hasKnownUserIntentEmergency, in boolean isTesting); + oneway void exitEmergencyCallbackMode(in int serial); + oneway void explicitCallTransfer(in int serial); + oneway void getCallForwardStatus(in int serial, in android.hardware.radio.voice.CallForwardInfo callInfo); + oneway void getCallWaiting(in int serial, in int serviceClass); + oneway void getClip(in int serial); + oneway void getClir(in int serial); + oneway void getCurrentCalls(in int serial); + oneway void getLastCallFailCause(in int serial); + oneway void getMute(in int serial); + oneway void getPreferredVoicePrivacy(in int serial); + oneway void getTtyMode(in int serial); + oneway void handleStkCallSetupRequestFromSim(in int serial, in boolean accept); + oneway void hangup(in int serial, in int gsmIndex); + oneway void hangupForegroundResumeBackground(in int serial); + oneway void hangupWaitingOrBackground(in int serial); + oneway void isVoNrEnabled(in int serial); + oneway void rejectCall(in int serial); + oneway void responseAcknowledgement(); + oneway void sendBurstDtmf(in int serial, in String dtmf, in int on, in int off); + oneway void sendCdmaFeatureCode(in int serial, in String featureCode); + oneway void sendDtmf(in int serial, in String s); + oneway void sendUssd(in int serial, in String ussd); + oneway void separateConnection(in int serial, in int gsmIndex); + oneway void setCallForward(in int serial, in android.hardware.radio.voice.CallForwardInfo callInfo); + oneway void setCallWaiting(in int serial, in boolean enable, in int serviceClass); + oneway void setClir(in int serial, in int status); + oneway void setMute(in int serial, in boolean enable); + oneway void setPreferredVoicePrivacy(in int serial, in boolean enable); + oneway void setResponseFunctions(in android.hardware.radio.voice.IRadioVoiceResponse radioVoiceResponse, in android.hardware.radio.voice.IRadioVoiceIndication radioVoiceIndication); + oneway void setTtyMode(in int serial, in android.hardware.radio.voice.TtyMode mode); + oneway void setVoNrEnabled(in int serial, in boolean enable); + oneway void startDtmf(in int serial, in String s); + oneway void stopDtmf(in int serial); + oneway void switchWaitingOrHoldingAndActive(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceIndication.aidl new file mode 100644 index 0000000000..4614ee1b39 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceIndication.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@VintfStability +interface IRadioVoiceIndication { + oneway void callRing(in android.hardware.radio.RadioIndicationType type, in boolean isGsm, in android.hardware.radio.voice.CdmaSignalInfoRecord record); + oneway void callStateChanged(in android.hardware.radio.RadioIndicationType type); + oneway void cdmaCallWaiting(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaCallWaiting callWaitingRecord); + oneway void cdmaInfoRec(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaInformationRecord[] records); + oneway void cdmaOtaProvisionStatus(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaOtaProvisionStatus status); + oneway void currentEmergencyNumberList(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.EmergencyNumber[] emergencyNumberList); + oneway void enterEmergencyCallbackMode(in android.hardware.radio.RadioIndicationType type); + oneway void exitEmergencyCallbackMode(in android.hardware.radio.RadioIndicationType type); + oneway void indicateRingbackTone(in android.hardware.radio.RadioIndicationType type, in boolean start); + oneway void onSupplementaryServiceIndication(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.StkCcUnsolSsResult ss); + oneway void onUssd(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.UssdModeType modeType, in String msg); + oneway void resendIncallMute(in android.hardware.radio.RadioIndicationType type); + oneway void srvccStateNotify(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.SrvccState state); + oneway void stkCallControlAlphaNotify(in android.hardware.radio.RadioIndicationType type, in String alpha); + oneway void stkCallSetup(in android.hardware.radio.RadioIndicationType type, in long timeout); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceResponse.aidl new file mode 100644 index 0000000000..46927c2f81 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceResponse.aidl @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@VintfStability +interface IRadioVoiceResponse { + oneway void acceptCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeRequest(in int serial); + oneway void cancelPendingUssdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void conferenceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void dialResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void emergencyDialResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void exitEmergencyCallbackModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void explicitCallTransferResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getCallForwardStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.CallForwardInfo[] callForwardInfos); + oneway void getCallWaitingResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable, in int serviceClass); + oneway void getClipResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.ClipStatus status); + oneway void getClirResponse(in android.hardware.radio.RadioResponseInfo info, in int n, in int m); + oneway void getCurrentCallsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.Call[] calls); + oneway void getLastCallFailCauseResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.LastCallFailCauseInfo failCauseinfo); + oneway void getMuteResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable); + oneway void getPreferredVoicePrivacyResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable); + oneway void getTtyModeResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.TtyMode mode); + oneway void handleStkCallSetupRequestFromSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupConnectionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupForegroundResumeBackgroundResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupWaitingOrBackgroundResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void isVoNrEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable); + oneway void rejectCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendBurstDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendCdmaFeatureCodeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendUssdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void separateConnectionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCallForwardResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCallWaitingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setClirResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setMuteResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setPreferredVoicePrivacyResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setTtyModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setVoNrEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void stopDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void switchWaitingOrHoldingAndActiveResponse(in android.hardware.radio.RadioResponseInfo info); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCause.aidl new file mode 100644 index 0000000000..0cac135621 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCause.aidl @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum LastCallFailCause { + UNOBTAINABLE_NUMBER = 1, + NO_ROUTE_TO_DESTINATION = 3, + CHANNEL_UNACCEPTABLE = 6, + OPERATOR_DETERMINED_BARRING = 8, + NORMAL = 16, + BUSY = 17, + NO_USER_RESPONDING = 18, + NO_ANSWER_FROM_USER = 19, + CALL_REJECTED = 21, + NUMBER_CHANGED = 22, + PREEMPTION = 25, + DESTINATION_OUT_OF_ORDER = 27, + INVALID_NUMBER_FORMAT = 28, + FACILITY_REJECTED = 29, + RESP_TO_STATUS_ENQUIRY = 30, + NORMAL_UNSPECIFIED = 31, + CONGESTION = 34, + NETWORK_OUT_OF_ORDER = 38, + TEMPORARY_FAILURE = 41, + SWITCHING_EQUIPMENT_CONGESTION = 42, + ACCESS_INFORMATION_DISCARDED = 43, + REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44, + RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47, + QOS_UNAVAILABLE = 49, + REQUESTED_FACILITY_NOT_SUBSCRIBED = 50, + INCOMING_CALLS_BARRED_WITHIN_CUG = 55, + BEARER_CAPABILITY_NOT_AUTHORIZED = 57, + BEARER_CAPABILITY_UNAVAILABLE = 58, + SERVICE_OPTION_NOT_AVAILABLE = 63, + BEARER_SERVICE_NOT_IMPLEMENTED = 65, + ACM_LIMIT_EXCEEDED = 68, + REQUESTED_FACILITY_NOT_IMPLEMENTED = 69, + ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70, + SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79, + INVALID_TRANSACTION_IDENTIFIER = 81, + USER_NOT_MEMBER_OF_CUG = 87, + INCOMPATIBLE_DESTINATION = 88, + INVALID_TRANSIT_NW_SELECTION = 91, + SEMANTICALLY_INCORRECT_MESSAGE = 95, + INVALID_MANDATORY_INFORMATION = 96, + MESSAGE_TYPE_NON_IMPLEMENTED = 97, + MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + INFORMATION_ELEMENT_NON_EXISTENT = 99, + CONDITIONAL_IE_ERROR = 100, + MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + RECOVERY_ON_TIMER_EXPIRED = 102, + PROTOCOL_ERROR_UNSPECIFIED = 111, + INTERWORKING_UNSPECIFIED = 127, + CALL_BARRED = 240, + FDN_BLOCKED = 241, + IMSI_UNKNOWN_IN_VLR = 242, + IMEI_NOT_ACCEPTED = 243, + DIAL_MODIFIED_TO_USSD = 244, + DIAL_MODIFIED_TO_SS = 245, + DIAL_MODIFIED_TO_DIAL = 246, + RADIO_OFF = 247, + OUT_OF_SERVICE = 248, + NO_VALID_SIM = 249, + RADIO_INTERNAL_ERROR = 250, + NETWORK_RESP_TIMEOUT = 251, + NETWORK_REJECT = 252, + RADIO_ACCESS_FAILURE = 253, + RADIO_LINK_FAILURE = 254, + RADIO_LINK_LOST = 255, + RADIO_UPLINK_FAILURE = 256, + RADIO_SETUP_FAILURE = 257, + RADIO_RELEASE_NORMAL = 258, + RADIO_RELEASE_ABNORMAL = 259, + ACCESS_CLASS_BLOCKED = 260, + NETWORK_DETACH = 261, + CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000, + CDMA_DROP = 1001, + CDMA_INTERCEPT = 1002, + CDMA_REORDER = 1003, + CDMA_SO_REJECT = 1004, + CDMA_RETRY_ORDER = 1005, + CDMA_ACCESS_FAILURE = 1006, + CDMA_PREEMPTED = 1007, + CDMA_NOT_EMERGENCY = 1008, + CDMA_ACCESS_BLOCKED = 1009, + OEM_CAUSE_1 = 0xf001, + OEM_CAUSE_2 = 0xf002, + OEM_CAUSE_3 = 0xf003, + OEM_CAUSE_4 = 0xf004, + OEM_CAUSE_5 = 0xf005, + OEM_CAUSE_6 = 0xf006, + OEM_CAUSE_7 = 0xf007, + OEM_CAUSE_8 = 0xf008, + OEM_CAUSE_9 = 0xf009, + OEM_CAUSE_10 = 0xf00a, + OEM_CAUSE_11 = 0xf00b, + OEM_CAUSE_12 = 0xf00c, + OEM_CAUSE_13 = 0xf00d, + OEM_CAUSE_14 = 0xf00e, + OEM_CAUSE_15 = 0xf00f, + ERROR_UNSPECIFIED = 0xffff, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCauseInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCauseInfo.aidl new file mode 100644 index 0000000000..151adf21d6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCauseInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LastCallFailCauseInfo { + android.hardware.radio.voice.LastCallFailCause causeCode; + String vendorCause; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SrvccState.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SrvccState.aidl new file mode 100644 index 0000000000..981ba025be --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SrvccState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SrvccState { + HANDOVER_STARTED, + HANDOVER_COMPLETED, + HANDOVER_FAILED, + HANDOVER_CANCELED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SsInfoData.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SsInfoData.aidl new file mode 100644 index 0000000000..24365dc233 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SsInfoData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SsInfoData { + int[] ssInfo; + const int SS_INFO_MAX = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/StkCcUnsolSsResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/StkCcUnsolSsResult.aidl new file mode 100644 index 0000000000..999f47c8d4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/StkCcUnsolSsResult.aidl @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable StkCcUnsolSsResult { + int serviceType; + int requestType; + int teleserviceType; + int serviceClass; + android.hardware.radio.RadioError result; + android.hardware.radio.voice.SsInfoData[] ssInfo; + android.hardware.radio.voice.CfData[] cfData; + const int REQUEST_TYPE_ACTIVATION = 0; + const int REQUEST_TYPE_DEACTIVATION = 1; + const int REQUEST_TYPE_INTERROGATION = 2; + const int REQUEST_TYPE_REGISTRATION = 3; + const int REQUEST_TYPE_ERASURE = 4; + const int SERVICE_TYPE_CFU = 0; + const int SERVICE_TYPE_CF_BUSY = 1; + const int SERVICE_TYPE_CF_NO_REPLY = 2; + const int SERVICE_TYPE_CF_NOT_REACHABLE = 3; + const int SERVICE_TYPE_CF_ALL = 4; + const int SERVICE_TYPE_CF_ALL_CONDITIONAL = 5; + const int SERVICE_TYPE_CLIP = 6; + const int SERVICE_TYPE_CLIR = 7; + const int SERVICE_TYPE_COLP = 8; + const int SERVICE_TYPE_COLR = 9; + const int SERVICE_TYPE_WAIT = 10; + const int SERVICE_TYPE_BAOC = 11; + const int SERVICE_TYPE_BAOIC = 12; + const int SERVICE_TYPE_BAOIC_EXC_HOME = 13; + const int SERVICE_TYPE_BAIC = 14; + const int SERVICE_TYPE_BAIC_ROAMING = 15; + const int SERVICE_TYPE_ALL_BARRING = 16; + const int SERVICE_TYPE_OUTGOING_BARRING = 17; + const int SERVICE_TYPE_INCOMING_BARRING = 18; + const int TELESERVICE_TYPE_ALL_TELE_AND_BEARER_SERVICES = 0; + const int TELESERVICE_TYPE_ALL_TELESEVICES = 1; + const int TELESERVICE_TYPE_TELEPHONY = 2; + const int TELESERVICE_TYPE_ALL_DATA_TELESERVICES = 3; + const int TELESERVICE_TYPE_SMS_SERVICES = 4; + const int TELESERVICE_TYPE_ALL_TELESERVICES_EXCEPT_SMS = 5; + const int SUPP_SERVICE_CLASS_NONE = 0; + const int SUPP_SERVICE_CLASS_VOICE = (1 << 0) /* 1 */; + const int SUPP_SERVICE_CLASS_DATA = (1 << 1) /* 2 */; + const int SUPP_SERVICE_CLASS_FAX = (1 << 2) /* 4 */; + const int SUPP_SERVICE_CLASS_SMS = (1 << 3) /* 8 */; + const int SUPP_SERVICE_CLASS_DATA_SYNC = (1 << 4) /* 16 */; + const int SUPP_SERVICE_CLASS_DATA_ASYNC = (1 << 5) /* 32 */; + const int SUPP_SERVICE_CLASS_PACKET = (1 << 6) /* 64 */; + const int SUPP_SERVICE_CLASS_PAD = (1 << 7) /* 128 */; + const int SUPP_SERVICE_CLASS_MAX = (1 << 7) /* 128 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/TtyMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/TtyMode.aidl new file mode 100644 index 0000000000..41ff6b8109 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/TtyMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum TtyMode { + OFF, + FULL, + HCO, + VCO, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UssdModeType.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UssdModeType.aidl new file mode 100644 index 0000000000..9e80f03149 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UssdModeType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum UssdModeType { + NOTIFY, + REQUEST, + NW_RELEASE, + LOCAL_CLIENT, + NOT_SUPPORTED, + NW_TIMEOUT, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UusInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UusInfo.aidl new file mode 100644 index 0000000000..3c84c8d97b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UusInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable UusInfo { + int uusType; + int uusDcs; + String uusData; + const int UUS_DCS_USP = 0; + const int UUS_DCS_OSIHLP = 1; + const int UUS_DCS_X244 = 2; + const int UUS_DCS_RMCF = 3; + const int UUS_DCS_IA5C = 4; + const int UUS_TYPE_TYPE1_IMPLICIT = 0; + const int UUS_TYPE_TYPE1_REQUIRED = 1; + const int UUS_TYPE_TYPE1_NOT_REQUIRED = 2; + const int UUS_TYPE_TYPE2_REQUIRED = 3; + const int UUS_TYPE_TYPE2_NOT_REQUIRED = 4; + const int UUS_TYPE_TYPE3_REQUIRED = 5; + const int UUS_TYPE_TYPE3_NOT_REQUIRED = 6; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/.hash b/radio/aidl/aidl_api/android.hardware.radio/3/.hash new file mode 100644 index 0000000000..5d39a6782e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/.hash @@ -0,0 +1 @@ +58d15e9e2c355be7b3dda6d4d34effd672bfd1cb diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/AccessNetwork.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/AccessNetwork.aidl new file mode 100644 index 0000000000..73a267b6d0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/AccessNetwork.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum AccessNetwork { + UNKNOWN, + GERAN, + UTRAN, + EUTRAN, + CDMA2000, + IWLAN, + NGRAN, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioAccessFamily.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioAccessFamily.aidl new file mode 100644 index 0000000000..1298ab0f4c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioAccessFamily.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioAccessFamily { + UNKNOWN = (1 << android.hardware.radio.RadioTechnology.UNKNOWN) /* 1 */, + GPRS = (1 << android.hardware.radio.RadioTechnology.GPRS) /* 2 */, + EDGE = (1 << android.hardware.radio.RadioTechnology.EDGE) /* 4 */, + UMTS = (1 << android.hardware.radio.RadioTechnology.UMTS) /* 8 */, + IS95A = (1 << android.hardware.radio.RadioTechnology.IS95A) /* 16 */, + IS95B = (1 << android.hardware.radio.RadioTechnology.IS95B) /* 32 */, + ONE_X_RTT = (1 << android.hardware.radio.RadioTechnology.ONE_X_RTT) /* 64 */, + EVDO_0 = (1 << android.hardware.radio.RadioTechnology.EVDO_0) /* 128 */, + EVDO_A = (1 << android.hardware.radio.RadioTechnology.EVDO_A) /* 256 */, + HSDPA = (1 << android.hardware.radio.RadioTechnology.HSDPA) /* 512 */, + HSUPA = (1 << android.hardware.radio.RadioTechnology.HSUPA) /* 1024 */, + HSPA = (1 << android.hardware.radio.RadioTechnology.HSPA) /* 2048 */, + EVDO_B = (1 << android.hardware.radio.RadioTechnology.EVDO_B) /* 4096 */, + EHRPD = (1 << android.hardware.radio.RadioTechnology.EHRPD) /* 8192 */, + LTE = (1 << android.hardware.radio.RadioTechnology.LTE) /* 16384 */, + HSPAP = (1 << android.hardware.radio.RadioTechnology.HSPAP) /* 32768 */, + GSM = (1 << android.hardware.radio.RadioTechnology.GSM) /* 65536 */, + TD_SCDMA = (1 << android.hardware.radio.RadioTechnology.TD_SCDMA) /* 131072 */, + IWLAN = (1 << android.hardware.radio.RadioTechnology.IWLAN) /* 262144 */, + /** + * @deprecated use LTE instead. + */ + LTE_CA = (1 << android.hardware.radio.RadioTechnology.LTE_CA) /* 524288 */, + NR = (1 << android.hardware.radio.RadioTechnology.NR) /* 1048576 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioConst.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioConst.aidl new file mode 100644 index 0000000000..970cd1e0c8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioConst.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioConst { + const int MAX_RILDS = 3; + const int MAX_UUID_LENGTH = 64; + const int CARD_MAX_APPS = 8; + const int P2_CONSTANT_NO_P2 = (-1) /* -1 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioError.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioError.aidl new file mode 100644 index 0000000000..02c537055c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioError.aidl @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioError { + NONE = 0, + RADIO_NOT_AVAILABLE = 1, + GENERIC_FAILURE = 2, + PASSWORD_INCORRECT = 3, + SIM_PIN2 = 4, + SIM_PUK2 = 5, + REQUEST_NOT_SUPPORTED = 6, + CANCELLED = 7, + OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, + OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, + SMS_SEND_FAIL_RETRY = 10, + SIM_ABSENT = 11, + SUBSCRIPTION_NOT_AVAILABLE = 12, + MODE_NOT_SUPPORTED = 13, + FDN_CHECK_FAILURE = 14, + ILLEGAL_SIM_OR_ME = 15, + MISSING_RESOURCE = 16, + NO_SUCH_ELEMENT = 17, + DIAL_MODIFIED_TO_USSD = 18, + DIAL_MODIFIED_TO_SS = 19, + DIAL_MODIFIED_TO_DIAL = 20, + USSD_MODIFIED_TO_DIAL = 21, + USSD_MODIFIED_TO_SS = 22, + USSD_MODIFIED_TO_USSD = 23, + SS_MODIFIED_TO_DIAL = 24, + SS_MODIFIED_TO_USSD = 25, + SUBSCRIPTION_NOT_SUPPORTED = 26, + SS_MODIFIED_TO_SS = 27, + LCE_NOT_SUPPORTED = 36, + NO_MEMORY = 37, + INTERNAL_ERR = 38, + SYSTEM_ERR = 39, + MODEM_ERR = 40, + INVALID_STATE = 41, + NO_RESOURCES = 42, + SIM_ERR = 43, + INVALID_ARGUMENTS = 44, + INVALID_SIM_STATE = 45, + INVALID_MODEM_STATE = 46, + INVALID_CALL_ID = 47, + NO_SMS_TO_ACK = 48, + NETWORK_ERR = 49, + REQUEST_RATE_LIMITED = 50, + SIM_BUSY = 51, + SIM_FULL = 52, + NETWORK_REJECT = 53, + OPERATION_NOT_ALLOWED = 54, + EMPTY_RECORD = 55, + INVALID_SMS_FORMAT = 56, + ENCODING_ERR = 57, + INVALID_SMSC_ADDRESS = 58, + NO_SUCH_ENTRY = 59, + NETWORK_NOT_READY = 60, + NOT_PROVISIONED = 61, + NO_SUBSCRIPTION = 62, + NO_NETWORK_FOUND = 63, + DEVICE_IN_USE = 64, + ABORTED = 65, + INVALID_RESPONSE = 66, + OEM_ERROR_1 = 501, + OEM_ERROR_2 = 502, + OEM_ERROR_3 = 503, + OEM_ERROR_4 = 504, + OEM_ERROR_5 = 505, + OEM_ERROR_6 = 506, + OEM_ERROR_7 = 507, + OEM_ERROR_8 = 508, + OEM_ERROR_9 = 509, + OEM_ERROR_10 = 510, + OEM_ERROR_11 = 511, + OEM_ERROR_12 = 512, + OEM_ERROR_13 = 513, + OEM_ERROR_14 = 514, + OEM_ERROR_15 = 515, + OEM_ERROR_16 = 516, + OEM_ERROR_17 = 517, + OEM_ERROR_18 = 518, + OEM_ERROR_19 = 519, + OEM_ERROR_20 = 520, + OEM_ERROR_21 = 521, + OEM_ERROR_22 = 522, + OEM_ERROR_23 = 523, + OEM_ERROR_24 = 524, + OEM_ERROR_25 = 525, + SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED = 67, + ACCESS_BARRED = 68, + BLOCKED_DUE_TO_CALL = 69, + RF_HARDWARE_ISSUE = 70, + NO_RF_CALIBRATION_INFO = 71, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioIndicationType.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioIndicationType.aidl new file mode 100644 index 0000000000..316f92f876 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioIndicationType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioIndicationType { + UNSOLICITED, + UNSOLICITED_ACK_EXP, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfo.aidl new file mode 100644 index 0000000000..f03a73bfb1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioResponseInfo { + android.hardware.radio.RadioResponseType type; + int serial; + android.hardware.radio.RadioError error; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfoModem.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfoModem.aidl new file mode 100644 index 0000000000..2e0c315426 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfoModem.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioResponseInfoModem { + android.hardware.radio.RadioResponseType type; + int serial; + android.hardware.radio.RadioError error; + boolean isEnabled; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseType.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseType.aidl new file mode 100644 index 0000000000..8bdb45bfdf --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioResponseType { + SOLICITED, + SOLICITED_ACK, + SOLICITED_ACK_EXP, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnology.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnology.aidl new file mode 100644 index 0000000000..7c6a657bcd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnology.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioTechnology { + UNKNOWN, + GPRS, + EDGE, + UMTS, + IS95A, + IS95B, + ONE_X_RTT, + EVDO_0, + EVDO_A, + HSDPA, + HSUPA, + HSPA, + EVDO_B, + EHRPD, + LTE, + HSPAP, + GSM, + TD_SCDMA, + IWLAN, + /** + * @deprecated use LTE instead and indicate carrier aggregation through multiple physical channel configurations in IRadioNetwork::currentPhysicalChannelConfigs. + */ + LTE_CA, + NR, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnologyFamily.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnologyFamily.aidl new file mode 100644 index 0000000000..85e9850cad --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnologyFamily.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioTechnologyFamily { + THREE_GPP, + THREE_GPP2, +} diff --git a/security/authgraph/aidl/Android.bp b/security/authgraph/aidl/Android.bp index f3d12816ca..cb451981b4 100644 --- a/security/authgraph/aidl/Android.bp +++ b/security/authgraph/aidl/Android.bp @@ -28,7 +28,7 @@ aidl_interface { "android/hardware/security/authgraph/*.aidl", ], stability: "vintf", - frozen: false, + frozen: true, backend: { java: { platform_apis: true, @@ -44,6 +44,13 @@ aidl_interface { ], }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + } // cc_defaults that includes the latest Authgraph AIDL library. diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/.hash b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/.hash new file mode 100644 index 0000000000..c0bd06ac57 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/.hash @@ -0,0 +1 @@ +3758824e7b75acdb1ca66620fb8a8aec0ec6dfcc diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Arc.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Arc.aidl new file mode 100644 index 0000000000..dc86fbd5b8 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Arc.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +/* @hide */ +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable Arc { + byte[] arc; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Error.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Error.aidl new file mode 100644 index 0000000000..1a78b54550 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Error.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +/* @hide */ +@Backing(type="int") @VintfStability +enum Error { + OK = 0, + INVALID_PEER_NONCE = (-1) /* -1 */, + INVALID_PEER_KE_KEY = (-2) /* -2 */, + INVALID_IDENTITY = (-3) /* -3 */, + INVALID_CERT_CHAIN = (-4) /* -4 */, + INVALID_SIGNATURE = (-5) /* -5 */, + INVALID_KE_KEY = (-6) /* -6 */, + INVALID_PUB_KEY_IN_KEY = (-7) /* -7 */, + INVALID_PRIV_KEY_ARC_IN_KEY = (-8) /* -8 */, + INVALID_SHARED_KEY_ARCS = (-9) /* -9 */, + MEMORY_ALLOCATION_FAILED = (-10) /* -10 */, + INCOMPATIBLE_PROTOCOL_VERSION = (-11) /* -11 */, +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/IAuthGraphKeyExchange.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/IAuthGraphKeyExchange.aidl new file mode 100644 index 0000000000..2c56f339dd --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/IAuthGraphKeyExchange.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +/* @hide */ +@VintfStability +interface IAuthGraphKeyExchange { + android.hardware.security.authgraph.SessionInitiationInfo create(); + android.hardware.security.authgraph.KeInitResult init(in android.hardware.security.authgraph.PubKey peerPubKey, in android.hardware.security.authgraph.Identity peerId, in byte[] peerNonce, in int peerVersion); + android.hardware.security.authgraph.SessionInfo finish(in android.hardware.security.authgraph.PubKey peerPubKey, in android.hardware.security.authgraph.Identity peerId, in android.hardware.security.authgraph.SessionIdSignature peerSignature, in byte[] peerNonce, in int peerVersion, in android.hardware.security.authgraph.Key ownKey); + android.hardware.security.authgraph.Arc[2] authenticationComplete(in android.hardware.security.authgraph.SessionIdSignature peerSignature, in android.hardware.security.authgraph.Arc[2] sharedKeys); +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Identity.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Identity.aidl new file mode 100644 index 0000000000..bd5453ee82 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Identity.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable Identity { + byte[] identity; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/KeInitResult.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/KeInitResult.aidl new file mode 100644 index 0000000000..8c91523784 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/KeInitResult.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable KeInitResult { + android.hardware.security.authgraph.SessionInitiationInfo sessionInitiationInfo; + android.hardware.security.authgraph.SessionInfo sessionInfo; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Key.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Key.aidl new file mode 100644 index 0000000000..5b4ebbf923 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Key.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable Key { + @nullable android.hardware.security.authgraph.PubKey pubKey; + @nullable android.hardware.security.authgraph.Arc arcFromPBK; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PlainPubKey.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PlainPubKey.aidl new file mode 100644 index 0000000000..f070bfaef4 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PlainPubKey.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable PlainPubKey { + byte[] plainPubKey; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PubKey.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PubKey.aidl new file mode 100644 index 0000000000..4c3376eb4d --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PubKey.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +union PubKey { + android.hardware.security.authgraph.PlainPubKey plainKey; + android.hardware.security.authgraph.SignedPubKey signedKey; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionIdSignature.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionIdSignature.aidl new file mode 100644 index 0000000000..6dabc0a080 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionIdSignature.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable SessionIdSignature { + byte[] signature; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInfo.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInfo.aidl new file mode 100644 index 0000000000..427962b5b2 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable SessionInfo { + android.hardware.security.authgraph.Arc[2] sharedKeys; + byte[] sessionId; + android.hardware.security.authgraph.SessionIdSignature signature; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInitiationInfo.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInitiationInfo.aidl new file mode 100644 index 0000000000..bf55e74a2a --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInitiationInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable SessionInitiationInfo { + android.hardware.security.authgraph.Key key; + android.hardware.security.authgraph.Identity identity; + byte[] nonce; + int version; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SignedPubKey.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SignedPubKey.aidl new file mode 100644 index 0000000000..3dbaed81b8 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SignedPubKey.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable SignedPubKey { + byte[] signedPubKey; +} diff --git a/security/secretkeeper/aidl/Android.bp b/security/secretkeeper/aidl/Android.bp index 5307bf9b99..4975ab9126 100644 --- a/security/secretkeeper/aidl/Android.bp +++ b/security/secretkeeper/aidl/Android.bp @@ -25,7 +25,7 @@ aidl_interface { "android.hardware.security.authgraph-V1", ], stability: "vintf", - frozen: false, + frozen: true, backend: { java: { enabled: false, @@ -41,6 +41,13 @@ aidl_interface { ], }, }, + versions_with_info: [ + { + version: "1", + imports: ["android.hardware.security.authgraph-V1"], + }, + ], + } // cc_defaults that includes the latest Secretkeeper AIDL library. diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/.hash b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/.hash new file mode 100644 index 0000000000..1f6c42bc6b --- /dev/null +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/.hash @@ -0,0 +1 @@ +347439bd6088bd24a72e789a616a1586863e43b8 diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/ISecretkeeper.aidl b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/ISecretkeeper.aidl new file mode 100644 index 0000000000..8ce37cd558 --- /dev/null +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/ISecretkeeper.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.secretkeeper; +@VintfStability +interface ISecretkeeper { + android.hardware.security.authgraph.IAuthGraphKeyExchange getAuthGraphKe(); + byte[] processSecretManagementRequest(in byte[] request); + void deleteIds(in android.hardware.security.secretkeeper.SecretId[] ids); + void deleteAll(); + const int ERROR_UNKNOWN_KEY_ID = 1; + const int ERROR_INTERNAL_ERROR = 2; + const int ERROR_REQUEST_MALFORMED = 3; +} diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/SecretId.aidl b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/SecretId.aidl new file mode 100644 index 0000000000..9887066512 --- /dev/null +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/SecretId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.secretkeeper; +/* @hide */ +@VintfStability +parcelable SecretId { + byte[64] id; +} diff --git a/soundtrigger/aidl/Android.bp b/soundtrigger/aidl/Android.bp index fcbaf6b9e2..af9a5fc41d 100644 --- a/soundtrigger/aidl/Android.bp +++ b/soundtrigger/aidl/Android.bp @@ -35,12 +35,17 @@ aidl_interface { sdk_version: "module_current", }, }, - frozen: false, + frozen: true, versions_with_info: [ { version: "1", imports: ["android.media.soundtrigger.types-V1"], }, + { + version: "2", + imports: ["android.media.soundtrigger.types-V2"], + }, + // IMPORTANT: Update latest_android_hardware_soundtrigger3 every time // you add the latest frozen version to versions_with_info ], diff --git a/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/.hash b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/.hash new file mode 100644 index 0000000000..9b334006ab --- /dev/null +++ b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/.hash @@ -0,0 +1 @@ +6b24e60ad261e3ff56106efd86ce6aa7ef5621b0 diff --git a/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHw.aidl b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHw.aidl new file mode 100644 index 0000000000..bbfe7d9161 --- /dev/null +++ b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHw.aidl @@ -0,0 +1,48 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.soundtrigger3; +@VintfStability +interface ISoundTriggerHw { + android.media.soundtrigger.Properties getProperties(); + void registerGlobalCallback(in android.hardware.soundtrigger3.ISoundTriggerHwGlobalCallback callback); + int loadSoundModel(in android.media.soundtrigger.SoundModel soundModel, in android.hardware.soundtrigger3.ISoundTriggerHwCallback callback); + int loadPhraseSoundModel(in android.media.soundtrigger.PhraseSoundModel soundModel, in android.hardware.soundtrigger3.ISoundTriggerHwCallback callback); + void unloadSoundModel(in int modelHandle); + void startRecognition(in int modelHandle, in int deviceHandle, in int ioHandle, in android.media.soundtrigger.RecognitionConfig config); + void stopRecognition(in int modelHandle); + void forceRecognitionEvent(in int modelHandle); + @nullable android.media.soundtrigger.ModelParameterRange queryParameter(in int modelHandle, in android.media.soundtrigger.ModelParameter modelParam); + int getParameter(in int modelHandle, in android.media.soundtrigger.ModelParameter modelParam); + void setParameter(in int modelHandle, in android.media.soundtrigger.ModelParameter modelParam, in int value); +} diff --git a/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwCallback.aidl b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwCallback.aidl new file mode 100644 index 0000000000..152dfed637 --- /dev/null +++ b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.soundtrigger3; +@VintfStability +interface ISoundTriggerHwCallback { + void modelUnloaded(in int model); + void phraseRecognitionCallback(in int model, in android.media.soundtrigger.PhraseRecognitionEvent event); + void recognitionCallback(in int model, in android.media.soundtrigger.RecognitionEvent event); +} diff --git a/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback.aidl b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback.aidl new file mode 100644 index 0000000000..6dfee9fa2f --- /dev/null +++ b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.soundtrigger3; +@VintfStability +interface ISoundTriggerHwGlobalCallback { + void onResourcesAvailable(); +} diff --git a/thermal/aidl/Android.bp b/thermal/aidl/Android.bp index 734aab7d0e..597a166beb 100644 --- a/thermal/aidl/Android.bp +++ b/thermal/aidl/Android.bp @@ -44,7 +44,12 @@ aidl_interface { version: "1", imports: [], }, + { + version: "2", + imports: [], + }, + ], - frozen: false, + frozen: true, } diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/.hash b/thermal/aidl/aidl_api/android.hardware.thermal/2/.hash new file mode 100644 index 0000000000..23d3c07621 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/.hash @@ -0,0 +1 @@ +2f49c78011338b42b43d5d0e250d9b520850cc1f diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingDevice.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingDevice.aidl new file mode 100644 index 0000000000..7e1aed7e3c --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingDevice.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * +1 * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CoolingDevice { + android.hardware.thermal.CoolingType type; + String name; + long value; + long powerLimitMw; + long powerMw; + long timeWindowMs; +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingType.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingType.aidl new file mode 100644 index 0000000000..5e88aa056c --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingType.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@Backing(type="int") @VintfStability +enum CoolingType { + FAN, + BATTERY, + CPU, + GPU, + MODEM, + NPU, + COMPONENT, + TPU, + POWER_AMPLIFIER, + DISPLAY, + SPEAKER, + WIFI, + CAMERA, + FLASHLIGHT, + USB_PORT, +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl new file mode 100644 index 0000000000..ea75b1c8a9 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@VintfStability +interface ICoolingDeviceChangedCallback { + oneway void notifyCoolingDeviceChanged(in android.hardware.thermal.CoolingDevice coolingDevice); +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermal.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermal.aidl new file mode 100644 index 0000000000..904496cdf1 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermal.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@VintfStability +interface IThermal { + android.hardware.thermal.CoolingDevice[] getCoolingDevices(); + android.hardware.thermal.CoolingDevice[] getCoolingDevicesWithType(in android.hardware.thermal.CoolingType type); + android.hardware.thermal.Temperature[] getTemperatures(); + android.hardware.thermal.Temperature[] getTemperaturesWithType(in android.hardware.thermal.TemperatureType type); + android.hardware.thermal.TemperatureThreshold[] getTemperatureThresholds(); + android.hardware.thermal.TemperatureThreshold[] getTemperatureThresholdsWithType(in android.hardware.thermal.TemperatureType type); + void registerThermalChangedCallback(in android.hardware.thermal.IThermalChangedCallback callback); + void registerThermalChangedCallbackWithType(in android.hardware.thermal.IThermalChangedCallback callback, in android.hardware.thermal.TemperatureType type); + void unregisterThermalChangedCallback(in android.hardware.thermal.IThermalChangedCallback callback); + void registerCoolingDeviceChangedCallbackWithType(in android.hardware.thermal.ICoolingDeviceChangedCallback callback, in android.hardware.thermal.CoolingType type); + void unregisterCoolingDeviceChangedCallback(in android.hardware.thermal.ICoolingDeviceChangedCallback callback); +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermalChangedCallback.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermalChangedCallback.aidl new file mode 100644 index 0000000000..5e1d753d18 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermalChangedCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@VintfStability +interface IThermalChangedCallback { + oneway void notifyThrottling(in android.hardware.thermal.Temperature temperature); +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/Temperature.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/Temperature.aidl new file mode 100644 index 0000000000..ce70ab844f --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/Temperature.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Temperature { + android.hardware.thermal.TemperatureType type; + String name; + float value; + android.hardware.thermal.ThrottlingSeverity throttlingStatus; +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureThreshold.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureThreshold.aidl new file mode 100644 index 0000000000..a384d19600 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureThreshold.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable TemperatureThreshold { + android.hardware.thermal.TemperatureType type; + String name; + float[] hotThrottlingThresholds; + float[] coldThrottlingThresholds; +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureType.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureType.aidl new file mode 100644 index 0000000000..665a36e8b1 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureType.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@Backing(type="int") @VintfStability +enum TemperatureType { + UNKNOWN = (-1) /* -1 */, + CPU = 0, + GPU = 1, + BATTERY = 2, + SKIN = 3, + USB_PORT = 4, + POWER_AMPLIFIER = 5, + BCL_VOLTAGE = 6, + BCL_CURRENT = 7, + BCL_PERCENTAGE = 8, + NPU = 9, + TPU = 10, + DISPLAY = 11, + MODEM = 12, + SOC = 13, + WIFI = 14, + CAMERA = 15, + FLASHLIGHT = 16, + SPEAKER = 17, + AMBIENT = 18, + POGO = 19, +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ThrottlingSeverity.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ThrottlingSeverity.aidl new file mode 100644 index 0000000000..183344d45b --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ThrottlingSeverity.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@Backing(type="int") @VintfStability +enum ThrottlingSeverity { + NONE = 0, + LIGHT, + MODERATE, + SEVERE, + CRITICAL, + EMERGENCY, + SHUTDOWN, +} diff --git a/threadnetwork/aidl/Android.bp b/threadnetwork/aidl/Android.bp index 7e674e0729..d674ad7b64 100644 --- a/threadnetwork/aidl/Android.bp +++ b/threadnetwork/aidl/Android.bp @@ -19,4 +19,12 @@ aidl_interface { min_sdk_version: "30", }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/.hash b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/.hash new file mode 100644 index 0000000000..d60de43e67 --- /dev/null +++ b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/.hash @@ -0,0 +1 @@ +9e4d90844dd965def6c11732252f49d6aeaffc8e diff --git a/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChip.aidl b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChip.aidl new file mode 100644 index 0000000000..607ceb398d --- /dev/null +++ b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChip.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.threadnetwork; +@VintfStability +interface IThreadChip { + void open(in android.hardware.threadnetwork.IThreadChipCallback callback); + void close(); + void hardwareReset(); + void sendSpinelFrame(in byte[] frame); + const int ERROR_FAILED = 1; + const int ERROR_NO_BUFS = 2; + const int ERROR_BUSY = 3; +} diff --git a/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChipCallback.aidl b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChipCallback.aidl new file mode 100644 index 0000000000..e86b3ec8b0 --- /dev/null +++ b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChipCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.threadnetwork; +@VintfStability +interface IThreadChipCallback { + oneway void onReceiveSpinelFrame(in byte[] frame); +} diff --git a/tv/input/aidl/Android.bp b/tv/input/aidl/Android.bp index 2326549ee7..afc811a165 100644 --- a/tv/input/aidl/Android.bp +++ b/tv/input/aidl/Android.bp @@ -35,6 +35,15 @@ aidl_interface { "android.hardware.common.fmq-V1", ], }, + { + version: "2", + imports: [ + "android.hardware.common-V2", + "android.media.audio.common.types-V1", + "android.hardware.common.fmq-V1", + ], + }, + ], - frozen: false, + frozen: true, } diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/.hash b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/.hash new file mode 100644 index 0000000000..9742df8d58 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/.hash @@ -0,0 +1 @@ +4470ddfe78d3a0c44832ac08f46e8283fd090347 diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/CableConnectionStatus.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/CableConnectionStatus.aidl new file mode 100644 index 0000000000..a48bdb11c6 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/CableConnectionStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@Backing(type="int") @VintfStability +enum CableConnectionStatus { + UNKNOWN = 0, + CONNECTED = 1, + DISCONNECTED = 2, +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInput.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInput.aidl new file mode 100644 index 0000000000..84fe2fb7d7 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInput.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +interface ITvInput { + void closeStream(in int deviceId, in int streamId); + android.hardware.tv.input.TvStreamConfig[] getStreamConfigurations(in int deviceId); + android.hardware.common.NativeHandle openStream(in int deviceId, in int streamId); + void setCallback(in android.hardware.tv.input.ITvInputCallback callback); + void setTvMessageEnabled(int deviceId, int streamId, in android.hardware.tv.input.TvMessageEventType type, boolean enabled); + void getTvMessageQueueDesc(out android.hardware.common.fmq.MQDescriptor queue, int deviceId, int streamId); + const int STATUS_UNKNOWN = 1; + const int STATUS_NO_RESOURCE = 2; + const int STATUS_INVALID_ARGUMENTS = 3; + const int STATUS_INVALID_STATE = 4; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInputCallback.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInputCallback.aidl new file mode 100644 index 0000000000..974701341c --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInputCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +interface ITvInputCallback { + void notify(in android.hardware.tv.input.TvInputEvent event); + void notifyTvMessageEvent(in android.hardware.tv.input.TvMessageEvent event); +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputDeviceInfo.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputDeviceInfo.aidl new file mode 100644 index 0000000000..d0951467be --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputDeviceInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvInputDeviceInfo { + int deviceId; + android.hardware.tv.input.TvInputType type; + int portId; + android.hardware.tv.input.CableConnectionStatus cableConnectionStatus; + android.media.audio.common.AudioDevice audioDevice; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEvent.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEvent.aidl new file mode 100644 index 0000000000..cfa8a34c9e --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEvent.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvInputEvent { + android.hardware.tv.input.TvInputEventType type; + android.hardware.tv.input.TvInputDeviceInfo deviceInfo; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEventType.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEventType.aidl new file mode 100644 index 0000000000..a9f518ac85 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEventType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@Backing(type="int") @VintfStability +enum TvInputEventType { + DEVICE_AVAILABLE = 1, + DEVICE_UNAVAILABLE = 2, + STREAM_CONFIGURATIONS_CHANGED = 3, +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputType.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputType.aidl new file mode 100644 index 0000000000..7e44a7d653 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputType.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@Backing(type="int") @VintfStability +enum TvInputType { + OTHER = 1, + TUNER = 2, + COMPOSITE = 3, + SVIDEO = 4, + SCART = 5, + COMPONENT = 6, + VGA = 7, + DVI = 8, + HDMI = 9, + DISPLAY_PORT = 10, +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessage.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessage.aidl new file mode 100644 index 0000000000..04cb099f97 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessage.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvMessage { + String subType; + long groupId; + int dataLengthBytes; + const long NO_GROUP_ID = (-1) /* -1 */; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEvent.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEvent.aidl new file mode 100644 index 0000000000..3c1cb74860 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEvent.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvMessageEvent { + android.hardware.tv.input.TvMessageEventType type; + int streamId; + android.hardware.tv.input.TvMessage[] messages; + int deviceId; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEventType.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEventType.aidl new file mode 100644 index 0000000000..3006198c68 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEventType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@Backing(type="int") @VintfStability +enum TvMessageEventType { + WATERMARK = 1, + CLOSED_CAPTION = 2, + OTHER = 1000, +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvStreamConfig.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvStreamConfig.aidl new file mode 100644 index 0000000000..8378ff3a87 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvStreamConfig.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvStreamConfig { + int streamId; + int maxVideoWidth; + int maxVideoHeight; +} diff --git a/usb/aidl/Android.bp b/usb/aidl/Android.bp index b61576d682..becb5c1089 100644 --- a/usb/aidl/Android.bp +++ b/usb/aidl/Android.bp @@ -43,8 +43,12 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], - frozen: false, + frozen: true, } diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/.hash b/usb/aidl/aidl_api/android.hardware.usb/3/.hash new file mode 100644 index 0000000000..99de8e4f97 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/.hash @@ -0,0 +1 @@ +7fe46e9531884739d925b8caeee9dba5c411e228 diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/AltModeData.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/AltModeData.aidl new file mode 100644 index 0000000000..d25ee84151 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/AltModeData.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not us e this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +union AltModeData { + android.hardware.usb.AltModeData.DisplayPortAltModeData displayPortAltModeData; + @VintfStability + parcelable DisplayPortAltModeData { + android.hardware.usb.DisplayPortAltModeStatus partnerSinkStatus = android.hardware.usb.DisplayPortAltModeStatus.UNKNOWN; + android.hardware.usb.DisplayPortAltModeStatus cableStatus = android.hardware.usb.DisplayPortAltModeStatus.UNKNOWN; + android.hardware.usb.DisplayPortAltModePinAssignment pinAssignment = android.hardware.usb.DisplayPortAltModePinAssignment.NONE; + boolean hpd = false; + android.hardware.usb.LinkTrainingStatus linkTrainingStatus = android.hardware.usb.LinkTrainingStatus.UNKNOWN; + } +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ComplianceWarning.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ComplianceWarning.aidl new file mode 100644 index 0000000000..c7c910324e --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ComplianceWarning.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum ComplianceWarning { + OTHER = 1, + DEBUG_ACCESSORY = 2, + BC_1_2 = 3, + MISSING_RP = 4, + INPUT_POWER_LIMITED = 5, + MISSING_DATA_LINES = 6, + ENUMERATION_FAIL = 7, + FLAKY_CONNECTION = 8, + UNRELIABLE_IO = 9, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantDetectionStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantDetectionStatus.aidl new file mode 100644 index 0000000000..24c69664f7 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantDetectionStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum ContaminantDetectionStatus { + NOT_SUPPORTED = 0, + DISABLED = 1, + NOT_DETECTED = 2, + DETECTED = 3, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionMode.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionMode.aidl new file mode 100644 index 0000000000..99798693ff --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum ContaminantProtectionMode { + NONE = 0, + FORCE_SINK = 1, + FORCE_SOURCE = 2, + FORCE_DISABLE = 3, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionStatus.aidl new file mode 100644 index 0000000000..9642261444 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum ContaminantProtectionStatus { + NONE = 0, + FORCE_SINK = 1, + FORCE_SOURCE = 2, + FORCE_DISABLE = 3, + DISABLED = 4, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModePinAssignment.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModePinAssignment.aidl new file mode 100644 index 0000000000..5908117e9e --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModePinAssignment.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum DisplayPortAltModePinAssignment { + NONE = 0, + A = 1, + B = 2, + C = 3, + D = 4, + E = 5, + F = 6, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModeStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModeStatus.aidl new file mode 100644 index 0000000000..dc69b98955 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModeStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum DisplayPortAltModeStatus { + UNKNOWN = 0, + NOT_CAPABLE = 1, + CAPABLE = 2, + ENABLED = 3, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsb.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsb.aidl new file mode 100644 index 0000000000..859f52652b --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsb.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +interface IUsb { + oneway void enableContaminantPresenceDetection(in String portName, in boolean enable, long transactionId); + oneway void enableUsbData(in String portName, boolean enable, long transactionId); + oneway void enableUsbDataWhileDocked(in String portName, long transactionId); + oneway void queryPortStatus(long transactionId); + oneway void setCallback(in android.hardware.usb.IUsbCallback callback); + oneway void switchRole(in String portName, in android.hardware.usb.PortRole role, long transactionId); + oneway void limitPowerTransfer(in String portName, boolean limit, long transactionId); + oneway void resetUsbPort(in String portName, long transactionId); +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsbCallback.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsbCallback.aidl new file mode 100644 index 0000000000..4abfaec53b --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsbCallback.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +interface IUsbCallback { + oneway void notifyPortStatusChange(in android.hardware.usb.PortStatus[] currentPortStatus, in android.hardware.usb.Status retval); + oneway void notifyRoleSwitchStatus(in String portName, in android.hardware.usb.PortRole newRole, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyEnableUsbDataStatus(in String portName, boolean enable, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyEnableUsbDataWhileDockedStatus(in String portName, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyContaminantEnabledStatus(in String portName, boolean enable, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyQueryPortStatus(in String portName, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyLimitPowerTransferStatus(in String portName, boolean limit, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyResetUsbPortStatus(in String portName, in android.hardware.usb.Status retval, long transactionId); +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/LinkTrainingStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/LinkTrainingStatus.aidl new file mode 100644 index 0000000000..1f0b2dcca7 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/LinkTrainingStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum LinkTrainingStatus { + UNKNOWN = 0, + SUCCESS = 1, + FAILURE = 2, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PlugOrientation.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PlugOrientation.aidl new file mode 100644 index 0000000000..e2185444b1 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PlugOrientation.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum PlugOrientation { + UNKNOWN = 0, + UNPLUGGED = 1, + PLUGGED_UNKNOWN = 2, + PLUGGED_NORMAL = 3, + PLUGGED_FLIPPED = 4, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortDataRole.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortDataRole.aidl new file mode 100644 index 0000000000..105b316775 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortDataRole.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum PortDataRole { + NONE = 0, + HOST = 1, + DEVICE = 2, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortMode.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortMode.aidl new file mode 100644 index 0000000000..34e43343ad --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum PortMode { + NONE = 0, + UFP = 1, + DFP = 2, + DRP = 3, + AUDIO_ACCESSORY = 4, + DEBUG_ACCESSORY = 5, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortPowerRole.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortPowerRole.aidl new file mode 100644 index 0000000000..0e6f3fb426 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortPowerRole.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum PortPowerRole { + NONE = 0, + SOURCE = 1, + SINK = 2, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortRole.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortRole.aidl new file mode 100644 index 0000000000..c66aeccde9 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortRole.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +union PortRole { + android.hardware.usb.PortPowerRole powerRole = android.hardware.usb.PortPowerRole.NONE; + android.hardware.usb.PortDataRole dataRole; + android.hardware.usb.PortMode mode; +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortStatus.aidl new file mode 100644 index 0000000000..cefddba719 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortStatus.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +parcelable PortStatus { + String portName; + android.hardware.usb.PortDataRole currentDataRole = android.hardware.usb.PortDataRole.NONE; + android.hardware.usb.PortPowerRole currentPowerRole = android.hardware.usb.PortPowerRole.NONE; + android.hardware.usb.PortMode currentMode = android.hardware.usb.PortMode.NONE; + boolean canChangeMode; + boolean canChangeDataRole; + boolean canChangePowerRole; + android.hardware.usb.PortMode[] supportedModes; + android.hardware.usb.ContaminantProtectionMode[] supportedContaminantProtectionModes; + boolean supportsEnableContaminantPresenceProtection; + android.hardware.usb.ContaminantProtectionStatus contaminantProtectionStatus = android.hardware.usb.ContaminantProtectionStatus.NONE; + boolean supportsEnableContaminantPresenceDetection; + android.hardware.usb.ContaminantDetectionStatus contaminantDetectionStatus = android.hardware.usb.ContaminantDetectionStatus.NOT_SUPPORTED; + android.hardware.usb.UsbDataStatus[] usbDataStatus; + boolean powerTransferLimited; + android.hardware.usb.PowerBrickStatus powerBrickStatus; + boolean supportsComplianceWarnings = false; + android.hardware.usb.ComplianceWarning[] complianceWarnings = {}; + android.hardware.usb.PlugOrientation plugOrientation = android.hardware.usb.PlugOrientation.UNKNOWN; + android.hardware.usb.AltModeData[] supportedAltModes = {}; +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PowerBrickStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PowerBrickStatus.aidl new file mode 100644 index 0000000000..01d2fdd9f7 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PowerBrickStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum PowerBrickStatus { + UNKNOWN = 0, + CONNECTED = 1, + NOT_CONNECTED = 2, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/Status.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/Status.aidl new file mode 100644 index 0000000000..f28fc2a70e --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/Status.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum Status { + SUCCESS = 0, + ERROR = 1, + INVALID_ARGUMENT = 2, + UNRECOGNIZED_ROLE = 3, + NOT_SUPPORTED = 4, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/UsbDataStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/UsbDataStatus.aidl new file mode 100644 index 0000000000..b976852b3e --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/UsbDataStatus.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum UsbDataStatus { + UNKNOWN = 0, + ENABLED = 1, + DISABLED_OVERHEAT = 2, + DISABLED_CONTAMINANT = 3, + DISABLED_DOCK = 4, + DISABLED_FORCE = 5, + DISABLED_DEBUG = 6, + DISABLED_DOCK_HOST_MODE = 7, + DISABLED_DOCK_DEVICE_MODE = 8, +} diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp index 8b01d95a53..392d2e9ec6 100644 --- a/wifi/aidl/Android.bp +++ b/wifi/aidl/Android.bp @@ -58,6 +58,11 @@ aidl_interface { version: "1", imports: [], }, + { + version: "2", + imports: ["android.hardware.wifi.common-V1"], + }, + ], - frozen: false, + frozen: true, } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/.hash b/wifi/aidl/aidl_api/android.hardware.wifi/2/.hash new file mode 100644 index 0000000000..c3c2983223 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/.hash @@ -0,0 +1 @@ +a5a330d7dabd069484e7458de480eed7561dc3b2 diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AfcChannelAllowance.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AfcChannelAllowance.aidl new file mode 100644 index 0000000000..4d3cd6eb58 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AfcChannelAllowance.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable AfcChannelAllowance { + android.hardware.wifi.AvailableAfcFrequencyInfo[] availableAfcFrequencyInfos; + android.hardware.wifi.AvailableAfcChannelInfo[] availableAfcChannelInfos; + long availabilityExpireTimeMs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcChannelInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcChannelInfo.aidl new file mode 100644 index 0000000000..d2386401ba --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcChannelInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable AvailableAfcChannelInfo { + int globalOperatingClass; + int channelCfi; + int maxEirpDbm; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcFrequencyInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcFrequencyInfo.aidl new file mode 100644 index 0000000000..cbea5affb9 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcFrequencyInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable AvailableAfcFrequencyInfo { + int startFrequencyMhz; + int endFrequencyMhz; + int maxPsd; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanData.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanData.aidl new file mode 100644 index 0000000000..cd4a456917 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanData.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable CachedScanData { + int[] scannedFrequenciesMhz; + android.hardware.wifi.CachedScanResult[] cachedScanResults; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanResult.aidl new file mode 100644 index 0000000000..1806b0f534 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable CachedScanResult { + long timeStampInUs; + byte[] ssid; + byte[6] bssid; + int rssiDbm; + int frequencyMhz; + android.hardware.wifi.WifiChannelWidthInMhz channelWidthMhz; + android.hardware.wifi.WifiRatePreamble preambleType; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifi.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifi.aidl new file mode 100644 index 0000000000..cc995fce3f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifi.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifi { + @PropagateAllowBlocking android.hardware.wifi.IWifiChip getChip(int chipId); + int[] getChipIds(); + boolean isStarted(); + void registerEventCallback(in android.hardware.wifi.IWifiEventCallback callback); + void start(); + void stop(); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiApIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiApIface.aidl new file mode 100644 index 0000000000..e71dde40fd --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiApIface.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiApIface { + String getName(); + String[] getBridgedInstances(); + byte[6] getFactoryMacAddress(); + void setCountryCode(in byte[2] code); + void resetToFactoryMacAddress(); + void setMacAddress(in byte[6] mac); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChip.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChip.aidl new file mode 100644 index 0000000000..5ed7517766 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChip.aidl @@ -0,0 +1,183 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiChip { + void configureChip(in int modeId); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface createApIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface createBridgedApIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiNanIface createNanIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiP2pIface createP2pIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiRttController createRttController(in android.hardware.wifi.IWifiStaIface boundIface); + @PropagateAllowBlocking android.hardware.wifi.IWifiStaIface createStaIface(); + void enableDebugErrorAlerts(in boolean enable); + void flushRingBufferToFile(); + void forceDumpToDebugRingBuffer(in String ringName); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface getApIface(in String ifname); + String[] getApIfaceNames(); + android.hardware.wifi.IWifiChip.ChipMode[] getAvailableModes(); + int getFeatureSet(); + android.hardware.wifi.WifiDebugHostWakeReasonStats getDebugHostWakeReasonStats(); + android.hardware.wifi.WifiDebugRingBufferStatus[] getDebugRingBuffersStatus(); + int getId(); + int getMode(); + @PropagateAllowBlocking android.hardware.wifi.IWifiNanIface getNanIface(in String ifname); + String[] getNanIfaceNames(); + @PropagateAllowBlocking android.hardware.wifi.IWifiP2pIface getP2pIface(in String ifname); + String[] getP2pIfaceNames(); + @PropagateAllowBlocking android.hardware.wifi.IWifiStaIface getStaIface(in String ifname); + String[] getStaIfaceNames(); + android.hardware.wifi.WifiRadioCombination[] getSupportedRadioCombinations(); + android.hardware.wifi.WifiChipCapabilities getWifiChipCapabilities(); + android.hardware.wifi.WifiUsableChannel[] getUsableChannels(in android.hardware.wifi.WifiBand band, in int ifaceModeMask, in int filterMask); + void setAfcChannelAllowance(in android.hardware.wifi.AfcChannelAllowance afcChannelAllowance); + void registerEventCallback(in android.hardware.wifi.IWifiChipEventCallback callback); + void removeApIface(in String ifname); + void removeIfaceInstanceFromBridgedApIface(in String brIfaceName, in String ifaceInstanceName); + void removeNanIface(in String ifname); + void removeP2pIface(in String ifname); + void removeStaIface(in String ifname); + android.hardware.wifi.IWifiChip.ChipDebugInfo requestChipDebugInfo(); + byte[] requestDriverDebugDump(); + byte[] requestFirmwareDebugDump(); + void resetTxPowerScenario(); + void selectTxPowerScenario(in android.hardware.wifi.IWifiChip.TxPowerScenario scenario); + void setCoexUnsafeChannels(in android.hardware.wifi.IWifiChip.CoexUnsafeChannel[] unsafeChannels, in int restrictions); + void setCountryCode(in byte[2] code); + void setLatencyMode(in android.hardware.wifi.IWifiChip.LatencyMode mode); + void setMultiStaPrimaryConnection(in String ifName); + void setMultiStaUseCase(in android.hardware.wifi.IWifiChip.MultiStaUseCase useCase); + void startLoggingToDebugRingBuffer(in String ringName, in android.hardware.wifi.WifiDebugRingBufferVerboseLevel verboseLevel, in int maxIntervalInSec, in int minDataSizeInBytes); + void stopLoggingToDebugRingBuffer(); + void triggerSubsystemRestart(); + void enableStaChannelForPeerNetwork(in int channelCategoryEnableFlag); + void setMloMode(in android.hardware.wifi.IWifiChip.ChipMloMode mode); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface createApOrBridgedApIface(in android.hardware.wifi.IfaceConcurrencyType iface, in android.hardware.wifi.common.OuiKeyedData[] vendorData); + void setVoipMode(in android.hardware.wifi.IWifiChip.VoipMode mode); + const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF; + @Backing(type="int") @VintfStability + enum FeatureSetMask { + SET_TX_POWER_LIMIT = (1 << 0) /* 1 */, + D2D_RTT = (1 << 1) /* 2 */, + D2AP_RTT = (1 << 2) /* 4 */, + USE_BODY_HEAD_SAR = (1 << 3) /* 8 */, + SET_LATENCY_MODE = (1 << 4) /* 16 */, + P2P_RAND_MAC = (1 << 5) /* 32 */, + WIGIG = (1 << 6) /* 64 */, + SET_AFC_CHANNEL_ALLOWANCE = (1 << 7) /* 128 */, + T2LM_NEGOTIATION = (1 << 8) /* 256 */, + SET_VOIP_MODE = (1 << 9) /* 512 */, + } + @VintfStability + parcelable ChipConcurrencyCombinationLimit { + android.hardware.wifi.IfaceConcurrencyType[] types; + int maxIfaces; + } + @VintfStability + parcelable ChipConcurrencyCombination { + android.hardware.wifi.IWifiChip.ChipConcurrencyCombinationLimit[] limits; + } + @VintfStability + parcelable ChipDebugInfo { + String driverDescription; + String firmwareDescription; + } + @VintfStability + parcelable ChipIfaceCombinationLimit { + android.hardware.wifi.IfaceType[] types; + int maxIfaces; + } + @VintfStability + parcelable ChipIfaceCombination { + android.hardware.wifi.IWifiChip.ChipIfaceCombinationLimit[] limits; + } + @VintfStability + parcelable ChipMode { + int id; + android.hardware.wifi.IWifiChip.ChipConcurrencyCombination[] availableCombinations; + } + @Backing(type="int") @VintfStability + enum CoexRestriction { + WIFI_DIRECT = (1 << 0) /* 1 */, + SOFTAP = (1 << 1) /* 2 */, + WIFI_AWARE = (1 << 2) /* 4 */, + } + @VintfStability + parcelable CoexUnsafeChannel { + android.hardware.wifi.WifiBand band; + int channel; + int powerCapDbm; + } + @Backing(type="int") @VintfStability + enum LatencyMode { + NORMAL = 0, + LOW = 1, + } + @Backing(type="byte") @VintfStability + enum MultiStaUseCase { + DUAL_STA_TRANSIENT_PREFER_PRIMARY = 0, + DUAL_STA_NON_TRANSIENT_UNBIASED = 1, + } + @Backing(type="int") @VintfStability + enum TxPowerScenario { + VOICE_CALL = 0, + ON_HEAD_CELL_OFF = 1, + ON_HEAD_CELL_ON = 2, + ON_BODY_CELL_OFF = 3, + ON_BODY_CELL_ON = 4, + } + @Backing(type="int") @VintfStability + enum UsableChannelFilter { + CELLULAR_COEXISTENCE = (1 << 0) /* 1 */, + CONCURRENCY = (1 << 1) /* 2 */, + NAN_INSTANT_MODE = (1 << 2) /* 4 */, + } + @Backing(type="int") @VintfStability + enum VoipMode { + OFF = 0, + VOICE = 1, + } + @Backing(type="int") @VintfStability + enum ChannelCategoryMask { + INDOOR_CHANNEL = (1 << 0) /* 1 */, + DFS_CHANNEL = (1 << 1) /* 2 */, + } + @Backing(type="int") @VintfStability + enum ChipMloMode { + DEFAULT = 0, + LOW_LATENCY = 1, + HIGH_THROUGHPUT = 2, + LOW_POWER = 3, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChipEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChipEventCallback.aidl new file mode 100644 index 0000000000..3fd8533c44 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChipEventCallback.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiChipEventCallback { + oneway void onChipReconfigureFailure(in android.hardware.wifi.WifiStatusCode status); + oneway void onChipReconfigured(in int modeId); + oneway void onDebugErrorAlert(in int errorCode, in byte[] debugData); + oneway void onDebugRingBufferDataAvailable(in android.hardware.wifi.WifiDebugRingBufferStatus status, in byte[] data); + oneway void onIfaceAdded(in android.hardware.wifi.IfaceType type, in String name); + oneway void onIfaceRemoved(in android.hardware.wifi.IfaceType type, in String name); + oneway void onRadioModeChange(in android.hardware.wifi.IWifiChipEventCallback.RadioModeInfo[] radioModeInfos); + @VintfStability + parcelable IfaceInfo { + String name; + int channel; + } + @VintfStability + parcelable RadioModeInfo { + int radioId; + android.hardware.wifi.WifiBand bandInfo; + android.hardware.wifi.IWifiChipEventCallback.IfaceInfo[] ifaceInfos; + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiEventCallback.aidl new file mode 100644 index 0000000000..00e5cb6e09 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiEventCallback.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiEventCallback { + oneway void onFailure(in android.hardware.wifi.WifiStatusCode status); + oneway void onStart(); + oneway void onStop(); + oneway void onSubsystemRestart(in android.hardware.wifi.WifiStatusCode status); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIface.aidl new file mode 100644 index 0000000000..0e2f90fbc0 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIface.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiNanIface { + String getName(); + void configRequest(in char cmdId, in android.hardware.wifi.NanConfigRequest msg1, in android.hardware.wifi.NanConfigRequestSupplemental msg2); + void createDataInterfaceRequest(in char cmdId, in String ifaceName); + void deleteDataInterfaceRequest(in char cmdId, in String ifaceName); + void disableRequest(in char cmdId); + void enableRequest(in char cmdId, in android.hardware.wifi.NanEnableRequest msg1, in android.hardware.wifi.NanConfigRequestSupplemental msg2); + void getCapabilitiesRequest(in char cmdId); + void initiateDataPathRequest(in char cmdId, in android.hardware.wifi.NanInitiateDataPathRequest msg); + void registerEventCallback(in android.hardware.wifi.IWifiNanIfaceEventCallback callback); + void respondToDataPathIndicationRequest(in char cmdId, in android.hardware.wifi.NanRespondToDataPathIndicationRequest msg); + void startPublishRequest(in char cmdId, in android.hardware.wifi.NanPublishRequest msg); + void startSubscribeRequest(in char cmdId, in android.hardware.wifi.NanSubscribeRequest msg); + void stopPublishRequest(in char cmdId, in byte sessionId); + void stopSubscribeRequest(in char cmdId, in byte sessionId); + void terminateDataPathRequest(in char cmdId, in int ndpInstanceId); + void suspendRequest(in char cmdId, in byte sessionId); + void resumeRequest(in char cmdId, in byte sessionId); + void transmitFollowupRequest(in char cmdId, in android.hardware.wifi.NanTransmitFollowupRequest msg); + void initiatePairingRequest(in char cmdId, in android.hardware.wifi.NanPairingRequest msg); + void respondToPairingIndicationRequest(in char cmdId, in android.hardware.wifi.NanRespondToPairingIndicationRequest msg); + void initiateBootstrappingRequest(in char cmdId, in android.hardware.wifi.NanBootstrappingRequest msg); + void respondToBootstrappingIndicationRequest(in char cmdId, in android.hardware.wifi.NanBootstrappingResponse msg); + void terminatePairingRequest(in char cmdId, in int pairingInstanceId); + const int MIN_DATA_PATH_CONFIG_PASSPHRASE_LENGTH = 8; + const int MAX_DATA_PATH_CONFIG_PASSPHRASE_LENGTH = 63; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl new file mode 100644 index 0000000000..8c443309ee --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiNanIfaceEventCallback { + oneway void eventClusterEvent(in android.hardware.wifi.NanClusterEventInd event); + oneway void eventDataPathConfirm(in android.hardware.wifi.NanDataPathConfirmInd event); + oneway void eventDataPathRequest(in android.hardware.wifi.NanDataPathRequestInd event); + oneway void eventDataPathScheduleUpdate(in android.hardware.wifi.NanDataPathScheduleUpdateInd event); + oneway void eventDataPathTerminated(in int ndpInstanceId); + oneway void eventDisabled(in android.hardware.wifi.NanStatus status); + oneway void eventFollowupReceived(in android.hardware.wifi.NanFollowupReceivedInd event); + oneway void eventMatch(in android.hardware.wifi.NanMatchInd event); + oneway void eventMatchExpired(in byte discoverySessionId, in int peerId); + oneway void eventPublishTerminated(in byte sessionId, in android.hardware.wifi.NanStatus status); + oneway void eventSubscribeTerminated(in byte sessionId, in android.hardware.wifi.NanStatus status); + oneway void eventTransmitFollowup(in char id, in android.hardware.wifi.NanStatus status); + oneway void eventSuspensionModeChanged(in android.hardware.wifi.NanSuspensionModeChangeInd event); + oneway void notifyCapabilitiesResponse(in char id, in android.hardware.wifi.NanStatus status, in android.hardware.wifi.NanCapabilities capabilities); + oneway void notifyConfigResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyCreateDataInterfaceResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyDeleteDataInterfaceResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyDisableResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyEnableResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyInitiateDataPathResponse(in char id, in android.hardware.wifi.NanStatus status, in int ndpInstanceId); + oneway void notifyRespondToDataPathIndicationResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyStartPublishResponse(in char id, in android.hardware.wifi.NanStatus status, in byte sessionId); + oneway void notifyStartSubscribeResponse(in char id, in android.hardware.wifi.NanStatus status, in byte sessionId); + oneway void notifyStopPublishResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyStopSubscribeResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyTerminateDataPathResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifySuspendResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyResumeResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyTransmitFollowupResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void eventPairingRequest(in android.hardware.wifi.NanPairingRequestInd event); + oneway void eventPairingConfirm(in android.hardware.wifi.NanPairingConfirmInd event); + oneway void notifyInitiatePairingResponse(in char id, in android.hardware.wifi.NanStatus status, in int pairingInstanceId); + oneway void notifyRespondToPairingIndicationResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void eventBootstrappingRequest(in android.hardware.wifi.NanBootstrappingRequestInd event); + oneway void eventBootstrappingConfirm(in android.hardware.wifi.NanBootstrappingConfirmInd event); + oneway void notifyInitiateBootstrappingResponse(in char id, in android.hardware.wifi.NanStatus status, in int bootstrappingInstanceId); + oneway void notifyRespondToBootstrappingIndicationResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyTerminatePairingResponse(in char id, in android.hardware.wifi.NanStatus status); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiP2pIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiP2pIface.aidl new file mode 100644 index 0000000000..5e9948e0b7 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiP2pIface.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiP2pIface { + String getName(); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttController.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttController.aidl new file mode 100644 index 0000000000..730a055eeb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttController.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiRttController { + void disableResponder(in int cmdId); + void enableResponder(in int cmdId, in android.hardware.wifi.WifiChannelInfo channelHint, in int maxDurationInSeconds, in android.hardware.wifi.RttResponder info); + android.hardware.wifi.IWifiStaIface getBoundIface(); + android.hardware.wifi.RttCapabilities getCapabilities(); + android.hardware.wifi.RttResponder getResponderInfo(); + void rangeCancel(in int cmdId, in android.hardware.wifi.MacAddress[] addrs); + void rangeRequest(in int cmdId, in android.hardware.wifi.RttConfig[] rttConfigs); + void registerEventCallback(in android.hardware.wifi.IWifiRttControllerEventCallback callback); + void setLci(in int cmdId, in android.hardware.wifi.RttLciInformation lci); + void setLcr(in int cmdId, in android.hardware.wifi.RttLcrInformation lcr); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttControllerEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttControllerEventCallback.aidl new file mode 100644 index 0000000000..a6a33fc049 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttControllerEventCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiRttControllerEventCallback { + oneway void onResults(in int cmdId, in android.hardware.wifi.RttResult[] results); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIface.aidl new file mode 100644 index 0000000000..ccb7876513 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIface.aidl @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiStaIface { + String getName(); + void configureRoaming(in android.hardware.wifi.StaRoamingConfig config); + void disableLinkLayerStatsCollection(); + void enableLinkLayerStatsCollection(in boolean debug); + void enableNdOffload(in boolean enable); + android.hardware.wifi.StaApfPacketFilterCapabilities getApfPacketFilterCapabilities(); + android.hardware.wifi.StaBackgroundScanCapabilities getBackgroundScanCapabilities(); + int getFeatureSet(); + android.hardware.wifi.WifiDebugRxPacketFateReport[] getDebugRxPacketFates(); + android.hardware.wifi.WifiDebugTxPacketFateReport[] getDebugTxPacketFates(); + byte[6] getFactoryMacAddress(); + android.hardware.wifi.StaLinkLayerStats getLinkLayerStats(); + android.hardware.wifi.StaRoamingCapabilities getRoamingCapabilities(); + void installApfPacketFilter(in byte[] program); + byte[] readApfPacketFilterData(); + void registerEventCallback(in android.hardware.wifi.IWifiStaIfaceEventCallback callback); + void setMacAddress(in byte[6] mac); + void setRoamingState(in android.hardware.wifi.StaRoamingState state); + void setScanMode(in boolean enable); + void startBackgroundScan(in int cmdId, in android.hardware.wifi.StaBackgroundScanParameters params); + void startDebugPacketFateMonitoring(); + void startRssiMonitoring(in int cmdId, in int maxRssi, in int minRssi); + void startSendingKeepAlivePackets(in int cmdId, in byte[] ipPacketData, in char etherType, in byte[6] srcAddress, in byte[6] dstAddress, in int periodInMs); + void stopBackgroundScan(in int cmdId); + void stopRssiMonitoring(in int cmdId); + void stopSendingKeepAlivePackets(in int cmdId); + void setDtimMultiplier(in int multiplier); + android.hardware.wifi.CachedScanData getCachedScanData(); + android.hardware.wifi.TwtCapabilities twtGetCapabilities(); + void twtSessionSetup(in int cmdId, in android.hardware.wifi.TwtRequest twtRequest); + void twtSessionUpdate(in int cmdId, in int sessionId, in android.hardware.wifi.TwtRequest twtRequest); + void twtSessionSuspend(in int cmdId, in int sessionId); + void twtSessionResume(in int cmdId, in int sessionId); + void twtSessionTeardown(in int cmdId, in int sessionId); + void twtSessionGetStats(in int cmdId, in int sessionId); + @Backing(type="int") @VintfStability + enum FeatureSetMask { + APF = (1 << 0) /* 1 */, + BACKGROUND_SCAN = (1 << 1) /* 2 */, + LINK_LAYER_STATS = (1 << 2) /* 4 */, + RSSI_MONITOR = (1 << 3) /* 8 */, + CONTROL_ROAMING = (1 << 4) /* 16 */, + PROBE_IE_ALLOWLIST = (1 << 5) /* 32 */, + SCAN_RAND = (1 << 6) /* 64 */, + STA_5G = (1 << 7) /* 128 */, + HOTSPOT = (1 << 8) /* 256 */, + PNO = (1 << 9) /* 512 */, + TDLS = (1 << 10) /* 1024 */, + TDLS_OFFCHANNEL = (1 << 11) /* 2048 */, + ND_OFFLOAD = (1 << 12) /* 4096 */, + KEEP_ALIVE = (1 << 13) /* 8192 */, + ROAMING_MODE_CONTROL = (1 << 14) /* 16384 */, + CACHED_SCAN_DATA = (1 << 15) /* 32768 */, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl new file mode 100644 index 0000000000..629ca3d922 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiStaIfaceEventCallback { + oneway void onBackgroundFullScanResult(in int cmdId, in int bucketsScanned, in android.hardware.wifi.StaScanResult result); + oneway void onBackgroundScanFailure(in int cmdId); + oneway void onBackgroundScanResults(in int cmdId, in android.hardware.wifi.StaScanData[] scanDatas); + oneway void onRssiThresholdBreached(in int cmdId, in byte[6] currBssid, in int currRssi); + oneway void onTwtFailure(in int cmdId, in android.hardware.wifi.IWifiStaIfaceEventCallback.TwtErrorCode error); + oneway void onTwtSessionCreate(in int cmdId, in android.hardware.wifi.TwtSession twtSession); + oneway void onTwtSessionUpdate(in int cmdId, in android.hardware.wifi.TwtSession twtSession); + oneway void onTwtSessionTeardown(in int cmdId, in int twtSessionId, in android.hardware.wifi.IWifiStaIfaceEventCallback.TwtTeardownReasonCode reasonCode); + oneway void onTwtSessionStats(in int cmdId, in int twtSessionId, in android.hardware.wifi.TwtSessionStats twtSessionStats); + oneway void onTwtSessionSuspend(in int cmdId, in int twtSessionId); + oneway void onTwtSessionResume(in int cmdId, in int twtSessionId); + @Backing(type="byte") @VintfStability + enum TwtErrorCode { + FAILURE_UNKNOWN, + ALREADY_RESUMED, + ALREADY_SUSPENDED, + INVALID_PARAMS, + MAX_SESSION_REACHED, + NOT_AVAILABLE, + NOT_SUPPORTED, + PEER_NOT_SUPPORTED, + PEER_REJECTED, + TIMEOUT, + } + @Backing(type="byte") @VintfStability + enum TwtTeardownReasonCode { + UNKNOWN, + LOCALLY_REQUESTED, + INTERNALLY_INITIATED, + PEER_INITIATED, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceConcurrencyType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceConcurrencyType.aidl new file mode 100644 index 0000000000..d584423f5a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceConcurrencyType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum IfaceConcurrencyType { + STA, + AP, + AP_BRIDGED, + P2P, + NAN_IFACE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceType.aidl new file mode 100644 index 0000000000..67022dfdff --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum IfaceType { + STA, + AP, + P2P, + NAN_IFACE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/MacAddress.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/MacAddress.aidl new file mode 100644 index 0000000000..c4a06136ec --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/MacAddress.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable MacAddress { + byte[6] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandIndex.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandIndex.aidl new file mode 100644 index 0000000000..3f1ea5e444 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandIndex.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanBandIndex { + NAN_BAND_24GHZ = 0, + NAN_BAND_5GHZ, + NAN_BAND_6GHZ = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandSpecificConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandSpecificConfig.aidl new file mode 100644 index 0000000000..57540b3835 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandSpecificConfig.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBandSpecificConfig { + byte rssiClose; + byte rssiMiddle; + byte rssiCloseProximity; + char dwellTimeMs; + char scanPeriodSec; + boolean validDiscoveryWindowIntervalVal; + byte discoveryWindowIntervalVal; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingConfirmInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingConfirmInd.aidl new file mode 100644 index 0000000000..5ab8dcd213 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingConfirmInd.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBootstrappingConfirmInd { + int bootstrappingInstanceId; + android.hardware.wifi.NanBootstrappingResponseCode responseCode; + android.hardware.wifi.NanStatus reasonCode; + int comeBackDelay; + byte[] cookie; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingMethod.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingMethod.aidl new file mode 100644 index 0000000000..6ff62b2f52 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingMethod.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanBootstrappingMethod { + BOOTSTRAPPING_OPPORTUNISTIC_MASK = (1 << 0) /* 1 */, + BOOTSTRAPPING_PIN_CODE_DISPLAY_MASK = (1 << 1) /* 2 */, + BOOTSTRAPPING_PASSPHRASE_DISPLAY_MASK = (1 << 2) /* 4 */, + BOOTSTRAPPING_QR_DISPLAY_MASK = (1 << 3) /* 8 */, + BOOTSTRAPPING_NFC_TAG_MASK = (1 << 4) /* 16 */, + BOOTSTRAPPING_PIN_CODE_KEYPAD_MASK = (1 << 5) /* 32 */, + BOOTSTRAPPING_PASSPHRASE_KEYPAD_MASK = (1 << 6) /* 64 */, + BOOTSTRAPPING_QR_SCAN_MASK = (1 << 7) /* 128 */, + BOOTSTRAPPING_NFC_READER_MASK = (1 << 8) /* 256 */, + BOOTSTRAPPING_SERVICE_MANAGED_MASK = (1 << 14) /* 16384 */, + BOOTSTRAPPING_HANDSHAKE_SHIP_MASK = (1 << 15) /* 32768 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequest.aidl new file mode 100644 index 0000000000..b5f78b06b5 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequest.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBootstrappingRequest { + int peerId; + byte[6] peerDiscMacAddr; + android.hardware.wifi.NanBootstrappingMethod requestBootstrappingMethod; + byte[] cookie; + boolean isComeback; + byte discoverySessionId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequestInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequestInd.aidl new file mode 100644 index 0000000000..a4398e9310 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequestInd.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBootstrappingRequestInd { + byte discoverySessionId; + int peerId; + byte[6] peerDiscMacAddr; + int bootstrappingInstanceId; + android.hardware.wifi.NanBootstrappingMethod requestBootstrappingMethod; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponse.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponse.aidl new file mode 100644 index 0000000000..7b17493d88 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponse.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBootstrappingResponse { + int bootstrappingInstanceId; + boolean acceptRequest; + byte discoverySessionId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponseCode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponseCode.aidl new file mode 100644 index 0000000000..a3e9e4d2ae --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponseCode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanBootstrappingResponseCode { + NAN_BOOTSTRAPPING_REQUEST_ACCEPT = 0, + NAN_BOOTSTRAPPING_REQUEST_REJECT, + NAN_BOOTSTRAPPING_REQUEST_COMEBACK, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCapabilities.aidl new file mode 100644 index 0000000000..a30893a0c2 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCapabilities.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanCapabilities { + int maxConcurrentClusters; + int maxPublishes; + int maxSubscribes; + int maxServiceNameLen; + int maxMatchFilterLen; + int maxTotalMatchFilterLen; + int maxServiceSpecificInfoLen; + int maxExtendedServiceSpecificInfoLen; + int maxNdiInterfaces; + int maxNdpSessions; + int maxAppInfoLen; + int maxQueuedTransmitFollowupMsgs; + int maxSubscribeInterfaceAddresses; + int supportedCipherSuites; + boolean instantCommunicationModeSupportFlag; + boolean supports6g; + boolean supportsHe; + boolean supportsPairing; + boolean supportsSetClusterId; + boolean supportsSuspension; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCipherSuiteType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCipherSuiteType.aidl new file mode 100644 index 0000000000..6f3158e670 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCipherSuiteType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanCipherSuiteType { + NONE = 0, + SHARED_KEY_128_MASK = (1 << 0) /* 1 */, + SHARED_KEY_256_MASK = (1 << 1) /* 2 */, + PUBLIC_KEY_2WDH_128_MASK = (1 << 2) /* 4 */, + PUBLIC_KEY_2WDH_256_MASK = (1 << 3) /* 8 */, + PUBLIC_KEY_PASN_128_MASK = (1 << 6) /* 64 */, + PUBLIC_KEY_PASN_256_MASK = (1 << 7) /* 128 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventInd.aidl new file mode 100644 index 0000000000..7a3ff8151a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventInd.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanClusterEventInd { + android.hardware.wifi.NanClusterEventType eventType; + byte[6] addr; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventType.aidl new file mode 100644 index 0000000000..6c20543d86 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanClusterEventType { + DISCOVERY_MAC_ADDRESS_CHANGED = 0, + STARTED_CLUSTER, + JOINED_CLUSTER, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequest.aidl new file mode 100644 index 0000000000..a3693d6498 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequest.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanConfigRequest { + byte masterPref; + boolean disableDiscoveryAddressChangeIndication; + boolean disableStartedClusterIndication; + boolean disableJoinedClusterIndication; + boolean includePublishServiceIdsInBeacon; + byte numberOfPublishServiceIdsInBeacon; + boolean includeSubscribeServiceIdsInBeacon; + byte numberOfSubscribeServiceIdsInBeacon; + char rssiWindowSize; + int macAddressRandomizationIntervalSec; + android.hardware.wifi.NanBandSpecificConfig[3] bandSpecificConfig; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequestSupplemental.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequestSupplemental.aidl new file mode 100644 index 0000000000..99f2af771e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequestSupplemental.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanConfigRequestSupplemental { + int discoveryBeaconIntervalMs; + int numberOfSpatialStreamsInDiscovery; + boolean enableDiscoveryWindowEarlyTermination; + boolean enableRanging; + boolean enableInstantCommunicationMode; + int instantModeChannel; + int clusterId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelCfg.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelCfg.aidl new file mode 100644 index 0000000000..4233c32863 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelCfg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanDataPathChannelCfg { + CHANNEL_NOT_REQUESTED = 0, + REQUEST_CHANNEL_SETUP, + FORCE_CHANNEL_SETUP, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelInfo.aidl new file mode 100644 index 0000000000..d111db784c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathChannelInfo { + int channelFreq; + android.hardware.wifi.WifiChannelWidthInMhz channelBandwidth; + int numSpatialStreams; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathConfirmInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathConfirmInd.aidl new file mode 100644 index 0000000000..2e1e2caece --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathConfirmInd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathConfirmInd { + int ndpInstanceId; + boolean dataPathSetupSuccess; + byte[6] peerNdiMacAddr; + byte[] appInfo; + android.hardware.wifi.NanStatus status; + android.hardware.wifi.NanDataPathChannelInfo[] channelInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathRequestInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathRequestInd.aidl new file mode 100644 index 0000000000..74d5b73aba --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathRequestInd.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathRequestInd { + byte discoverySessionId; + byte[6] peerDiscMacAddr; + int ndpInstanceId; + boolean securityRequired; + byte[] appInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl new file mode 100644 index 0000000000..5fabf5539c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathScheduleUpdateInd { + byte[6] peerDiscoveryAddress; + android.hardware.wifi.NanDataPathChannelInfo[] channelInfo; + int[] ndpInstanceIds; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityConfig.aidl new file mode 100644 index 0000000000..48e9501b3e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityConfig.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathSecurityConfig { + android.hardware.wifi.NanDataPathSecurityType securityType; + android.hardware.wifi.NanCipherSuiteType cipherType; + byte[32] pmk; + byte[] passphrase; + byte[16] scid; + boolean enable16ReplyCountersForTksa; + boolean enable16ReplyCountersForGtksa; + boolean supportGtkAndIgtk; + boolean supportBigtksa; + boolean enableNcsBip256; + boolean requiresEnhancedFrameProtection; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityType.aidl new file mode 100644 index 0000000000..cb7904d180 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanDataPathSecurityType { + OPEN, + PMK, + PASSPHRASE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDebugConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDebugConfig.aidl new file mode 100644 index 0000000000..b84d891221 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDebugConfig.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDebugConfig { + boolean validClusterIdVals; + char clusterIdBottomRangeVal; + char clusterIdTopRangeVal; + boolean validIntfAddrVal; + byte[6] intfAddrVal; + boolean validOuiVal; + int ouiVal; + boolean validRandomFactorForceVal; + byte randomFactorForceVal; + boolean validHopCountForceVal; + byte hopCountForceVal; + boolean validDiscoveryChannelVal; + int[3] discoveryChannelMhzVal; + boolean validUseBeaconsInBandVal; + boolean[3] useBeaconsInBandVal; + boolean validUseSdfInBandVal; + boolean[3] useSdfInBandVal; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDiscoveryCommonConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDiscoveryCommonConfig.aidl new file mode 100644 index 0000000000..96d940ae31 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDiscoveryCommonConfig.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDiscoveryCommonConfig { + byte sessionId; + char ttlSec; + char discoveryWindowPeriod; + byte discoveryCount; + byte[] serviceName; + android.hardware.wifi.NanMatchAlg discoveryMatchIndicator; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + byte[] rxMatchFilter; + byte[] txMatchFilter; + boolean useRssiThreshold; + boolean disableDiscoveryTerminationIndication; + boolean disableMatchExpirationIndication; + boolean disableFollowupReceivedIndication; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + boolean rangingRequired; + int rangingIntervalMs; + int configRangingIndications; + char distanceIngressCm; + char distanceEgressCm; + boolean enableSessionSuspendability; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanEnableRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanEnableRequest.aidl new file mode 100644 index 0000000000..eaa009cfd1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanEnableRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanEnableRequest { + boolean[3] operateInBand; + byte hopCountMax; + android.hardware.wifi.NanConfigRequest configParams; + android.hardware.wifi.NanDebugConfig debugConfigs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanFollowupReceivedInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanFollowupReceivedInd.aidl new file mode 100644 index 0000000000..743ad9d227 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanFollowupReceivedInd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanFollowupReceivedInd { + byte discoverySessionId; + int peerId; + byte[6] addr; + boolean receivedInFaw; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanIdentityResolutionAttribute.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanIdentityResolutionAttribute.aidl new file mode 100644 index 0000000000..843107ea40 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanIdentityResolutionAttribute.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanIdentityResolutionAttribute { + byte[8] nonce; + byte[8] tag; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanInitiateDataPathRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanInitiateDataPathRequest.aidl new file mode 100644 index 0000000000..740a140780 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanInitiateDataPathRequest.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanInitiateDataPathRequest { + int peerId; + byte[6] peerDiscMacAddr; + android.hardware.wifi.NanDataPathChannelCfg channelRequestType; + int channel; + String ifaceName; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + byte[] appInfo; + byte[] serviceNameOutOfBand; + byte discoverySessionId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchAlg.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchAlg.aidl new file mode 100644 index 0000000000..93ac26b25f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchAlg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanMatchAlg { + MATCH_ONCE = 0, + MATCH_CONTINUOUS, + MATCH_NEVER, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchInd.aidl new file mode 100644 index 0000000000..4acc7732f3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchInd.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanMatchInd { + byte discoverySessionId; + int peerId; + byte[6] addr; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + byte[] matchFilter; + boolean matchOccurredInBeaconFlag; + boolean outOfResourceFlag; + byte rssiValue; + android.hardware.wifi.NanCipherSuiteType peerCipherType; + boolean peerRequiresSecurityEnabledInNdp; + boolean peerRequiresRanging; + int rangingMeasurementInMm; + int rangingIndicationType; + byte[] scid; + android.hardware.wifi.NanPairingConfig peerPairingConfig; + android.hardware.wifi.NanIdentityResolutionAttribute peerNira; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingAkm.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingAkm.aidl new file mode 100644 index 0000000000..05bbaee0d5 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingAkm.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanPairingAkm { + SAE = 0, + PASN = 1, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfig.aidl new file mode 100644 index 0000000000..1c04a96d6c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfig.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingConfig { + boolean enablePairingSetup; + boolean enablePairingCache; + boolean enablePairingVerification; + int supportedBootstrappingMethods; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfirmInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfirmInd.aidl new file mode 100644 index 0000000000..699ecdce77 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfirmInd.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingConfirmInd { + int pairingInstanceId; + boolean pairingSuccess; + android.hardware.wifi.NanStatus status; + android.hardware.wifi.NanPairingRequestType requestType; + boolean enablePairingCache; + android.hardware.wifi.NpkSecurityAssociation npksa; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequest.aidl new file mode 100644 index 0000000000..121b038b54 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingRequest { + int peerId; + byte[6] peerDiscMacAddr; + android.hardware.wifi.NanPairingRequestType requestType; + boolean enablePairingCache; + byte[16] pairingIdentityKey; + android.hardware.wifi.NanPairingSecurityConfig securityConfig; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestInd.aidl new file mode 100644 index 0000000000..57072c04a4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestInd.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingRequestInd { + byte discoverySessionId; + int peerId; + byte[6] peerDiscMacAddr; + int pairingInstanceId; + android.hardware.wifi.NanPairingRequestType requestType; + boolean enablePairingCache; + android.hardware.wifi.NanIdentityResolutionAttribute peerNira; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestType.aidl new file mode 100644 index 0000000000..3488340bf4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanPairingRequestType { + NAN_PAIRING_SETUP = 0, + NAN_PAIRING_VERIFICATION, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityConfig.aidl new file mode 100644 index 0000000000..1a6a13c550 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityConfig.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingSecurityConfig { + android.hardware.wifi.NanPairingSecurityType securityType; + byte[32] pmk; + byte[] passphrase; + android.hardware.wifi.NanPairingAkm akm; + android.hardware.wifi.NanCipherSuiteType cipherType; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityType.aidl new file mode 100644 index 0000000000..9f6c774021 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanPairingSecurityType { + OPPORTUNISTIC, + PMK, + PASSPHRASE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishRequest.aidl new file mode 100644 index 0000000000..bdc83579ad --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPublishRequest { + android.hardware.wifi.NanDiscoveryCommonConfig baseConfigs; + android.hardware.wifi.NanPublishType publishType; + android.hardware.wifi.NanTxType txType; + boolean autoAcceptDataPathRequests; + android.hardware.wifi.NanPairingConfig pairingConfig; + byte[16] identityKey; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishType.aidl new file mode 100644 index 0000000000..30dffb29d1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanPublishType { + UNSOLICITED = 0, + SOLICITED, + UNSOLICITED_SOLICITED, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRangingIndication.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRangingIndication.aidl new file mode 100644 index 0000000000..cf72dcea23 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRangingIndication.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanRangingIndication { + CONTINUOUS_INDICATION_MASK = (1 << 0) /* 1 */, + INGRESS_MET_MASK = (1 << 1) /* 2 */, + EGRESS_MET_MASK = (1 << 2) /* 4 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl new file mode 100644 index 0000000000..0f873b5ea8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanRespondToDataPathIndicationRequest { + boolean acceptRequest; + int ndpInstanceId; + String ifaceName; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + byte[] appInfo; + byte[] serviceNameOutOfBand; + byte discoverySessionId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToPairingIndicationRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToPairingIndicationRequest.aidl new file mode 100644 index 0000000000..da81c394b7 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToPairingIndicationRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanRespondToPairingIndicationRequest { + boolean acceptRequest; + int pairingInstanceId; + android.hardware.wifi.NanPairingRequestType requestType; + boolean enablePairingCache; + byte[16] pairingIdentityKey; + android.hardware.wifi.NanPairingSecurityConfig securityConfig; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSrfType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSrfType.aidl new file mode 100644 index 0000000000..82409fd5aa --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSrfType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanSrfType { + BLOOM_FILTER = 0, + PARTIAL_MAC_ADDR, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatus.aidl new file mode 100644 index 0000000000..834558ae72 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanStatus { + android.hardware.wifi.NanStatusCode status; + String description; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatusCode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatusCode.aidl new file mode 100644 index 0000000000..ec12eb0c4c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatusCode.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanStatusCode { + SUCCESS = 0, + INTERNAL_FAILURE = 1, + PROTOCOL_FAILURE = 2, + INVALID_SESSION_ID = 3, + NO_RESOURCES_AVAILABLE = 4, + INVALID_ARGS = 5, + INVALID_PEER_ID = 6, + INVALID_NDP_ID = 7, + NAN_NOT_ALLOWED = 8, + NO_OTA_ACK = 9, + ALREADY_ENABLED = 10, + FOLLOWUP_TX_QUEUE_FULL = 11, + UNSUPPORTED_CONCURRENCY_NAN_DISABLED = 12, + INVALID_PAIRING_ID = 13, + INVALID_BOOTSTRAPPING_ID = 14, + REDUNDANT_REQUEST = 15, + NOT_SUPPORTED = 16, + NO_CONNECTION = 17, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeRequest.aidl new file mode 100644 index 0000000000..bf525a9c7e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeRequest.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanSubscribeRequest { + android.hardware.wifi.NanDiscoveryCommonConfig baseConfigs; + android.hardware.wifi.NanSubscribeType subscribeType; + android.hardware.wifi.NanSrfType srfType; + boolean srfRespondIfInAddressSet; + boolean shouldUseSrf; + boolean isSsiRequiredForMatch; + android.hardware.wifi.MacAddress[] intfAddr; + android.hardware.wifi.NanPairingConfig pairingConfig; + byte[16] identityKey; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeType.aidl new file mode 100644 index 0000000000..4f06df956d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanSubscribeType { + PASSIVE = 0, + ACTIVE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSuspensionModeChangeInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSuspensionModeChangeInd.aidl new file mode 100644 index 0000000000..557fc796d9 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSuspensionModeChangeInd.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanSuspensionModeChangeInd { + boolean isSuspended; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTransmitFollowupRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTransmitFollowupRequest.aidl new file mode 100644 index 0000000000..20c94d9558 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTransmitFollowupRequest.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanTransmitFollowupRequest { + byte discoverySessionId; + int peerId; + byte[6] addr; + boolean isHighPriority; + boolean shouldUseDiscoveryWindow; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + boolean disableFollowupResultIndication; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTxType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTxType.aidl new file mode 100644 index 0000000000..798d3a29e6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTxType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanTxType { + BROADCAST = 0, + UNICAST, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NpkSecurityAssociation.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NpkSecurityAssociation.aidl new file mode 100644 index 0000000000..508e92009d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NpkSecurityAssociation.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NpkSecurityAssociation { + byte[16] peerNanIdentityKey; + byte[16] localNanIdentityKey; + byte[32] npk; + android.hardware.wifi.NanPairingAkm akm; + android.hardware.wifi.NanCipherSuiteType cipherType; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttBw.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttBw.aidl new file mode 100644 index 0000000000..7cc700250e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttBw.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttBw { + BW_UNSPECIFIED = 0x0, + BW_5MHZ = 0x01, + BW_10MHZ = 0x02, + BW_20MHZ = 0x04, + BW_40MHZ = 0x08, + BW_80MHZ = 0x10, + BW_160MHZ = 0x20, + BW_320MHZ = 0x40, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttCapabilities.aidl new file mode 100644 index 0000000000..6c6408454a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttCapabilities.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttCapabilities { + boolean rttOneSidedSupported; + boolean rttFtmSupported; + boolean lciSupported; + boolean lcrSupported; + boolean responderSupported; + android.hardware.wifi.RttPreamble preambleSupport; + android.hardware.wifi.RttBw bwSupport; + byte mcVersion; + int azPreambleSupport; + int azBwSupport; + boolean ntbInitiatorSupported; + boolean ntbResponderSupported; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttConfig.aidl new file mode 100644 index 0000000000..361361609c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttConfig.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttConfig { + byte[6] addr; + android.hardware.wifi.RttType type; + android.hardware.wifi.RttPeerType peer; + android.hardware.wifi.WifiChannelInfo channel; + int burstPeriod; + int numBurst; + int numFramesPerBurst; + int numRetriesPerRttFrame; + int numRetriesPerFtmr; + boolean mustRequestLci; + boolean mustRequestLcr; + int burstDuration; + android.hardware.wifi.RttPreamble preamble; + android.hardware.wifi.RttBw bw; + long ntbMinMeasurementTime; + long ntbMaxMeasurementTime; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLciInformation.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLciInformation.aidl new file mode 100644 index 0000000000..0fcf151fd1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLciInformation.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttLciInformation { + long latitude; + long longitude; + int altitude; + byte latitudeUnc; + byte longitudeUnc; + byte altitudeUnc; + android.hardware.wifi.RttMotionPattern motionPattern; + int floor; + int heightAboveFloor; + int heightUnc; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLcrInformation.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLcrInformation.aidl new file mode 100644 index 0000000000..c756ddab0d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLcrInformation.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttLcrInformation { + byte[2] countryCode; + String civicInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttMotionPattern.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttMotionPattern.aidl new file mode 100644 index 0000000000..7c8e3692b1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttMotionPattern.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttMotionPattern { + NOT_EXPECTED = 0, + EXPECTED = 1, + UNKNOWN = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPeerType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPeerType.aidl new file mode 100644 index 0000000000..23fa7f67cb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPeerType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttPeerType { + AP = 1, + STA = 2, + P2P_GO = 3, + P2P_CLIENT = 4, + NAN_TYPE = 5, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPreamble.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPreamble.aidl new file mode 100644 index 0000000000..280246451e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPreamble.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttPreamble { + INVALID = 0, + LEGACY = 0x1, + HT = 0x2, + VHT = 0x4, + HE = 0x8, + EHT = 0x10, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResponder.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResponder.aidl new file mode 100644 index 0000000000..41463b5292 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResponder.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttResponder { + android.hardware.wifi.WifiChannelInfo channel; + android.hardware.wifi.RttPreamble preamble; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResult.aidl new file mode 100644 index 0000000000..13202ba3f2 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResult.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttResult { + byte[6] addr; + int burstNum; + int measurementNumber; + int successNumber; + byte numberPerBurstPeer; + android.hardware.wifi.RttStatus status; + byte retryAfterDuration; + android.hardware.wifi.RttType type; + int rssi; + int rssiSpread; + android.hardware.wifi.WifiRateInfo txRate; + android.hardware.wifi.WifiRateInfo rxRate; + long rtt; + long rttSd; + long rttSpread; + int distanceInMm; + int distanceSdInMm; + int distanceSpreadInMm; + long timeStampInUs; + int burstDurationInMs; + int negotiatedBurstNum; + android.hardware.wifi.WifiInformationElement lci; + android.hardware.wifi.WifiInformationElement lcr; + int channelFreqMHz; + android.hardware.wifi.RttBw packetBw; + byte i2rTxLtfRepetitionCount; + byte r2iTxLtfRepetitionCount; + long ntbMinMeasurementTime; + long ntbMaxMeasurementTime; + byte numTxSpatialStreams; + byte numRxSpatialStreams; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttStatus.aidl new file mode 100644 index 0000000000..2817497a7a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttStatus.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttStatus { + SUCCESS = 0, + FAILURE = 1, + FAIL_NO_RSP = 2, + FAIL_REJECTED = 3, + FAIL_NOT_SCHEDULED_YET = 4, + FAIL_TM_TIMEOUT = 5, + FAIL_AP_ON_DIFF_CHANNEL = 6, + FAIL_NO_CAPABILITY = 7, + ABORTED = 8, + FAIL_INVALID_TS = 9, + FAIL_PROTOCOL = 10, + FAIL_SCHEDULE = 11, + FAIL_BUSY_TRY_LATER = 12, + INVALID_REQ = 13, + NO_WIFI = 14, + FAIL_FTM_PARAM_OVERRIDE = 15, + NAN_RANGING_PROTOCOL_FAILURE = 16, + NAN_RANGING_CONCURRENCY_NOT_SUPPORTED = 17, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttType.aidl new file mode 100644 index 0000000000..cb25673af3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttType { + ONE_SIDED = 1, + TWO_SIDED = 2, + TWO_SIDED_11MC = TWO_SIDED /* 2 */, + TWO_SIDED_11AZ_NTB = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/Ssid.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/Ssid.aidl new file mode 100644 index 0000000000..98b523f37e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/Ssid.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable Ssid { + byte[32] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl new file mode 100644 index 0000000000..3b4d785a42 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaApfPacketFilterCapabilities { + int version; + int maxLength; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl new file mode 100644 index 0000000000..249d87622a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum StaBackgroundScanBucketEventReportSchemeMask { + EACH_SCAN = (1 << 0) /* 1 */, + FULL_RESULTS = (1 << 1) /* 2 */, + NO_BATCH = (1 << 2) /* 4 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl new file mode 100644 index 0000000000..4e9671a370 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaBackgroundScanBucketParameters { + int bucketIdx; + android.hardware.wifi.WifiBand band; + int[] frequencies; + int periodInMs; + int eventReportScheme; + int exponentialMaxPeriodInMs; + int exponentialBase; + int exponentialStepCount; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanCapabilities.aidl new file mode 100644 index 0000000000..758dd97485 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanCapabilities.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaBackgroundScanCapabilities { + int maxCacheSize; + int maxBuckets; + int maxApCachePerScan; + int maxReportingThreshold; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanLimits.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanLimits.aidl new file mode 100644 index 0000000000..05d0277d1c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanLimits.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum StaBackgroundScanLimits { + MAX_CHANNELS = 16, + MAX_BUCKETS = 16, + MAX_AP_CACHE_PER_SCAN = 32, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanParameters.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanParameters.aidl new file mode 100644 index 0000000000..077356685d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanParameters.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaBackgroundScanParameters { + int basePeriodInMs; + int maxApPerScan; + int reportThresholdPercent; + int reportThresholdNumScans; + android.hardware.wifi.StaBackgroundScanBucketParameters[] buckets; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl new file mode 100644 index 0000000000..4dee6de3fd --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerIfaceContentionTimeStats { + int contentionTimeMinInUsec; + int contentionTimeMaxInUsec; + int contentionTimeAvgInUsec; + int contentionNumSamples; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl new file mode 100644 index 0000000000..eddf52ee25 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerIfacePacketStats { + long rxMpdu; + long txMpdu; + long lostMpdu; + long retries; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceStats.aidl new file mode 100644 index 0000000000..a4192076d2 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceStats.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerIfaceStats { + android.hardware.wifi.StaLinkLayerLinkStats[] links; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerLinkStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerLinkStats.aidl new file mode 100644 index 0000000000..cd21c256fe --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerLinkStats.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerLinkStats { + int linkId; + int radioId; + int frequencyMhz; + int beaconRx; + int avgRssiMgmt; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeBePktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeBkPktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeViPktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeVoPktStats; + byte timeSliceDutyCycleInPercent; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeBeContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeBkContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeViContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeVoContentionTimeStats; + android.hardware.wifi.StaPeerInfo[] peers; + android.hardware.wifi.StaLinkLayerLinkStats.StaLinkState state; + @Backing(type="int") @VintfStability + enum StaLinkState { + UNKNOWN = 0, + NOT_IN_USE = (1 << 0) /* 1 */, + IN_USE = (1 << 1) /* 2 */, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerRadioStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerRadioStats.aidl new file mode 100644 index 0000000000..84d24c9974 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerRadioStats.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerRadioStats { + int onTimeInMs; + int txTimeInMs; + int[] txTimeInMsPerLevel; + int rxTimeInMs; + int onTimeInMsForScan; + int onTimeInMsForNanScan; + int onTimeInMsForBgScan; + int onTimeInMsForRoamScan; + int onTimeInMsForPnoScan; + int onTimeInMsForHs20Scan; + android.hardware.wifi.WifiChannelStats[] channelStats; + int radioId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerStats.aidl new file mode 100644 index 0000000000..9c05346998 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerStats.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerStats { + android.hardware.wifi.StaLinkLayerIfaceStats iface; + android.hardware.wifi.StaLinkLayerRadioStats[] radios; + long timeStampInMs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaPeerInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaPeerInfo.aidl new file mode 100644 index 0000000000..93a901fb2a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaPeerInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaPeerInfo { + char staCount; + char chanUtil; + android.hardware.wifi.StaRateStat[] rateStats; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRateStat.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRateStat.aidl new file mode 100644 index 0000000000..43b69fc900 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRateStat.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaRateStat { + android.hardware.wifi.WifiRateInfo rateInfo; + int txMpdu; + int rxMpdu; + int mpduLost; + int retries; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingCapabilities.aidl new file mode 100644 index 0000000000..9eed877d6f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingCapabilities.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaRoamingCapabilities { + int maxBlocklistSize; + int maxAllowlistSize; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingConfig.aidl new file mode 100644 index 0000000000..2b37cee12a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingConfig.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaRoamingConfig { + android.hardware.wifi.MacAddress[] bssidBlocklist; + android.hardware.wifi.Ssid[] ssidAllowlist; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingState.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingState.aidl new file mode 100644 index 0000000000..fd7d567105 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="byte") @VintfStability +enum StaRoamingState { + DISABLED = 0, + ENABLED = 1, + AGGRESSIVE = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanData.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanData.aidl new file mode 100644 index 0000000000..7c75232e51 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaScanData { + int flags; + int bucketsScanned; + android.hardware.wifi.StaScanResult[] results; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanDataFlagMask.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanDataFlagMask.aidl new file mode 100644 index 0000000000..0ca4b4b41c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanDataFlagMask.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum StaScanDataFlagMask { + INTERRUPTED = (1 << 0) /* 1 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanResult.aidl new file mode 100644 index 0000000000..9a8d29720c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanResult.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaScanResult { + long timeStampInUs; + byte[] ssid; + byte[6] bssid; + int rssi; + int frequency; + char beaconPeriodInMs; + char capability; + android.hardware.wifi.WifiInformationElement[] informationElements; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtCapabilities.aidl new file mode 100644 index 0000000000..75f3e83829 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtCapabilities.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable TwtCapabilities { + boolean isTwtRequesterSupported; + boolean isTwtResponderSupported; + boolean isBroadcastTwtSupported; + boolean isFlexibleTwtScheduleSupported; + int minWakeDurationUs; + int maxWakeDurationUs; + long minWakeIntervalUs; + long maxWakeIntervalUs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtRequest.aidl new file mode 100644 index 0000000000..1e1c39a914 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtRequest.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable TwtRequest { + int mloLinkId; + int minWakeDurationUs; + int maxWakeDurationUs; + long minWakeIntervalUs; + long maxWakeIntervalUs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSession.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSession.aidl new file mode 100644 index 0000000000..0b88d8e75d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSession.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable TwtSession { + int sessionId; + int mloLinkId; + int wakeDurationUs; + long wakeIntervalUs; + android.hardware.wifi.TwtSession.TwtNegotiationType negotiationType; + boolean isTriggerEnabled; + boolean isAnnounced; + boolean isImplicit; + boolean isProtected; + boolean isUpdatable; + boolean isSuspendable; + boolean isResponderPmModeEnabled; + @Backing(type="byte") @VintfStability + enum TwtNegotiationType { + INDIVIDUAL = 0, + BROADCAST = 1, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSessionStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSessionStats.aidl new file mode 100644 index 0000000000..f62b614146 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSessionStats.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable TwtSessionStats { + int avgTxPktCount; + int avgRxPktCount; + int avgTxPktSize; + int avgRxPktSize; + int avgEospDurationUs; + int eospCount; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiAntennaMode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiAntennaMode.aidl new file mode 100644 index 0000000000..b47b7f502a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiAntennaMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiAntennaMode { + WIFI_ANTENNA_MODE_UNSPECIFIED = 0, + WIFI_ANTENNA_MODE_1X1 = 1, + WIFI_ANTENNA_MODE_2X2 = 2, + WIFI_ANTENNA_MODE_3X3 = 3, + WIFI_ANTENNA_MODE_4X4 = 4, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiBand.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiBand.aidl new file mode 100644 index 0000000000..e9a87ee458 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiBand.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiBand { + BAND_UNSPECIFIED = 0, + BAND_24GHZ = 1, + BAND_5GHZ = 2, + BAND_5GHZ_DFS = 4, + BAND_5GHZ_WITH_DFS = 6, + BAND_24GHZ_5GHZ = 3, + BAND_24GHZ_5GHZ_WITH_DFS = 7, + BAND_6GHZ = 8, + BAND_5GHZ_6GHZ = 10, + BAND_24GHZ_5GHZ_6GHZ = 11, + BAND_24GHZ_5GHZ_WITH_DFS_6GHZ = 15, + BAND_60GHZ = 16, + BAND_24GHZ_5GHZ_6GHZ_60GHZ = 27, + BAND_24GHZ_5GHZ_WITH_DFS_6GHZ_60GHZ = 31, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelInfo.aidl new file mode 100644 index 0000000000..297c923dbe --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiChannelInfo { + android.hardware.wifi.WifiChannelWidthInMhz width; + int centerFreq; + int centerFreq0; + int centerFreq1; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelStats.aidl new file mode 100644 index 0000000000..c6e7acc937 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelStats.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiChannelStats { + android.hardware.wifi.WifiChannelInfo channel; + int onTimeInMs; + int ccaBusyTimeInMs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelWidthInMhz.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelWidthInMhz.aidl new file mode 100644 index 0000000000..e6ea642db6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelWidthInMhz.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiChannelWidthInMhz { + WIDTH_INVALID = (-1) /* -1 */, + WIDTH_20 = 0, + WIDTH_40 = 1, + WIDTH_80 = 2, + WIDTH_160 = 3, + WIDTH_80P80 = 4, + WIDTH_5 = 5, + WIDTH_10 = 6, + WIDTH_320 = 7, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChipCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChipCapabilities.aidl new file mode 100644 index 0000000000..b5034ea387 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChipCapabilities.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiChipCapabilities { + int maxMloAssociationLinkCount; + int maxMloStrLinkCount; + int maxConcurrentTdlsSessionCount; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl new file mode 100644 index 0000000000..8415e09ad8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugHostWakeReasonRxIcmpPacketDetails { + int icmpPkt; + int icmp6Pkt; + int icmp6Ra; + int icmp6Na; + int icmp6Ns; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl new file mode 100644 index 0000000000..30301d3e45 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugHostWakeReasonRxMulticastPacketDetails { + int ipv4RxMulticastAddrCnt; + int ipv6RxMulticastAddrCnt; + int otherRxMulticastAddrCnt; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl new file mode 100644 index 0000000000..81183225dc --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugHostWakeReasonRxPacketDetails { + int rxUnicastCnt; + int rxMulticastCnt; + int rxBroadcastCnt; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl new file mode 100644 index 0000000000..1766476919 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugHostWakeReasonStats { + int totalCmdEventWakeCnt; + int[] cmdEventWakeCntPerType; + int totalDriverFwLocalWakeCnt; + int[] driverFwLocalWakeCntPerType; + int totalRxPacketWakeCnt; + android.hardware.wifi.WifiDebugHostWakeReasonRxPacketDetails rxPktWakeDetails; + android.hardware.wifi.WifiDebugHostWakeReasonRxMulticastPacketDetails rxMulticastPkWakeDetails; + android.hardware.wifi.WifiDebugHostWakeReasonRxIcmpPacketDetails rxIcmpPkWakeDetails; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl new file mode 100644 index 0000000000..2ff6cfcbeb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugPacketFateFrameInfo { + android.hardware.wifi.WifiDebugPacketFateFrameType frameType; + long frameLen; + long driverTimestampUsec; + long firmwareTimestampUsec; + byte[] frameContent; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl new file mode 100644 index 0000000000..6db96efc0f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugPacketFateFrameType { + UNKNOWN, + ETHERNET_II, + MGMT_80211, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferFlags.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferFlags.aidl new file mode 100644 index 0000000000..9ababc373d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferFlags.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugRingBufferFlags { + HAS_BINARY_ENTRIES = (1 << 0) /* 1 */, + HAS_ASCII_ENTRIES = (1 << 1) /* 2 */, + HAS_PER_PACKET_ENTRIES = (1 << 2) /* 4 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferStatus.aidl new file mode 100644 index 0000000000..e4249d9a88 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugRingBufferStatus { + String ringName; + int flags; + int ringId; + int sizeInBytes; + int freeSizeInBytes; + int verboseLevel; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl new file mode 100644 index 0000000000..e614f3fba0 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugRingBufferVerboseLevel { + NONE = 0, + DEFAULT = 1, + VERBOSE = 2, + EXCESSIVE = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFate.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFate.aidl new file mode 100644 index 0000000000..f638c4f7df --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFate.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugRxPacketFate { + SUCCESS, + FW_QUEUED, + FW_DROP_FILTER, + FW_DROP_INVALID, + FW_DROP_NOBUFS, + FW_DROP_OTHER, + DRV_QUEUED, + DRV_DROP_FILTER, + DRV_DROP_INVALID, + DRV_DROP_NOBUFS, + DRV_DROP_OTHER, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl new file mode 100644 index 0000000000..bfe0c0aee6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugRxPacketFateReport { + android.hardware.wifi.WifiDebugRxPacketFate fate; + android.hardware.wifi.WifiDebugPacketFateFrameInfo frameInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFate.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFate.aidl new file mode 100644 index 0000000000..778ca5dee2 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFate.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugTxPacketFate { + ACKED, + SENT, + FW_QUEUED, + FW_DROP_INVALID, + FW_DROP_NOBUFS, + FW_DROP_OTHER, + DRV_QUEUED, + DRV_DROP_INVALID, + DRV_DROP_NOBUFS, + DRV_DROP_OTHER, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl new file mode 100644 index 0000000000..aee5c31103 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugTxPacketFateReport { + android.hardware.wifi.WifiDebugTxPacketFate fate; + android.hardware.wifi.WifiDebugPacketFateFrameInfo frameInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiIfaceMode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiIfaceMode.aidl new file mode 100644 index 0000000000..557cef4c77 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiIfaceMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiIfaceMode { + IFACE_MODE_STA = (1 << 0) /* 1 */, + IFACE_MODE_SOFTAP = (1 << 1) /* 2 */, + IFACE_MODE_IBSS = (1 << 2) /* 4 */, + IFACE_MODE_P2P_CLIENT = (1 << 3) /* 8 */, + IFACE_MODE_P2P_GO = (1 << 4) /* 16 */, + IFACE_MODE_NAN = (1 << 5) /* 32 */, + IFACE_MODE_MESH = (1 << 6) /* 64 */, + IFACE_MODE_TDLS = (1 << 7) /* 128 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiInformationElement.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiInformationElement.aidl new file mode 100644 index 0000000000..27ba0db19c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiInformationElement.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiInformationElement { + byte id; + byte[] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioCombination.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioCombination.aidl new file mode 100644 index 0000000000..f060db87f3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioCombination.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiRadioCombination { + android.hardware.wifi.WifiRadioConfiguration[] radioConfigurations; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioConfiguration.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioConfiguration.aidl new file mode 100644 index 0000000000..5169351525 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioConfiguration.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiRadioConfiguration { + android.hardware.wifi.WifiBand bandInfo; + android.hardware.wifi.WifiAntennaMode antennaMode; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateInfo.aidl new file mode 100644 index 0000000000..c4aca637bf --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiRateInfo { + android.hardware.wifi.WifiRatePreamble preamble; + android.hardware.wifi.WifiRateNss nss; + android.hardware.wifi.WifiChannelWidthInMhz bw; + byte rateMcsIdx; + int bitRateInKbps; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateNss.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateNss.aidl new file mode 100644 index 0000000000..0ad6f04847 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateNss.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiRateNss { + NSS_1x1 = 0, + NSS_2x2 = 1, + NSS_3x3 = 2, + NSS_4x4 = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRatePreamble.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRatePreamble.aidl new file mode 100644 index 0000000000..04b63583ea --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRatePreamble.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiRatePreamble { + OFDM = 0, + CCK = 1, + HT = 2, + VHT = 3, + RESERVED = 4, + HE = 5, + EHT = 6, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiStatusCode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiStatusCode.aidl new file mode 100644 index 0000000000..9a15fa1cae --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiStatusCode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiStatusCode { + SUCCESS, + ERROR_WIFI_CHIP_INVALID, + ERROR_WIFI_IFACE_INVALID, + ERROR_WIFI_RTT_CONTROLLER_INVALID, + ERROR_NOT_SUPPORTED, + ERROR_NOT_AVAILABLE, + ERROR_NOT_STARTED, + ERROR_INVALID_ARGS, + ERROR_BUSY, + ERROR_UNKNOWN, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiUsableChannel.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiUsableChannel.aidl new file mode 100644 index 0000000000..774b2423ff --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiUsableChannel.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiUsableChannel { + int channel; + android.hardware.wifi.WifiChannelWidthInMhz channelBandwidth; + int ifaceModeMask; +} diff --git a/wifi/common/aidl/Android.bp b/wifi/common/aidl/Android.bp index a9418691cd..0920a559c3 100644 --- a/wifi/common/aidl/Android.bp +++ b/wifi/common/aidl/Android.bp @@ -48,4 +48,12 @@ aidl_interface { enabled: false, }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/.hash b/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/.hash new file mode 100644 index 0000000000..7e2287795a --- /dev/null +++ b/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/.hash @@ -0,0 +1 @@ +6a467a628209519b1b0ce9260c40157b7fea7713 diff --git a/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/android/hardware/wifi/common/OuiKeyedData.aidl b/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/android/hardware/wifi/common/OuiKeyedData.aidl new file mode 100644 index 0000000000..640a1f69d9 --- /dev/null +++ b/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/android/hardware/wifi/common/OuiKeyedData.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.common; +@VintfStability +parcelable OuiKeyedData { + int oui; + android.os.PersistableBundle vendorData; +} diff --git a/wifi/hostapd/aidl/Android.bp b/wifi/hostapd/aidl/Android.bp index 94bf9e2ebd..2e4d4d1eb2 100644 --- a/wifi/hostapd/aidl/Android.bp +++ b/wifi/hostapd/aidl/Android.bp @@ -59,5 +59,11 @@ aidl_interface { version: "1", imports: [], }, + { + version: "2", + imports: ["android.hardware.wifi.common-V1"], + }, + ], + frozen: true, } diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/.hash b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/.hash new file mode 100644 index 0000000000..1b118bea44 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/.hash @@ -0,0 +1 @@ +7dd4f61d4cddf5620591aaf0a3d67c61a8eb7287 diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ApInfo.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ApInfo.aidl new file mode 100644 index 0000000000..1a66105b8f --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ApInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable ApInfo { + String ifaceName; + String apIfaceInstance; + int freqMhz; + android.hardware.wifi.hostapd.ChannelBandwidth channelBandwidth; + android.hardware.wifi.hostapd.Generation generation; + byte[] apIfaceInstanceMacAddress; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/BandMask.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/BandMask.aidl new file mode 100644 index 0000000000..fa9f1982d5 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/BandMask.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum BandMask { + BAND_2_GHZ = (1 << 0) /* 1 */, + BAND_5_GHZ = (1 << 1) /* 2 */, + BAND_6_GHZ = (1 << 2) /* 4 */, + BAND_60_GHZ = (1 << 3) /* 8 */, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelBandwidth.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelBandwidth.aidl new file mode 100644 index 0000000000..6c1fd22266 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelBandwidth.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum ChannelBandwidth { + BANDWIDTH_INVALID = 0, + BANDWIDTH_AUTO = 1, + BANDWIDTH_20_NOHT = 2, + BANDWIDTH_20 = 3, + BANDWIDTH_40 = 4, + BANDWIDTH_80 = 5, + BANDWIDTH_80P80 = 6, + BANDWIDTH_160 = 7, + BANDWIDTH_320 = 8, + BANDWIDTH_2160 = 9, + BANDWIDTH_4320 = 10, + BANDWIDTH_6480 = 11, + BANDWIDTH_8640 = 12, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelParams.aidl new file mode 100644 index 0000000000..43a9ada0e8 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable ChannelParams { + android.hardware.wifi.hostapd.BandMask bandMask; + android.hardware.wifi.hostapd.FrequencyRange[] acsChannelFreqRangesMhz; + boolean enableAcs; + boolean acsShouldExcludeDfs; + int channel; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ClientInfo.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ClientInfo.aidl new file mode 100644 index 0000000000..c4d62b68cc --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ClientInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable ClientInfo { + String ifaceName; + String apIfaceInstance; + byte[] clientAddress; + boolean isConnected; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/DebugLevel.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/DebugLevel.aidl new file mode 100644 index 0000000000..9795211df0 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/DebugLevel.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum DebugLevel { + EXCESSIVE = 0, + MSGDUMP = 1, + DEBUG = 2, + INFO = 3, + WARNING = 4, + ERROR = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/EncryptionType.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/EncryptionType.aidl new file mode 100644 index 0000000000..840b8755c1 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/EncryptionType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum EncryptionType { + NONE, + WPA, + WPA2, + WPA3_SAE_TRANSITION, + WPA3_SAE, + WPA3_OWE_TRANSITION, + WPA3_OWE, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/FrequencyRange.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/FrequencyRange.aidl new file mode 100644 index 0000000000..11851438bd --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/FrequencyRange.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable FrequencyRange { + int startMhz; + int endMhz; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Generation.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Generation.aidl new file mode 100644 index 0000000000..a0c1886021 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Generation.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum Generation { + WIFI_STANDARD_UNKNOWN = (-1) /* -1 */, + WIFI_STANDARD_LEGACY = 0, + WIFI_STANDARD_11N = 1, + WIFI_STANDARD_11AC = 2, + WIFI_STANDARD_11AD = 3, + WIFI_STANDARD_11AX = 4, + WIFI_STANDARD_11BE = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HostapdStatusCode.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HostapdStatusCode.aidl new file mode 100644 index 0000000000..7edff15c5e --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HostapdStatusCode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum HostapdStatusCode { + SUCCESS, + FAILURE_UNKNOWN, + FAILURE_ARGS_INVALID, + FAILURE_IFACE_UNKNOWN, + FAILURE_IFACE_EXISTS, + FAILURE_CLIENT_UNKNOWN, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HwModeParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HwModeParams.aidl new file mode 100644 index 0000000000..d732bcbcd8 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HwModeParams.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable HwModeParams { + boolean enable80211N; + boolean enable80211AC; + boolean enable80211AX; + boolean enable6GhzBand; + boolean enableHeSingleUserBeamformer; + boolean enableHeSingleUserBeamformee; + boolean enableHeMultiUserBeamformer; + boolean enableHeTargetWakeTime; + boolean enableEdmg; + boolean enable80211BE; + android.hardware.wifi.hostapd.ChannelBandwidth maximumChannelBandwidth; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapd.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapd.aidl new file mode 100644 index 0000000000..ff941fdbf7 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +interface IHostapd { + void addAccessPoint(in android.hardware.wifi.hostapd.IfaceParams ifaceParams, in android.hardware.wifi.hostapd.NetworkParams nwParams); + void forceClientDisconnect(in String ifaceName, in byte[] clientAddress, in android.hardware.wifi.hostapd.Ieee80211ReasonCode reasonCode); + void registerCallback(in android.hardware.wifi.hostapd.IHostapdCallback callback); + void removeAccessPoint(in String ifaceName); + void setDebugParams(in android.hardware.wifi.hostapd.DebugLevel level); + oneway void terminate(); +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapdCallback.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapdCallback.aidl new file mode 100644 index 0000000000..9dd062a1f2 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapdCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +interface IHostapdCallback { + oneway void onApInstanceInfoChanged(in android.hardware.wifi.hostapd.ApInfo apInfo); + oneway void onConnectedClientsChanged(in android.hardware.wifi.hostapd.ClientInfo clientInfo); + oneway void onFailure(in String ifaceName, in String instanceName); +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl new file mode 100644 index 0000000000..99879b59bd --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum Ieee80211ReasonCode { + WLAN_REASON_UNSPECIFIED = 1, + WLAN_REASON_PREV_AUTH_NOT_VALID = 2, + WLAN_REASON_DISASSOC_AP_BUSY = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IfaceParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IfaceParams.aidl new file mode 100644 index 0000000000..64367bbe70 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IfaceParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable IfaceParams { + String name; + android.hardware.wifi.hostapd.HwModeParams hwModeParams; + android.hardware.wifi.hostapd.ChannelParams[] channelParams; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/NetworkParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/NetworkParams.aidl new file mode 100644 index 0000000000..4554223751 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/NetworkParams.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable NetworkParams { + byte[] ssid; + boolean isHidden; + android.hardware.wifi.hostapd.EncryptionType encryptionType; + String passphrase; + boolean isMetered; + byte[] vendorElements; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ParamSizeLimits.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ParamSizeLimits.aidl new file mode 100644 index 0000000000..70f94c1b5e --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ParamSizeLimits.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum ParamSizeLimits { + SSID_MAX_LEN_IN_BYTES = 32, + WPA2_PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8, + WPA2_PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63, +} diff --git a/wifi/supplicant/aidl/Android.bp b/wifi/supplicant/aidl/Android.bp index 59cfa6f8d7..b7242ed2b7 100644 --- a/wifi/supplicant/aidl/Android.bp +++ b/wifi/supplicant/aidl/Android.bp @@ -65,7 +65,11 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: ["android.hardware.wifi.common-V1"], + }, ], - frozen: false, + frozen: true, } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/.hash b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/.hash new file mode 100644 index 0000000000..458d57f69e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/.hash @@ -0,0 +1 @@ +55b58c9bd6d40c1459073b5d03f4ede5cfc9a212 diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpData.aidl new file mode 100644 index 0000000000..d8e49d70f3 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpData.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable AnqpData { + byte[] venueName; + byte[] roamingConsortium; + byte[] ipAddrTypeAvailability; + byte[] naiRealm; + byte[] anqp3gppCellularNetwork; + byte[] domainName; + byte[] venueUrl; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpInfoId.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpInfoId.aidl new file mode 100644 index 0000000000..cc323608f9 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpInfoId.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum AnqpInfoId { + VENUE_NAME = 258, + ROAMING_CONSORTIUM = 261, + IP_ADDR_TYPE_AVAILABILITY = 262, + NAI_REALM = 263, + ANQP_3GPP_CELLULAR_NETWORK = 264, + DOMAIN_NAME = 268, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AssociationRejectionData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AssociationRejectionData.aidl new file mode 100644 index 0000000000..f6830dc8be --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AssociationRejectionData.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable AssociationRejectionData { + byte[] ssid; + byte[] bssid; + android.hardware.wifi.supplicant.StaIfaceStatusCode statusCode; + boolean timedOut; + boolean isMboAssocDisallowedReasonCodePresent; + android.hardware.wifi.supplicant.MboAssocDisallowedReasonCode mboAssocDisallowedReason; + boolean isOceRssiBasedAssocRejectAttrPresent; + android.hardware.wifi.supplicant.OceRssiBasedAssocRejectAttr oceRssiBasedAssocRejectData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuthAlgMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuthAlgMask.aidl new file mode 100644 index 0000000000..44210185cf --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuthAlgMask.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum AuthAlgMask { + OPEN = (1 << 0) /* 1 */, + SHARED = (1 << 1) /* 2 */, + LEAP = (1 << 2) /* 4 */, + SAE = (1 << 4) /* 16 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuxiliarySupplicantEventCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuxiliarySupplicantEventCode.aidl new file mode 100644 index 0000000000..a339a9272f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuxiliarySupplicantEventCode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum AuxiliarySupplicantEventCode { + EAP_METHOD_SELECTED, + SSID_TEMP_DISABLED, + OPEN_SSL_FAILURE, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmData.aidl new file mode 100644 index 0000000000..34d894d6fa --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmData.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable BssTmData { + android.hardware.wifi.supplicant.BssTmStatusCode status; + android.hardware.wifi.supplicant.BssTmDataFlagsMask flags; + int assocRetryDelayMs; + android.hardware.wifi.supplicant.MboTransitionReasonCode mboTransitionReason; + android.hardware.wifi.supplicant.MboCellularDataConnectionPrefValue mboCellPreference; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmDataFlagsMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmDataFlagsMask.aidl new file mode 100644 index 0000000000..6f0045c82c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmDataFlagsMask.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum BssTmDataFlagsMask { + WNM_MODE_PREFERRED_CANDIDATE_LIST_INCLUDED = (1 << 0) /* 1 */, + WNM_MODE_ABRIDGED = (1 << 1) /* 2 */, + WNM_MODE_DISASSOCIATION_IMMINENT = (1 << 2) /* 4 */, + WNM_MODE_BSS_TERMINATION_INCLUDED = (1 << 3) /* 8 */, + WNM_MODE_ESS_DISASSOCIATION_IMMINENT = (1 << 4) /* 16 */, + MBO_TRANSITION_REASON_CODE_INCLUDED = (1 << 5) /* 32 */, + MBO_ASSOC_RETRY_DELAY_INCLUDED = (1 << 6) /* 64 */, + MBO_CELLULAR_DATA_CONNECTION_PREFERENCE_INCLUDED = (1 << 7) /* 128 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmStatusCode.aidl new file mode 100644 index 0000000000..c95825fe3c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmStatusCode.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum BssTmStatusCode { + ACCEPT = 0, + REJECT_UNSPECIFIED = 1, + REJECT_INSUFFICIENT_BEACON = 2, + REJECT_INSUFFICIENT_CAPABITY = 3, + REJECT_BSS_TERMINATION_UNDESIRED = 4, + REJECT_BSS_TERMINATION_DELAY_REQUEST = 5, + REJECT_STA_CANDIDATE_LIST_PROVIDED = 6, + REJECT_NO_SUITABLE_CANDIDATES = 7, + REJECT_LEAVING_ESS = 8, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssidChangeReason.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssidChangeReason.aidl new file mode 100644 index 0000000000..1d24579201 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssidChangeReason.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum BssidChangeReason { + ASSOC_START = 0, + ASSOC_COMPLETE = 1, + DISASSOC = 2, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BtCoexistenceMode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BtCoexistenceMode.aidl new file mode 100644 index 0000000000..bdc1b4a991 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BtCoexistenceMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum BtCoexistenceMode { + ENABLED = 0, + DISABLED = 1, + SENSE = 2, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ConnectionCapabilities.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ConnectionCapabilities.aidl new file mode 100644 index 0000000000..a0dd32fee6 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ConnectionCapabilities.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable ConnectionCapabilities { + android.hardware.wifi.supplicant.WifiTechnology technology; + int channelBandwidth; + int maxNumberTxSpatialStreams; + int maxNumberRxSpatialStreams; + android.hardware.wifi.supplicant.LegacyMode legacyMode; + boolean apTidToLinkMapNegotiationSupported; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DebugLevel.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DebugLevel.aidl new file mode 100644 index 0000000000..fbfb5b3468 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DebugLevel.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DebugLevel { + EXCESSIVE = 0, + MSGDUMP = 1, + DEBUG = 2, + INFO = 3, + WARNING = 4, + ERROR = 5, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppAkm.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppAkm.aidl new file mode 100644 index 0000000000..730843d2ec --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppAkm.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppAkm { + PSK, + PSK_SAE, + SAE, + DPP, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConfigurationData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConfigurationData.aidl new file mode 100644 index 0000000000..2225330538 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConfigurationData.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable DppConfigurationData { + byte[] ssid; + String password; + byte[] psk; + android.hardware.wifi.supplicant.DppAkm securityAkm; + android.hardware.wifi.supplicant.DppConnectionKeys dppConnectionKeys; + boolean connStatusRequested; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConnectionKeys.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConnectionKeys.aidl new file mode 100644 index 0000000000..559d1c94ce --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConnectionKeys.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable DppConnectionKeys { + byte[] connector; + byte[] cSign; + byte[] netAccessKey; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppCurve.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppCurve.aidl new file mode 100644 index 0000000000..14cb49f681 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppCurve.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppCurve { + PRIME256V1, + SECP384R1, + SECP521R1, + BRAINPOOLP256R1, + BRAINPOOLP384R1, + BRAINPOOLP512R1, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppEventType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppEventType.aidl new file mode 100644 index 0000000000..47c8cc0e35 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppEventType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppEventType { + CONFIGURATION_SENT, + CONFIGURATION_APPLIED, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppFailureCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppFailureCode.aidl new file mode 100644 index 0000000000..89fbc4bab1 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppFailureCode.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppFailureCode { + INVALID_URI, + AUTHENTICATION, + NOT_COMPATIBLE, + CONFIGURATION, + BUSY, + TIMEOUT, + FAILURE, + NOT_SUPPORTED, + CONFIGURATION_REJECTED, + CANNOT_FIND_NETWORK, + ENROLLEE_AUTHENTICATION, + URI_GENERATION, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppNetRole.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppNetRole.aidl new file mode 100644 index 0000000000..77a910b251 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppNetRole.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppNetRole { + STA, + AP, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppProgressCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppProgressCode.aidl new file mode 100644 index 0000000000..ea244de3c2 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppProgressCode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppProgressCode { + AUTHENTICATION_SUCCESS, + RESPONSE_PENDING, + CONFIGURATION_SENT_WAITING_RESPONSE, + CONFIGURATION_ACCEPTED, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppResponderBootstrapInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppResponderBootstrapInfo.aidl new file mode 100644 index 0000000000..8b6492b4f3 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppResponderBootstrapInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable DppResponderBootstrapInfo { + int bootstrapId; + int listenChannel; + String uri; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppStatusErrorCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppStatusErrorCode.aidl new file mode 100644 index 0000000000..21f07dded5 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppStatusErrorCode.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppStatusErrorCode { + UNKNOWN = (-1) /* -1 */, + SUCCESS = 0, + NOT_COMPATIBLE = 1, + AUTH_FAILURE = 2, + UNWRAP_FAILURE = 3, + BAD_GROUP = 4, + CONFIGURE_FAILURE = 5, + RESPONSE_PENDING = 6, + INVALID_CONNECTOR = 7, + NO_MATCH = 8, + CONFIG_REJECTED = 9, + NO_AP = 10, + CONFIGURE_PENDING = 11, + CSR_NEEDED = 12, + CSR_BAD = 13, + NEW_KEY_NEEDED = 14, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapErrorCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapErrorCode.aidl new file mode 100644 index 0000000000..2cf81d9ca2 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapErrorCode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum EapErrorCode { + SIM_GENERAL_FAILURE_AFTER_AUTH = 0, + SIM_TEMPORARILY_DENIED = 1026, + SIM_NOT_SUBSCRIBED = 1031, + SIM_GENERAL_FAILURE_BEFORE_AUTH = 16384, + SIM_VENDOR_SPECIFIC_EXPIRED_CERT = 16385, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapMethod.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapMethod.aidl new file mode 100644 index 0000000000..4ab23afefd --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapMethod.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum EapMethod { + PEAP = 0, + TLS = 1, + TTLS = 2, + PWD = 3, + SIM = 4, + AKA = 5, + AKA_PRIME = 6, + WFA_UNAUTH_TLS = 7, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapPhase2Method.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapPhase2Method.aidl new file mode 100644 index 0000000000..4bd93a08da --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapPhase2Method.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum EapPhase2Method { + NONE = 0, + PAP = 1, + MSPAP = 2, + MSPAPV2 = 3, + GTC = 4, + SIM = 5, + AKA = 6, + AKA_PRIME = 7, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ExtRadioWorkDefaults.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ExtRadioWorkDefaults.aidl new file mode 100644 index 0000000000..cbf1a3ee37 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ExtRadioWorkDefaults.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum ExtRadioWorkDefaults { + TIMEOUT_IN_SECS = 10, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/FreqRange.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/FreqRange.aidl new file mode 100644 index 0000000000..0971d517f6 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/FreqRange.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable FreqRange { + int min; + int max; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupCipherMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupCipherMask.aidl new file mode 100644 index 0000000000..d22d3d0582 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupCipherMask.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum GroupCipherMask { + WEP40 = (1 << 1) /* 2 */, + WEP104 = (1 << 2) /* 4 */, + TKIP = (1 << 3) /* 8 */, + CCMP = (1 << 4) /* 16 */, + GTK_NOT_USED = (1 << 14) /* 16384 */, + GCMP_256 = (1 << 8) /* 256 */, + SMS4 = (1 << 7) /* 128 */, + GCMP_128 = (1 << 6) /* 64 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupMgmtCipherMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupMgmtCipherMask.aidl new file mode 100644 index 0000000000..23bb04fe2f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupMgmtCipherMask.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum GroupMgmtCipherMask { + BIP_GMAC_128 = (1 << 11) /* 2048 */, + BIP_GMAC_256 = (1 << 12) /* 4096 */, + BIP_CMAC_256 = (1 << 13) /* 8192 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GsmRand.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GsmRand.aidl new file mode 100644 index 0000000000..599a68339a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GsmRand.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable GsmRand { + byte[] data; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpData.aidl new file mode 100644 index 0000000000..43b182a24a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpData.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable Hs20AnqpData { + byte[] operatorFriendlyName; + byte[] wanMetrics; + byte[] connectionCapability; + byte[] osuProvidersList; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpSubtypes.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpSubtypes.aidl new file mode 100644 index 0000000000..270d43b073 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpSubtypes.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum Hs20AnqpSubtypes { + OPERATOR_FRIENDLY_NAME = 3, + WAN_METRICS = 4, + CONNECTION_CAPABILITY = 5, + OSU_PROVIDERS_LIST = 8, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/INonStandardCertCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/INonStandardCertCallback.aidl new file mode 100644 index 0000000000..bcf0ea8cb6 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/INonStandardCertCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface INonStandardCertCallback { + byte[] getBlob(in String alias); + String[] listAliases(in String prefix); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicant.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicant.aidl new file mode 100644 index 0000000000..dd62167907 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicant.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicant { + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pIface addP2pInterface(in String ifName); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantStaIface addStaInterface(in String ifName); + android.hardware.wifi.supplicant.DebugLevel getDebugLevel(); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pIface getP2pInterface(in String ifName); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantStaIface getStaInterface(in String ifName); + boolean isDebugShowKeysEnabled(); + boolean isDebugShowTimestampEnabled(); + android.hardware.wifi.supplicant.IfaceInfo[] listInterfaces(); + void registerCallback(in android.hardware.wifi.supplicant.ISupplicantCallback callback); + void removeInterface(in android.hardware.wifi.supplicant.IfaceInfo ifaceInfo); + void setConcurrencyPriority(in android.hardware.wifi.supplicant.IfaceType type); + void setDebugParams(in android.hardware.wifi.supplicant.DebugLevel level, in boolean showTimestamp, in boolean showKeys); + oneway void terminate(); + void registerNonStandardCertCallback(in android.hardware.wifi.supplicant.INonStandardCertCallback callback); + const int EXT_RADIO_WORK_TIMEOUT_IN_SECS = 10; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantCallback.aidl new file mode 100644 index 0000000000..7281053cdb --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantCallback { + oneway void onInterfaceCreated(in String ifaceName); + oneway void onInterfaceRemoved(in String ifaceName); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl new file mode 100644 index 0000000000..0b068e001f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantP2pIface { + void addBonjourService(in byte[] query, in byte[] response); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use createGroupOwner. + */ + void addGroup(in boolean persistent, in int persistentNetworkId); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use addGroupWithConfigurationParams. + */ + void addGroupWithConfig(in byte[] ssid, in String pskPassphrase, in boolean persistent, in int freq, in byte[] peerAddress, in boolean joinExistingGroup); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pNetwork addNetwork(); + void addUpnpService(in int version, in String serviceName); + void cancelConnect(); + void cancelServiceDiscovery(in long identifier); + void cancelWps(in String groupIfName); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use configureExtListenWithParams. + */ + void configureExtListen(in int periodInMillis, in int intervalInMillis); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use connectWithParams. + */ + String connect(in byte[] peerAddress, in android.hardware.wifi.supplicant.WpsProvisionMethod provisionMethod, in String preSelectedPin, in boolean joinExistingGroup, in boolean persistent, in int goIntent); + byte[] createNfcHandoverRequestMessage(); + byte[] createNfcHandoverSelectMessage(); + void enableWfd(in boolean enable); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use findWithParams. + */ + void find(in int timeoutInSec); + void flush(); + void flushServices(); + byte[] getDeviceAddress(); + boolean getEdmg(); + android.hardware.wifi.supplicant.P2pGroupCapabilityMask getGroupCapability(in byte[] peerAddress); + String getName(); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pNetwork getNetwork(in int id); + byte[] getSsid(in byte[] peerAddress); + android.hardware.wifi.supplicant.IfaceType getType(); + void invite(in String groupIfName, in byte[] goDeviceAddress, in byte[] peerAddress); + int[] listNetworks(); + void provisionDiscovery(in byte[] peerAddress, in android.hardware.wifi.supplicant.WpsProvisionMethod provisionMethod); + void registerCallback(in android.hardware.wifi.supplicant.ISupplicantP2pIfaceCallback callback); + void reinvoke(in int persistentNetworkId, in byte[] peerAddress); + void reject(in byte[] peerAddress); + void removeBonjourService(in byte[] query); + void removeGroup(in String groupIfName); + void removeNetwork(in int id); + void removeUpnpService(in int version, in String serviceName); + void reportNfcHandoverInitiation(in byte[] select); + void reportNfcHandoverResponse(in byte[] request); + long requestServiceDiscovery(in byte[] peerAddress, in byte[] query); + void saveConfig(); + void setDisallowedFrequencies(in android.hardware.wifi.supplicant.FreqRange[] ranges); + void setEdmg(in boolean enable); + void setGroupIdle(in String groupIfName, in int timeoutInSec); + void setListenChannel(in int channel, in int operatingClass); + void setMacRandomization(in boolean enable); + void setMiracastMode(in android.hardware.wifi.supplicant.MiracastMode mode); + void setPowerSave(in String groupIfName, in boolean enable); + void setSsidPostfix(in byte[] postfix); + void setWfdDeviceInfo(in byte[] info); + void setWfdR2DeviceInfo(in byte[] info); + void removeClient(in byte[] peerAddress, in boolean isLegacyClient); + void setWpsConfigMethods(in android.hardware.wifi.supplicant.WpsConfigMethods configMethods); + void setWpsDeviceName(in String name); + void setWpsDeviceType(in byte[] type); + void setWpsManufacturer(in String manufacturer); + void setWpsModelName(in String modelName); + void setWpsModelNumber(in String modelNumber); + void setWpsSerialNumber(in String serialNumber); + void startWpsPbc(in String groupIfName, in byte[] bssid); + String startWpsPinDisplay(in String groupIfName, in byte[] bssid); + void startWpsPinKeypad(in String groupIfName, in String pin); + void stopFind(); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use findWithParams. + */ + void findOnSocialChannels(in int timeoutInSec); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use findWithParams. + */ + void findOnSpecificFrequency(in int freqInHz, in int timeoutInSec); + void setVendorElements(in android.hardware.wifi.supplicant.P2pFrameTypeMask frameTypeMask, in byte[] vendorElemBytes); + void configureEapolIpAddressAllocationParams(in int ipAddressGo, in int ipAddressMask, in int ipAddressStart, in int ipAddressEnd); + String connectWithParams(in android.hardware.wifi.supplicant.P2pConnectInfo connectInfo); + void findWithParams(in android.hardware.wifi.supplicant.P2pDiscoveryInfo discoveryInfo); + void configureExtListenWithParams(in android.hardware.wifi.supplicant.P2pExtListenInfo extListenInfo); + void addGroupWithConfigurationParams(in android.hardware.wifi.supplicant.P2pAddGroupConfigurationParams groupConfigurationParams); + void createGroupOwner(in android.hardware.wifi.supplicant.P2pCreateGroupOwnerInfo groupOwnerInfo); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl new file mode 100644 index 0000000000..65ad4c1407 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantP2pIfaceCallback { + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onDeviceFoundWithParams. + */ + oneway void onDeviceFound(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo); + oneway void onDeviceLost(in byte[] p2pDeviceAddress); + oneway void onFindStopped(); + oneway void onGoNegotiationCompleted(in android.hardware.wifi.supplicant.P2pStatusCode status); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use onGoNegotiationRequestWithParams. + */ + oneway void onGoNegotiationRequest(in byte[] srcAddress, in android.hardware.wifi.supplicant.WpsDevPasswordId passwordId); + oneway void onGroupFormationFailure(in String failureReason); + oneway void onGroupFormationSuccess(); + oneway void onGroupRemoved(in String groupIfname, in boolean isGroupOwner); + oneway void onGroupStarted(in String groupIfname, in boolean isGroupOwner, in byte[] ssid, in int frequency, in byte[] psk, in String passphrase, in byte[] goDeviceAddress, in boolean isPersistent); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use onInvitationReceivedWithParams. + */ + oneway void onInvitationReceived(in byte[] srcAddress, in byte[] goDeviceAddress, in byte[] bssid, in int persistentNetworkId, in int operatingFrequency); + oneway void onInvitationResult(in byte[] bssid, in android.hardware.wifi.supplicant.P2pStatusCode status); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onProvisionDiscoveryCompletedEvent. + */ + oneway void onProvisionDiscoveryCompleted(in byte[] p2pDeviceAddress, in boolean isRequest, in android.hardware.wifi.supplicant.P2pProvDiscStatusCode status, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in String generatedPin); + oneway void onR2DeviceFound(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo, in byte[] wfdR2DeviceInfo); + oneway void onServiceDiscoveryResponse(in byte[] srcAddress, in char updateIndicator, in byte[] tlvs); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onPeerClientJoined() + */ + oneway void onStaAuthorized(in byte[] srcAddress, in byte[] p2pDeviceAddress); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onPeerClientDisconnected() + */ + oneway void onStaDeauthorized(in byte[] srcAddress, in byte[] p2pDeviceAddress); + oneway void onGroupFrequencyChanged(in String groupIfname, in int frequency); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onDeviceFoundWithParams. + */ + oneway void onDeviceFoundWithVendorElements(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo, in byte[] wfdR2DeviceInfo, in byte[] vendorElemBytes); + oneway void onGroupStartedWithParams(in android.hardware.wifi.supplicant.P2pGroupStartedEventParams groupStartedEventParams); + oneway void onPeerClientJoined(in android.hardware.wifi.supplicant.P2pPeerClientJoinedEventParams clientJoinedEventParams); + oneway void onPeerClientDisconnected(in android.hardware.wifi.supplicant.P2pPeerClientDisconnectedEventParams clientDisconnectedEventParams); + oneway void onProvisionDiscoveryCompletedEvent(in android.hardware.wifi.supplicant.P2pProvisionDiscoveryCompletedEventParams provisionDiscoveryCompletedEventParams); + oneway void onDeviceFoundWithParams(in android.hardware.wifi.supplicant.P2pDeviceFoundEventParams deviceFoundEventParams); + oneway void onGoNegotiationRequestWithParams(in android.hardware.wifi.supplicant.P2pGoNegotiationReqEventParams params); + oneway void onInvitationReceivedWithParams(in android.hardware.wifi.supplicant.P2pInvitationEventParams params); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pNetwork.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pNetwork.aidl new file mode 100644 index 0000000000..ef72724642 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pNetwork.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantP2pNetwork { + byte[] getBssid(); + android.hardware.wifi.supplicant.MacAddress[] getClientList(); + int getId(); + String getInterfaceName(); + byte[] getSsid(); + android.hardware.wifi.supplicant.IfaceType getType(); + boolean isCurrent(); + boolean isGroupOwner(); + boolean isPersistent(); + void setClientList(in android.hardware.wifi.supplicant.MacAddress[] clients); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl new file mode 100644 index 0000000000..917668e9ab --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantStaIface { + int addDppPeerUri(in String uri); + int addExtRadioWork(in String name, in int freqInMhz, in int timeoutInSec); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantStaNetwork addNetwork(); + void addRxFilter(in android.hardware.wifi.supplicant.RxFilterType type); + void cancelWps(); + void disconnect(); + void enableAutoReconnect(in boolean enable); + void filsHlpAddRequest(in byte[] dst_mac, in byte[] pkt); + void filsHlpFlushRequest(); + android.hardware.wifi.supplicant.DppResponderBootstrapInfo generateDppBootstrapInfoForResponder(in byte[] macAddress, in String deviceInfo, in android.hardware.wifi.supplicant.DppCurve curve); + void generateSelfDppConfiguration(in String ssid, in byte[] privEcKey); + android.hardware.wifi.supplicant.ConnectionCapabilities getConnectionCapabilities(); + android.hardware.wifi.supplicant.MloLinksInfo getConnectionMloLinksInfo(); + android.hardware.wifi.supplicant.KeyMgmtMask getKeyMgmtCapabilities(); + byte[] getMacAddress(); + String getName(); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantStaNetwork getNetwork(in int id); + android.hardware.wifi.supplicant.IfaceType getType(); + android.hardware.wifi.supplicant.WpaDriverCapabilitiesMask getWpaDriverCapabilities(); + void initiateAnqpQuery(in byte[] macAddress, in android.hardware.wifi.supplicant.AnqpInfoId[] infoElements, in android.hardware.wifi.supplicant.Hs20AnqpSubtypes[] subTypes); + /** + * @deprecated No longer in use. + */ + void initiateHs20IconQuery(in byte[] macAddress, in String fileName); + void initiateTdlsDiscover(in byte[] macAddress); + void initiateTdlsSetup(in byte[] macAddress); + void initiateTdlsTeardown(in byte[] macAddress); + void initiateVenueUrlAnqpQuery(in byte[] macAddress); + int[] listNetworks(); + void reassociate(); + void reconnect(); + void registerCallback(in android.hardware.wifi.supplicant.ISupplicantStaIfaceCallback callback); + void setQosPolicyFeatureEnabled(in boolean enable); + void sendQosPolicyResponse(in int qosPolicyRequestId, in boolean morePolicies, in android.hardware.wifi.supplicant.QosPolicyStatus[] qosPolicyStatusList); + void removeAllQosPolicies(); + void removeDppUri(in int id); + void removeExtRadioWork(in int id); + void removeNetwork(in int id); + void removeRxFilter(in android.hardware.wifi.supplicant.RxFilterType type); + void setBtCoexistenceMode(in android.hardware.wifi.supplicant.BtCoexistenceMode mode); + void setBtCoexistenceScanModeEnabled(in boolean enable); + void setCountryCode(in byte[] code); + void setExternalSim(in boolean useExternalSim); + void setMboCellularDataStatus(in boolean available); + void setPowerSave(in boolean enable); + void setSuspendModeEnabled(in boolean enable); + void setWpsConfigMethods(in android.hardware.wifi.supplicant.WpsConfigMethods configMethods); + void setWpsDeviceName(in String name); + void setWpsDeviceType(in byte[] type); + void setWpsManufacturer(in String manufacturer); + void setWpsModelName(in String modelName); + void setWpsModelNumber(in String modelNumber); + void setWpsSerialNumber(in String serialNumber); + byte[] startDppConfiguratorInitiator(in int peerBootstrapId, in int ownBootstrapId, in String ssid, in String password, in String psk, in android.hardware.wifi.supplicant.DppNetRole netRole, in android.hardware.wifi.supplicant.DppAkm securityAkm, in byte[] privEcKey); + void startDppEnrolleeInitiator(in int peerBootstrapId, in int ownBootstrapId); + void startDppEnrolleeResponder(in int listenChannel); + void startRxFilter(); + void startWpsPbc(in byte[] bssid); + String startWpsPinDisplay(in byte[] bssid); + void startWpsPinKeypad(in String pin); + void startWpsRegistrar(in byte[] bssid, in String pin); + void stopDppInitiator(); + void stopDppResponder(in int ownBootstrapId); + void stopRxFilter(); + android.hardware.wifi.supplicant.SignalPollResult[] getSignalPollResults(); + android.hardware.wifi.supplicant.QosPolicyScsRequestStatus[] addQosPolicyRequestForScs(in android.hardware.wifi.supplicant.QosPolicyScsData[] qosPolicyData); + android.hardware.wifi.supplicant.QosPolicyScsRequestStatus[] removeQosPolicyForScs(in byte[] scsPolicyIds); + void configureMscs(in android.hardware.wifi.supplicant.MscsParams params); + void disableMscs(); + const int MAX_POLICIES_PER_QOS_SCS_REQUEST = 16; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl new file mode 100644 index 0000000000..9fa8f56cd5 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantStaIfaceCallback { + oneway void onAnqpQueryDone(in byte[] bssid, in android.hardware.wifi.supplicant.AnqpData data, in android.hardware.wifi.supplicant.Hs20AnqpData hs20Data); + oneway void onAssociationRejected(in android.hardware.wifi.supplicant.AssociationRejectionData assocRejectData); + oneway void onAuthenticationTimeout(in byte[] bssid); + oneway void onAuxiliarySupplicantEvent(in android.hardware.wifi.supplicant.AuxiliarySupplicantEventCode eventCode, in byte[] bssid, in String reasonString); + oneway void onBssTmHandlingDone(in android.hardware.wifi.supplicant.BssTmData tmData); + oneway void onBssidChanged(in android.hardware.wifi.supplicant.BssidChangeReason reason, in byte[] bssid); + oneway void onDisconnected(in byte[] bssid, in boolean locallyGenerated, in android.hardware.wifi.supplicant.StaIfaceReasonCode reasonCode); + oneway void onDppFailure(in android.hardware.wifi.supplicant.DppFailureCode code, in String ssid, in String channelList, in char[] bandList); + oneway void onDppProgress(in android.hardware.wifi.supplicant.DppProgressCode code); + oneway void onDppSuccess(in android.hardware.wifi.supplicant.DppEventType event); + /** + * @deprecated This callback is deprecated from AIDL v2, newer HAL should call onDppConfigReceived. + */ + oneway void onDppSuccessConfigReceived(in byte[] ssid, in String password, in byte[] psk, in android.hardware.wifi.supplicant.DppAkm securityAkm, in android.hardware.wifi.supplicant.DppConnectionKeys dppConnectionKeys); + oneway void onDppSuccessConfigSent(); + oneway void onEapFailure(in byte[] bssid, in int errorCode); + oneway void onExtRadioWorkStart(in int id); + oneway void onExtRadioWorkTimeout(in int id); + oneway void onHs20DeauthImminentNotice(in byte[] bssid, in int reasonCode, in int reAuthDelayInSec, in String url); + /** + * @deprecated This callback is deprecated from AIDL v3. + */ + oneway void onHs20IconQueryDone(in byte[] bssid, in String fileName, in byte[] data); + oneway void onHs20SubscriptionRemediation(in byte[] bssid, in android.hardware.wifi.supplicant.OsuMethod osuMethod, in String url); + oneway void onHs20TermsAndConditionsAcceptanceRequestedNotification(in byte[] bssid, in String url); + oneway void onNetworkAdded(in int id); + oneway void onNetworkNotFound(in byte[] ssid); + oneway void onNetworkRemoved(in int id); + /** + * @deprecated use onPmkSaCacheAdded() instead. + */ + oneway void onPmkCacheAdded(in long expirationTimeInSec, in byte[] serializedEntry); + /** + * @deprecated This callback is deprecated from AIDL v2, newer HAL should call onSupplicantStateChanged() + */ + oneway void onStateChanged(in android.hardware.wifi.supplicant.StaIfaceCallbackState newState, in byte[] bssid, in int id, in byte[] ssid, in boolean filsHlpSent); + oneway void onWpsEventFail(in byte[] bssid, in android.hardware.wifi.supplicant.WpsConfigError configError, in android.hardware.wifi.supplicant.WpsErrorIndication errorInd); + oneway void onWpsEventPbcOverlap(); + oneway void onWpsEventSuccess(); + oneway void onQosPolicyReset(); + oneway void onQosPolicyRequest(in int qosPolicyRequestId, in android.hardware.wifi.supplicant.QosPolicyData[] qosPolicyData); + oneway void onMloLinksInfoChanged(in android.hardware.wifi.supplicant.ISupplicantStaIfaceCallback.MloLinkInfoChangeReason reason); + oneway void onDppConfigReceived(in android.hardware.wifi.supplicant.DppConfigurationData configData); + oneway void onDppConnectionStatusResultSent(in android.hardware.wifi.supplicant.DppStatusErrorCode code); + oneway void onBssFrequencyChanged(in int frequencyMhz); + oneway void onSupplicantStateChanged(in android.hardware.wifi.supplicant.SupplicantStateChangeData stateChangeData); + oneway void onQosPolicyResponseForScs(in android.hardware.wifi.supplicant.QosPolicyScsResponseStatus[] qosPolicyScsResponseStatus); + oneway void onPmkSaCacheAdded(in android.hardware.wifi.supplicant.PmkSaCacheData pmkSaData); + @Backing(type="int") @VintfStability + enum MloLinkInfoChangeReason { + TID_TO_LINK_MAP = 0, + MULTI_LINK_RECONFIG_AP_REMOVAL = 1, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetwork.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetwork.aidl new file mode 100644 index 0000000000..488037f3b4 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetwork.aidl @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantStaNetwork { + void disable(); + void enable(in boolean noConnect); + void enableSaePkOnlyMode(in boolean enable); + void enableSuiteBEapOpenSslCiphers(); + void enableTlsSuiteBEapPhase1Param(in boolean enable); + android.hardware.wifi.supplicant.AuthAlgMask getAuthAlg(); + byte[] getBssid(); + String getEapAltSubjectMatch(); + byte[] getEapAnonymousIdentity(); + String getEapCACert(); + String getEapCAPath(); + String getEapClientCert(); + String getEapDomainSuffixMatch(); + boolean getEapEngine(); + String getEapEngineId(); + byte[] getEapIdentity(); + android.hardware.wifi.supplicant.EapMethod getEapMethod(); + byte[] getEapPassword(); + android.hardware.wifi.supplicant.EapPhase2Method getEapPhase2Method(); + String getEapPrivateKeyId(); + String getEapSubjectMatch(); + boolean getEdmg(); + android.hardware.wifi.supplicant.GroupCipherMask getGroupCipher(); + android.hardware.wifi.supplicant.GroupMgmtCipherMask getGroupMgmtCipher(); + int getId(); + String getIdStr(); + String getInterfaceName(); + android.hardware.wifi.supplicant.KeyMgmtMask getKeyMgmt(); + android.hardware.wifi.supplicant.OcspType getOcsp(); + android.hardware.wifi.supplicant.PairwiseCipherMask getPairwiseCipher(); + android.hardware.wifi.supplicant.ProtoMask getProto(); + byte[] getPsk(); + String getPskPassphrase(); + boolean getRequirePmf(); + String getSaePassword(); + String getSaePasswordId(); + boolean getScanSsid(); + byte[] getSsid(); + android.hardware.wifi.supplicant.IfaceType getType(); + String getWapiCertSuite(); + byte[] getWepKey(in int keyIdx); + int getWepTxKeyIdx(); + byte[] getWpsNfcConfigurationToken(); + void registerCallback(in android.hardware.wifi.supplicant.ISupplicantStaNetworkCallback callback); + void select(); + void sendNetworkEapIdentityResponse(in byte[] identity, in byte[] encryptedIdentity); + void sendNetworkEapSimGsmAuthFailure(); + void sendNetworkEapSimGsmAuthResponse(in android.hardware.wifi.supplicant.NetworkResponseEapSimGsmAuthParams[] params); + void sendNetworkEapSimUmtsAuthFailure(); + void sendNetworkEapSimUmtsAuthResponse(in android.hardware.wifi.supplicant.NetworkResponseEapSimUmtsAuthParams params); + void sendNetworkEapSimUmtsAutsResponse(in byte[] auts); + void setAuthAlg(in android.hardware.wifi.supplicant.AuthAlgMask authAlgMask); + void setBssid(in byte[] bssid); + void setDppKeys(in android.hardware.wifi.supplicant.DppConnectionKeys keys); + void setEapAltSubjectMatch(in String match); + void setEapAnonymousIdentity(in byte[] identity); + void setEapCACert(in String path); + void setEapCAPath(in String path); + void setEapClientCert(in String path); + void setEapDomainSuffixMatch(in String match); + void setEapEncryptedImsiIdentity(in byte[] identity); + void setEapEngine(in boolean enable); + void setEapEngineID(in String id); + void setEapErp(in boolean enable); + void setEapIdentity(in byte[] identity); + void setEapMethod(in android.hardware.wifi.supplicant.EapMethod method); + void setEapPassword(in byte[] password); + void setEapPhase2Method(in android.hardware.wifi.supplicant.EapPhase2Method method); + void setEapPrivateKeyId(in String id); + void setEapSubjectMatch(in String match); + void setEdmg(in boolean enable); + void setGroupCipher(in android.hardware.wifi.supplicant.GroupCipherMask groupCipherMask); + void setGroupMgmtCipher(in android.hardware.wifi.supplicant.GroupMgmtCipherMask groupMgmtCipherMask); + void setIdStr(in String idStr); + void setKeyMgmt(in android.hardware.wifi.supplicant.KeyMgmtMask keyMgmtMask); + void setOcsp(in android.hardware.wifi.supplicant.OcspType ocspType); + void setPairwiseCipher(in android.hardware.wifi.supplicant.PairwiseCipherMask pairwiseCipherMask); + void setPmkCache(in byte[] serializedEntry); + void setProactiveKeyCaching(in boolean enable); + void setProto(in android.hardware.wifi.supplicant.ProtoMask protoMask); + void setPsk(in byte[] psk); + void setPskPassphrase(in String psk); + void setRequirePmf(in boolean enable); + void setSaeH2eMode(in android.hardware.wifi.supplicant.SaeH2eMode mode); + void setSaePassword(in String saePassword); + void setSaePasswordId(in String saePasswordId); + void setScanSsid(in boolean enable); + void setSsid(in byte[] ssid); + void setUpdateIdentifier(in int id); + void setWapiCertSuite(in String suite); + void setWepKey(in int keyIdx, in byte[] wepKey); + void setWepTxKeyIdx(in int keyIdx); + void setRoamingConsortiumSelection(in byte[] selectedRcoi); + void setMinimumTlsVersionEapPhase1Param(android.hardware.wifi.supplicant.TlsVersion tlsVersion); + void setStrictConservativePeerMode(in boolean enable); + void disableEht(); + void setVendorData(in android.hardware.wifi.common.OuiKeyedData[] vendorData); + const int SSID_MAX_LEN_IN_BYTES = 32; + const int PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8; + const int PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63; + const int WEP_KEYS_MAX_NUM = 4; + const int WEP40_KEY_LEN_IN_BYTES = 5; + const int WEP104_KEY_LEN_IN_BYTES = 13; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetworkCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetworkCallback.aidl new file mode 100644 index 0000000000..f9a078be4d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetworkCallback.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantStaNetworkCallback { + oneway void onNetworkEapIdentityRequest(); + oneway void onNetworkEapSimGsmAuthRequest(in android.hardware.wifi.supplicant.NetworkRequestEapSimGsmAuthParams params); + oneway void onNetworkEapSimUmtsAuthRequest(in android.hardware.wifi.supplicant.NetworkRequestEapSimUmtsAuthParams params); + oneway void onTransitionDisable(in android.hardware.wifi.supplicant.TransitionDisableIndication ind); + oneway void onServerCertificateAvailable(in int depth, in byte[] subject, in byte[] certHash, in byte[] certBlob); + oneway void onPermanentIdReqDenied(); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceInfo.aidl new file mode 100644 index 0000000000..6706c8c6ef --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceInfo.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable IfaceInfo { + android.hardware.wifi.supplicant.IfaceType type; + String name; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceType.aidl new file mode 100644 index 0000000000..e11c2f7ec6 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum IfaceType { + STA, + P2P, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IpVersion.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IpVersion.aidl new file mode 100644 index 0000000000..958031437c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IpVersion.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum IpVersion { + VERSION_4, + VERSION_6, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/KeyMgmtMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/KeyMgmtMask.aidl new file mode 100644 index 0000000000..06c22cbde8 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/KeyMgmtMask.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum KeyMgmtMask { + WPA_EAP = (1 << 0) /* 1 */, + WPA_PSK = (1 << 1) /* 2 */, + NONE = (1 << 2) /* 4 */, + IEEE8021X = (1 << 3) /* 8 */, + FT_EAP = (1 << 5) /* 32 */, + FT_PSK = (1 << 6) /* 64 */, + OSEN = (1 << 15) /* 32768 */, + WPA_EAP_SHA256 = (1 << 7) /* 128 */, + WPA_PSK_SHA256 = (1 << 8) /* 256 */, + SAE = (1 << 10) /* 1024 */, + SUITE_B_192 = (1 << 17) /* 131072 */, + OWE = (1 << 22) /* 4194304 */, + DPP = (1 << 23) /* 8388608 */, + WAPI_PSK = (1 << 12) /* 4096 */, + WAPI_CERT = (1 << 13) /* 8192 */, + FILS_SHA256 = (1 << 18) /* 262144 */, + FILS_SHA384 = (1 << 19) /* 524288 */, + PASN = (1 << 25) /* 33554432 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/LegacyMode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/LegacyMode.aidl new file mode 100644 index 0000000000..6896d75f7f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/LegacyMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum LegacyMode { + UNKNOWN = 0, + A_MODE = 1, + B_MODE = 2, + G_MODE = 3, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MacAddress.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MacAddress.aidl new file mode 100644 index 0000000000..d17930a649 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MacAddress.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MacAddress { + byte[] data; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboAssocDisallowedReasonCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboAssocDisallowedReasonCode.aidl new file mode 100644 index 0000000000..661165d062 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboAssocDisallowedReasonCode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum MboAssocDisallowedReasonCode { + RESERVED = 0, + UNSPECIFIED = 1, + MAX_NUM_STA_ASSOCIATED = 2, + AIR_INTERFACE_OVERLOADED = 3, + AUTH_SERVER_OVERLOADED = 4, + INSUFFICIENT_RSSI = 5, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboCellularDataConnectionPrefValue.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboCellularDataConnectionPrefValue.aidl new file mode 100644 index 0000000000..c4024d097b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboCellularDataConnectionPrefValue.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum MboCellularDataConnectionPrefValue { + EXCLUDED = 0, + NOT_PREFERRED = 1, + PREFERRED = 255, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboTransitionReasonCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboTransitionReasonCode.aidl new file mode 100644 index 0000000000..caed0950ee --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboTransitionReasonCode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum MboTransitionReasonCode { + UNSPECIFIED = 0, + EXCESSIVE_FRAME_LOSS = 1, + EXCESSIVE_TRAFFIC_DELAY = 2, + INSUFFICIENT_BANDWIDTH = 3, + LOAD_BALANCING = 4, + LOW_RSSI = 5, + RX_EXCESSIVE_RETRIES = 6, + HIGH_INTERFERENCE = 7, + GRAY_ZONE = 8, + TRANSITION_TO_PREMIUM_AP = 9, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MiracastMode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MiracastMode.aidl new file mode 100644 index 0000000000..6bc9e4d629 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MiracastMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum MiracastMode { + DISABLED = 0, + SOURCE = 1, + SINK = 2, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLink.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLink.aidl new file mode 100644 index 0000000000..8bda3242b3 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLink.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MloLink { + byte linkId; + byte[] staLinkMacAddress; + byte tidsUplinkMap; + byte tidsDownlinkMap; + @nullable byte[6] apLinkMacAddress; + int frequencyMHz; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLinksInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLinksInfo.aidl new file mode 100644 index 0000000000..3dac2d6694 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLinksInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MloLinksInfo { + android.hardware.wifi.supplicant.MloLink[] links; + int apMloLinkId; + @nullable byte[6] apMldMacAddress; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MscsParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MscsParams.aidl new file mode 100644 index 0000000000..aeed4080de --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MscsParams.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MscsParams { + byte upBitmap; + byte upLimit; + int streamTimeoutUs; + byte frameClassifierMask; + @Backing(type="int") @VintfStability + enum FrameClassifierFields { + IP_VERSION = (1 << 0) /* 1 */, + SRC_IP_ADDR = (1 << 1) /* 2 */, + DST_IP_ADDR = (1 << 2) /* 4 */, + SRC_PORT = (1 << 3) /* 8 */, + DST_PORT = (1 << 4) /* 16 */, + DSCP = (1 << 5) /* 32 */, + PROTOCOL_NEXT_HDR = (1 << 6) /* 64 */, + FLOW_LABEL = (1 << 7) /* 128 */, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MsduDeliveryInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MsduDeliveryInfo.aidl new file mode 100644 index 0000000000..792e08d2cd --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MsduDeliveryInfo.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MsduDeliveryInfo { + android.hardware.wifi.supplicant.MsduDeliveryInfo.DeliveryRatio deliveryRatio; + byte countExponent; + @Backing(type="byte") @VintfStability + enum DeliveryRatio { + RATIO_95 = 1, + RATIO_96 = 2, + RATIO_97 = 3, + RATIO_98 = 4, + RATIO_99 = 5, + RATIO_99_9 = 6, + RATIO_99_99 = 7, + RATIO_99_999 = 8, + RATIO_99_9999 = 9, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimGsmAuthParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimGsmAuthParams.aidl new file mode 100644 index 0000000000..1f03bb84c7 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimGsmAuthParams.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable NetworkRequestEapSimGsmAuthParams { + android.hardware.wifi.supplicant.GsmRand[] rands; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimUmtsAuthParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimUmtsAuthParams.aidl new file mode 100644 index 0000000000..956a799b7d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimUmtsAuthParams.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable NetworkRequestEapSimUmtsAuthParams { + byte[] rand; + byte[] autn; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimGsmAuthParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimGsmAuthParams.aidl new file mode 100644 index 0000000000..29415b739d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimGsmAuthParams.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable NetworkResponseEapSimGsmAuthParams { + byte[] kc; + byte[] sres; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimUmtsAuthParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimUmtsAuthParams.aidl new file mode 100644 index 0000000000..4e58dd8261 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimUmtsAuthParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable NetworkResponseEapSimUmtsAuthParams { + byte[] res; + byte[] ik; + byte[] ck; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OceRssiBasedAssocRejectAttr.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OceRssiBasedAssocRejectAttr.aidl new file mode 100644 index 0000000000..95a95bc543 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OceRssiBasedAssocRejectAttr.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable OceRssiBasedAssocRejectAttr { + int deltaRssi; + int retryDelayS; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OcspType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OcspType.aidl new file mode 100644 index 0000000000..d5ed084537 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OcspType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum OcspType { + NONE, + REQUEST_CERT_STATUS, + REQUIRE_CERT_STATUS, + REQUIRE_ALL_CERTS_STATUS, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OsuMethod.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OsuMethod.aidl new file mode 100644 index 0000000000..1b99e2f157 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OsuMethod.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum OsuMethod { + OMA_DM = 0, + SOAP_XML_SPP = 1, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl new file mode 100644 index 0000000000..ff73f84f24 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pAddGroupConfigurationParams { + byte[] ssid; + String passphrase; + boolean isPersistent; + int frequencyMHzOrBand; + byte[6] goInterfaceAddress; + boolean joinExistingGroup; + int keyMgmtMask; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pClientEapolIpAddressInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pClientEapolIpAddressInfo.aidl new file mode 100644 index 0000000000..db31ca1d48 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pClientEapolIpAddressInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pClientEapolIpAddressInfo { + int ipAddressClient; + int ipAddressMask; + int ipAddressGo; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pConnectInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pConnectInfo.aidl new file mode 100644 index 0000000000..f4662de122 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pConnectInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pConnectInfo { + byte[6] peerAddress; + android.hardware.wifi.supplicant.WpsProvisionMethod provisionMethod; + String preSelectedPin; + boolean joinExistingGroup; + boolean persistent; + int goIntent; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl new file mode 100644 index 0000000000..4451fb55ef --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pCreateGroupOwnerInfo { + boolean persistent; + int persistentNetworkId; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDeviceFoundEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDeviceFoundEventParams.aidl new file mode 100644 index 0000000000..ee8e6dc186 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDeviceFoundEventParams.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pDeviceFoundEventParams { + byte[6] srcAddress; + byte[6] p2pDeviceAddress; + byte[] primaryDeviceType; + String deviceName; + int configMethods; + byte deviceCapabilities; + int groupCapabilities; + byte[] wfdDeviceInfo; + byte[] wfdR2DeviceInfo; + byte[] vendorElemBytes; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDiscoveryInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDiscoveryInfo.aidl new file mode 100644 index 0000000000..5b7dd3f043 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDiscoveryInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pDiscoveryInfo { + android.hardware.wifi.supplicant.P2pScanType scanType; + int frequencyMhz; + int timeoutInSec; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl new file mode 100644 index 0000000000..b4d8e9d92e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pExtListenInfo { + int periodMs; + int intervalMs; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pFrameTypeMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pFrameTypeMask.aidl new file mode 100644 index 0000000000..3c6f8ed5ed --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pFrameTypeMask.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum P2pFrameTypeMask { + P2P_FRAME_PROBE_REQ_P2P = (1 << 0) /* 1 */, + P2P_FRAME_PROBE_RESP_P2P = (1 << 1) /* 2 */, + P2P_FRAME_PROBE_RESP_P2P_GO = (1 << 2) /* 4 */, + P2P_FRAME_BEACON_P2P_GO = (1 << 3) /* 8 */, + P2P_FRAME_P2P_PD_REQ = (1 << 4) /* 16 */, + P2P_FRAME_P2P_PD_RESP = (1 << 5) /* 32 */, + P2P_FRAME_P2P_GO_NEG_REQ = (1 << 6) /* 64 */, + P2P_FRAME_P2P_GO_NEG_RESP = (1 << 7) /* 128 */, + P2P_FRAME_P2P_GO_NEG_CONF = (1 << 8) /* 256 */, + P2P_FRAME_P2P_INV_REQ = (1 << 9) /* 512 */, + P2P_FRAME_P2P_INV_RESP = (1 << 10) /* 1024 */, + P2P_FRAME_P2P_ASSOC_REQ = (1 << 11) /* 2048 */, + P2P_FRAME_P2P_ASSOC_RESP = (1 << 12) /* 4096 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl new file mode 100644 index 0000000000..ba10b3ee64 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pGoNegotiationReqEventParams { + byte[6] srcAddress; + android.hardware.wifi.supplicant.WpsDevPasswordId passwordId; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupCapabilityMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupCapabilityMask.aidl new file mode 100644 index 0000000000..e47713182e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupCapabilityMask.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum P2pGroupCapabilityMask { + GROUP_OWNER = (1 << 0) /* 1 */, + PERSISTENT_GROUP = (1 << 1) /* 2 */, + GROUP_LIMIT = (1 << 2) /* 4 */, + INTRA_BSS_DIST = (1 << 3) /* 8 */, + CROSS_CONN = (1 << 4) /* 16 */, + PERSISTENT_RECONN = (1 << 5) /* 32 */, + GROUP_FORMATION = (1 << 6) /* 64 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl new file mode 100644 index 0000000000..e19ae4460d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pGroupStartedEventParams { + String groupInterfaceName; + boolean isGroupOwner; + byte[] ssid; + int frequencyMHz; + byte[] psk; + String passphrase; + boolean isPersistent; + byte[6] goDeviceAddress; + byte[6] goInterfaceAddress; + boolean isP2pClientEapolIpAddressInfoPresent; + android.hardware.wifi.supplicant.P2pClientEapolIpAddressInfo p2pClientIpInfo; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl new file mode 100644 index 0000000000..541ee4f93d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pInvitationEventParams { + byte[6] srcAddress; + byte[6] goDeviceAddress; + byte[6] bssid; + int persistentNetworkId; + int operatingFrequencyMHz; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl new file mode 100644 index 0000000000..5c7c393b4b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pPeerClientDisconnectedEventParams { + String groupInterfaceName; + byte[6] clientInterfaceAddress; + byte[6] clientDeviceAddress; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl new file mode 100644 index 0000000000..40c8ff6d8a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pPeerClientJoinedEventParams { + String groupInterfaceName; + byte[6] clientInterfaceAddress; + byte[6] clientDeviceAddress; + int clientIpAddress; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvDiscStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvDiscStatusCode.aidl new file mode 100644 index 0000000000..c8e53b93c1 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvDiscStatusCode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum P2pProvDiscStatusCode { + SUCCESS = 0, + TIMEOUT = 1, + REJECTED = 2, + TIMEOUT_JOIN = 3, + INFO_UNAVAILABLE = 4, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl new file mode 100644 index 0000000000..46366cc8d3 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pProvisionDiscoveryCompletedEventParams { + byte[6] p2pDeviceAddress; + boolean isRequest; + android.hardware.wifi.supplicant.P2pProvDiscStatusCode status; + int configMethods; + String generatedPin; + String groupInterfaceName; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pScanType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pScanType.aidl new file mode 100644 index 0000000000..ff3efd2063 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pScanType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum P2pScanType { + FULL, + SOCIAL, + SPECIFIC_FREQ, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pStatusCode.aidl new file mode 100644 index 0000000000..c7ad3832c7 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pStatusCode.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum P2pStatusCode { + SUCCESS = 0, + FAIL_INFO_CURRENTLY_UNAVAILABLE = 1, + FAIL_INCOMPATIBLE_PARAMS = 2, + FAIL_LIMIT_REACHED = 3, + FAIL_INVALID_PARAMS = 4, + FAIL_UNABLE_TO_ACCOMMODATE = 5, + FAIL_PREV_PROTOCOL_ERROR = 6, + FAIL_NO_COMMON_CHANNELS = 7, + FAIL_UNKNOWN_GROUP = 8, + FAIL_BOTH_GO_INTENT_15 = 9, + FAIL_INCOMPATIBLE_PROV_METHOD = 10, + FAIL_REJECTED_BY_USER = 11, + SUCCESS_DEFERRED = 12, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PairwiseCipherMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PairwiseCipherMask.aidl new file mode 100644 index 0000000000..a4c7b6065b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PairwiseCipherMask.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum PairwiseCipherMask { + NONE = (1 << 0) /* 1 */, + TKIP = (1 << 3) /* 8 */, + CCMP = (1 << 4) /* 16 */, + GCMP_128 = (1 << 6) /* 64 */, + SMS4 = (1 << 7) /* 128 */, + GCMP_256 = (1 << 8) /* 256 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PmkSaCacheData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PmkSaCacheData.aidl new file mode 100644 index 0000000000..c31b16756c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PmkSaCacheData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable PmkSaCacheData { + byte[6] bssid; + long expirationTimeInSec; + byte[] serializedEntry; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PortRange.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PortRange.aidl new file mode 100644 index 0000000000..b2004f242b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PortRange.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable PortRange { + int startPort; + int endPort; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtoMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtoMask.aidl new file mode 100644 index 0000000000..ba79025fa1 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtoMask.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum ProtoMask { + WPA = (1 << 0) /* 1 */, + RSN = (1 << 1) /* 2 */, + WAPI = (1 << 2) /* 4 */, + OSEN = (1 << 3) /* 8 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtocolNextHeader.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtocolNextHeader.aidl new file mode 100644 index 0000000000..8fb91d0511 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtocolNextHeader.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum ProtocolNextHeader { + TCP = 6, + UDP = 17, + ESP = 50, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosCharacteristics.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosCharacteristics.aidl new file mode 100644 index 0000000000..dacac8c49a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosCharacteristics.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosCharacteristics { + int minServiceIntervalUs; + int maxServiceIntervalUs; + int minDataRateKbps; + int delayBoundUs; + int optionalFieldMask; + char maxMsduSizeOctets; + int serviceStartTimeUs; + byte serviceStartTimeLinkId; + int meanDataRateKbps; + int burstSizeOctets; + char msduLifetimeMs; + android.hardware.wifi.supplicant.MsduDeliveryInfo msduDeliveryInfo; + @Backing(type="int") @VintfStability + enum QosCharacteristicsMask { + MAX_MSDU_SIZE = (1 << 0) /* 1 */, + SERVICE_START_TIME = (1 << 1) /* 2 */, + SERVICE_START_TIME_LINK_ID = (1 << 2) /* 4 */, + MEAN_DATA_RATE = (1 << 3) /* 8 */, + BURST_SIZE = (1 << 4) /* 16 */, + MSDU_LIFETIME = (1 << 5) /* 32 */, + MSDU_DELIVERY_INFO = (1 << 6) /* 64 */, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParams.aidl new file mode 100644 index 0000000000..156d57ac0c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParams.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyClassifierParams { + android.hardware.wifi.supplicant.IpVersion ipVersion; + android.hardware.wifi.supplicant.QosPolicyClassifierParamsMask classifierParamMask; + byte[] srcIp; + byte[] dstIp; + int srcPort; + android.hardware.wifi.supplicant.PortRange dstPortRange; + android.hardware.wifi.supplicant.ProtocolNextHeader protocolNextHdr; + byte[] flowLabelIpv6; + String domainName; + byte dscp; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParamsMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParamsMask.aidl new file mode 100644 index 0000000000..fda5e3ef67 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParamsMask.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum QosPolicyClassifierParamsMask { + SRC_IP = (1 << 0) /* 1 */, + DST_IP = (1 << 1) /* 2 */, + SRC_PORT = (1 << 2) /* 4 */, + DST_PORT_RANGE = (1 << 3) /* 8 */, + PROTOCOL_NEXT_HEADER = (1 << 4) /* 16 */, + FLOW_LABEL = (1 << 5) /* 32 */, + DOMAIN_NAME = (1 << 6) /* 64 */, + DSCP = (1 << 7) /* 128 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyData.aidl new file mode 100644 index 0000000000..1719565a81 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyData.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyData { + byte policyId; + android.hardware.wifi.supplicant.QosPolicyRequestType requestType; + byte dscp; + android.hardware.wifi.supplicant.QosPolicyClassifierParams classifierParams; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyRequestType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyRequestType.aidl new file mode 100644 index 0000000000..fd4e787d9e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyRequestType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum QosPolicyRequestType { + QOS_POLICY_ADD, + QOS_POLICY_REMOVE, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsData.aidl new file mode 100644 index 0000000000..20be616fbb --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsData.aidl @@ -0,0 +1,32 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyScsData { + byte policyId; + byte userPriority; + android.hardware.wifi.supplicant.QosPolicyClassifierParams classifierParams; + android.hardware.wifi.supplicant.QosPolicyScsData.LinkDirection direction; + @nullable android.hardware.wifi.supplicant.QosCharacteristics QosCharacteristics; + @Backing(type="byte") @VintfStability + enum LinkDirection { + DOWNLINK, + UPLINK, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatus.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatus.aidl new file mode 100644 index 0000000000..d5573af593 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatus.aidl @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyScsRequestStatus { + byte policyId; + android.hardware.wifi.supplicant.QosPolicyScsRequestStatusCode qosPolicyScsRequestStatusCode; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatusCode.aidl new file mode 100644 index 0000000000..8e0467f75a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatusCode.aidl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum QosPolicyScsRequestStatusCode { + SENT, + ALREADY_ACTIVE, + NOT_EXIST, + INVALID, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatus.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatus.aidl new file mode 100644 index 0000000000..2737f1a5a8 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatus.aidl @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyScsResponseStatus { + byte policyId; + android.hardware.wifi.supplicant.QosPolicyScsResponseStatusCode qosPolicyScsResponseStatusCode; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatusCode.aidl new file mode 100644 index 0000000000..5d460c69c5 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatusCode.aidl @@ -0,0 +1,31 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum QosPolicyScsResponseStatusCode { + SUCCESS, + TCLAS_REQUEST_DECLINED, + TCLAS_NOT_SUPPORTED_BY_AP, + TCLAS_INSUFFICIENT_RESOURCES, + TCLAS_RESOURCES_EXHAUSTED, + TCLAS_PROCESSING_TERMINATED_INSUFFICIENT_QOS, + TCLAS_PROCESSING_TERMINATED_POLICY_CONFLICT, + TCLAS_PROCESSING_TERMINATED, + TIMEOUT, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatus.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatus.aidl new file mode 100644 index 0000000000..61278c5fe5 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyStatus { + byte policyId; + android.hardware.wifi.supplicant.QosPolicyStatusCode status; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatusCode.aidl new file mode 100644 index 0000000000..92286325c8 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatusCode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum QosPolicyStatusCode { + QOS_POLICY_SUCCESS, + QOS_POLICY_REQUEST_DECLINED, + QOS_POLICY_CLASSIFIER_NOT_SUPPORTED, + QOS_POLICY_INSUFFICIENT_RESOURCES, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/RxFilterType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/RxFilterType.aidl new file mode 100644 index 0000000000..63f5bf2c45 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/RxFilterType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum RxFilterType { + V4_MULTICAST = 0, + V6_MULTICAST = 1, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SaeH2eMode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SaeH2eMode.aidl new file mode 100644 index 0000000000..4730d72c04 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SaeH2eMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum SaeH2eMode { + DISABLED, + H2E_OPTIONAL, + H2E_MANDATORY, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SignalPollResult.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SignalPollResult.aidl new file mode 100644 index 0000000000..52d3f2447d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SignalPollResult.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable SignalPollResult { + int linkId; + int currentRssiDbm; + int txBitrateMbps; + int rxBitrateMbps; + int frequencyMhz; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceCallbackState.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceCallbackState.aidl new file mode 100644 index 0000000000..d78cfa2f28 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceCallbackState.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum StaIfaceCallbackState { + DISCONNECTED = 0, + IFACE_DISABLED = 1, + INACTIVE = 2, + SCANNING = 3, + AUTHENTICATING = 4, + ASSOCIATING = 5, + ASSOCIATED = 6, + FOURWAY_HANDSHAKE = 7, + GROUP_HANDSHAKE = 8, + COMPLETED = 9, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceReasonCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceReasonCode.aidl new file mode 100644 index 0000000000..f26e7c5393 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceReasonCode.aidl @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum StaIfaceReasonCode { + UNSPECIFIED = 1, + PREV_AUTH_NOT_VALID = 2, + DEAUTH_LEAVING = 3, + DISASSOC_DUE_TO_INACTIVITY = 4, + DISASSOC_AP_BUSY = 5, + CLASS2_FRAME_FROM_NONAUTH_STA = 6, + CLASS3_FRAME_FROM_NONASSOC_STA = 7, + DISASSOC_STA_HAS_LEFT = 8, + STA_REQ_ASSOC_WITHOUT_AUTH = 9, + PWR_CAPABILITY_NOT_VALID = 10, + SUPPORTED_CHANNEL_NOT_VALID = 11, + BSS_TRANSITION_DISASSOC = 12, + INVALID_IE = 13, + MICHAEL_MIC_FAILURE = 14, + FOURWAY_HANDSHAKE_TIMEOUT = 15, + GROUP_KEY_UPDATE_TIMEOUT = 16, + IE_IN_4WAY_DIFFERS = 17, + GROUP_CIPHER_NOT_VALID = 18, + PAIRWISE_CIPHER_NOT_VALID = 19, + AKMP_NOT_VALID = 20, + UNSUPPORTED_RSN_IE_VERSION = 21, + INVALID_RSN_IE_CAPAB = 22, + IEEE_802_1X_AUTH_FAILED = 23, + CIPHER_SUITE_REJECTED = 24, + TDLS_TEARDOWN_UNREACHABLE = 25, + TDLS_TEARDOWN_UNSPECIFIED = 26, + SSP_REQUESTED_DISASSOC = 27, + NO_SSP_ROAMING_AGREEMENT = 28, + BAD_CIPHER_OR_AKM = 29, + NOT_AUTHORIZED_THIS_LOCATION = 30, + SERVICE_CHANGE_PRECLUDES_TS = 31, + UNSPECIFIED_QOS_REASON = 32, + NOT_ENOUGH_BANDWIDTH = 33, + DISASSOC_LOW_ACK = 34, + EXCEEDED_TXOP = 35, + STA_LEAVING = 36, + END_TS_BA_DLS = 37, + UNKNOWN_TS_BA = 38, + TIMEOUT = 39, + PEERKEY_MISMATCH = 45, + AUTHORIZED_ACCESS_LIMIT_REACHED = 46, + EXTERNAL_SERVICE_REQUIREMENTS = 47, + INVALID_FT_ACTION_FRAME_COUNT = 48, + INVALID_PMKID = 49, + INVALID_MDE = 50, + INVALID_FTE = 51, + MESH_PEERING_CANCELLED = 52, + MESH_MAX_PEERS = 53, + MESH_CONFIG_POLICY_VIOLATION = 54, + MESH_CLOSE_RCVD = 55, + MESH_MAX_RETRIES = 56, + MESH_CONFIRM_TIMEOUT = 57, + MESH_INVALID_GTK = 58, + MESH_INCONSISTENT_PARAMS = 59, + MESH_INVALID_SECURITY_CAP = 60, + MESH_PATH_ERROR_NO_PROXY_INFO = 61, + MESH_PATH_ERROR_NO_FORWARDING_INFO = 62, + MESH_PATH_ERROR_DEST_UNREACHABLE = 63, + MAC_ADDRESS_ALREADY_EXISTS_IN_MBSS = 64, + MESH_CHANNEL_SWITCH_REGULATORY_REQ = 65, + MESH_CHANNEL_SWITCH_UNSPECIFIED = 66, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceStatusCode.aidl new file mode 100644 index 0000000000..13529a5be1 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceStatusCode.aidl @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum StaIfaceStatusCode { + SUCCESS = 0, + UNSPECIFIED_FAILURE = 1, + TDLS_WAKEUP_ALTERNATE = 2, + TDLS_WAKEUP_REJECT = 3, + SECURITY_DISABLED = 5, + UNACCEPTABLE_LIFETIME = 6, + NOT_IN_SAME_BSS = 7, + CAPS_UNSUPPORTED = 10, + REASSOC_NO_ASSOC = 11, + ASSOC_DENIED_UNSPEC = 12, + NOT_SUPPORTED_AUTH_ALG = 13, + UNKNOWN_AUTH_TRANSACTION = 14, + CHALLENGE_FAIL = 15, + AUTH_TIMEOUT = 16, + AP_UNABLE_TO_HANDLE_NEW_STA = 17, + ASSOC_DENIED_RATES = 18, + ASSOC_DENIED_NOSHORT = 19, + SPEC_MGMT_REQUIRED = 22, + PWR_CAPABILITY_NOT_VALID = 23, + SUPPORTED_CHANNEL_NOT_VALID = 24, + ASSOC_DENIED_NO_SHORT_SLOT_TIME = 25, + ASSOC_DENIED_NO_HT = 27, + R0KH_UNREACHABLE = 28, + ASSOC_DENIED_NO_PCO = 29, + ASSOC_REJECTED_TEMPORARILY = 30, + ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31, + UNSPECIFIED_QOS_FAILURE = 32, + DENIED_INSUFFICIENT_BANDWIDTH = 33, + DENIED_POOR_CHANNEL_CONDITIONS = 34, + DENIED_QOS_NOT_SUPPORTED = 35, + REQUEST_DECLINED = 37, + INVALID_PARAMETERS = 38, + REJECTED_WITH_SUGGESTED_CHANGES = 39, + INVALID_IE = 40, + GROUP_CIPHER_NOT_VALID = 41, + PAIRWISE_CIPHER_NOT_VALID = 42, + AKMP_NOT_VALID = 43, + UNSUPPORTED_RSN_IE_VERSION = 44, + INVALID_RSN_IE_CAPAB = 45, + CIPHER_REJECTED_PER_POLICY = 46, + TS_NOT_CREATED = 47, + DIRECT_LINK_NOT_ALLOWED = 48, + DEST_STA_NOT_PRESENT = 49, + DEST_STA_NOT_QOS_STA = 50, + ASSOC_DENIED_LISTEN_INT_TOO_LARGE = 51, + INVALID_FT_ACTION_FRAME_COUNT = 52, + INVALID_PMKID = 53, + INVALID_MDIE = 54, + INVALID_FTIE = 55, + REQUESTED_TCLAS_NOT_SUPPORTED = 56, + INSUFFICIENT_TCLAS_PROCESSING_RESOURCES = 57, + TRY_ANOTHER_BSS = 58, + GAS_ADV_PROTO_NOT_SUPPORTED = 59, + NO_OUTSTANDING_GAS_REQ = 60, + GAS_RESP_NOT_RECEIVED = 61, + STA_TIMED_OUT_WAITING_FOR_GAS_RESP = 62, + GAS_RESP_LARGER_THAN_LIMIT = 63, + REQ_REFUSED_HOME = 64, + ADV_SRV_UNREACHABLE = 65, + REQ_REFUSED_SSPN = 67, + REQ_REFUSED_UNAUTH_ACCESS = 68, + INVALID_RSNIE = 72, + U_APSD_COEX_NOT_SUPPORTED = 73, + U_APSD_COEX_MODE_NOT_SUPPORTED = 74, + BAD_INTERVAL_WITH_U_APSD_COEX = 75, + ANTI_CLOGGING_TOKEN_REQ = 76, + FINITE_CYCLIC_GROUP_NOT_SUPPORTED = 77, + CANNOT_FIND_ALT_TBTT = 78, + TRANSMISSION_FAILURE = 79, + REQ_TCLAS_NOT_SUPPORTED = 80, + TCLAS_RESOURCES_EXCHAUSTED = 81, + REJECTED_WITH_SUGGESTED_BSS_TRANSITION = 82, + REJECT_WITH_SCHEDULE = 83, + REJECT_NO_WAKEUP_SPECIFIED = 84, + SUCCESS_POWER_SAVE_MODE = 85, + PENDING_ADMITTING_FST_SESSION = 86, + PERFORMING_FST_NOW = 87, + PENDING_GAP_IN_BA_WINDOW = 88, + REJECT_U_PID_SETTING = 89, + REFUSED_EXTERNAL_REASON = 92, + REFUSED_AP_OUT_OF_MEMORY = 93, + REJECTED_EMERGENCY_SERVICE_NOT_SUPPORTED = 94, + QUERY_RESP_OUTSTANDING = 95, + REJECT_DSE_BAND = 96, + TCLAS_PROCESSING_TERMINATED = 97, + TS_SCHEDULE_CONFLICT = 98, + DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99, + MCCAOP_RESERVATION_CONFLICT = 100, + MAF_LIMIT_EXCEEDED = 101, + MCCA_TRACK_LIMIT_EXCEEDED = 102, + DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103, + ASSOC_DENIED_NO_VHT = 104, + ENABLEMENT_DENIED = 105, + RESTRICTION_FROM_AUTHORIZED_GDB = 106, + AUTHORIZATION_DEENABLED = 107, + FILS_AUTHENTICATION_FAILURE = 112, + UNKNOWN_AUTHENTICATION_SERVER = 113, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl new file mode 100644 index 0000000000..1d37635a29 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable SupplicantStateChangeData { + android.hardware.wifi.supplicant.StaIfaceCallbackState newState; + int id; + byte[] ssid; + byte[6] bssid; + android.hardware.wifi.supplicant.KeyMgmtMask keyMgmtMask; + int frequencyMhz; + boolean filsHlpSent; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStatusCode.aidl new file mode 100644 index 0000000000..d7ff7982b5 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStatusCode.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum SupplicantStatusCode { + SUCCESS, + FAILURE_UNKNOWN, + FAILURE_ARGS_INVALID, + FAILURE_IFACE_INVALID, + FAILURE_IFACE_UNKNOWN, + FAILURE_IFACE_EXISTS, + FAILURE_IFACE_DISABLED, + FAILURE_IFACE_NOT_DISCONNECTED, + FAILURE_NETWORK_INVALID, + FAILURE_NETWORK_UNKNOWN, + FAILURE_UNSUPPORTED, + FAILURE_ONGOING_REQUEST, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TlsVersion.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TlsVersion.aidl new file mode 100644 index 0000000000..b31826a198 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TlsVersion.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum TlsVersion { + TLS_V1_0, + TLS_V1_1, + TLS_V1_2, + TLS_V1_3, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TransitionDisableIndication.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TransitionDisableIndication.aidl new file mode 100644 index 0000000000..f1d7370c76 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TransitionDisableIndication.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum TransitionDisableIndication { + USE_WPA3_PERSONAL = (1 << 0) /* 1 */, + USE_SAE_PK = (1 << 1) /* 2 */, + USE_WPA3_ENTERPRISE = (1 << 2) /* 4 */, + USE_ENHANCED_OPEN = (1 << 3) /* 8 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WifiTechnology.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WifiTechnology.aidl new file mode 100644 index 0000000000..bf5081ea70 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WifiTechnology.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WifiTechnology { + UNKNOWN = 0, + LEGACY = 1, + HT = 2, + VHT = 3, + HE = 4, + EHT = 5, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpaDriverCapabilitiesMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpaDriverCapabilitiesMask.aidl new file mode 100644 index 0000000000..330f2aa267 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpaDriverCapabilitiesMask.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpaDriverCapabilitiesMask { + MBO = (1 << 0) /* 1 */, + OCE = (1 << 1) /* 2 */, + SAE_PK = (1 << 2) /* 4 */, + WFD_R2 = (1 << 3) /* 8 */, + TRUST_ON_FIRST_USE = (1 << 4) /* 16 */, + SET_TLS_MINIMUM_VERSION = (1 << 5) /* 32 */, + TLS_V1_3 = (1 << 6) /* 64 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigError.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigError.aidl new file mode 100644 index 0000000000..c48b282e35 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigError.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsConfigError { + NO_ERROR = 0, + OOB_IFACE_READ_ERROR = 1, + DECRYPTION_CRC_FAILURE = 2, + CHAN_24_NOT_SUPPORTED = 3, + CHAN_50_NOT_SUPPORTED = 4, + SIGNAL_TOO_WEAK = 5, + NETWORK_AUTH_FAILURE = 6, + NETWORK_ASSOC_FAILURE = 7, + NO_DHCP_RESPONSE = 8, + FAILED_DHCP_CONFIG = 9, + IP_ADDR_CONFLICT = 10, + NO_CONN_TO_REGISTRAR = 11, + MULTIPLE_PBC_DETECTED = 12, + ROGUE_SUSPECTED = 13, + DEVICE_BUSY = 14, + SETUP_LOCKED = 15, + MSG_TIMEOUT = 16, + REG_SESS_TIMEOUT = 17, + DEV_PASSWORD_AUTH_FAILURE = 18, + CHAN_60G_NOT_SUPPORTED = 19, + PUBLIC_KEY_HASH_MISMATCH = 20, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigMethods.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigMethods.aidl new file mode 100644 index 0000000000..b9ea211bb4 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigMethods.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsConfigMethods { + USBA = 0x0001, + ETHERNET = 0x0002, + LABEL = 0x0004, + DISPLAY = 0x0008, + EXT_NFC_TOKEN = 0x0010, + INT_NFC_TOKEN = 0x0020, + NFC_INTERFACE = 0x0040, + PUSHBUTTON = 0x0080, + KEYPAD = 0x0100, + VIRT_PUSHBUTTON = 0x0280, + PHY_PUSHBUTTON = 0x0480, + P2PS = 0x1000, + VIRT_DISPLAY = 0x2008, + PHY_DISPLAY = 0x4008, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsDevPasswordId.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsDevPasswordId.aidl new file mode 100644 index 0000000000..9a20187b6e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsDevPasswordId.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsDevPasswordId { + DEFAULT = 0x0000, + USER_SPECIFIED = 0x0001, + MACHINE_SPECIFIED = 0x0002, + REKEY = 0x0003, + PUSHBUTTON = 0x0004, + REGISTRAR_SPECIFIED = 0x0005, + NFC_CONNECTION_HANDOVER = 0x0007, + P2PS_DEFAULT = 0x0008, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsErrorIndication.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsErrorIndication.aidl new file mode 100644 index 0000000000..50e69ff03b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsErrorIndication.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsErrorIndication { + NO_ERROR = 0, + SECURITY_TKIP_ONLY_PROHIBITED = 1, + SECURITY_WEP_PROHIBITED = 2, + AUTH_FAILURE = 3, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsProvisionMethod.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsProvisionMethod.aidl new file mode 100644 index 0000000000..177d218db3 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsProvisionMethod.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsProvisionMethod { + PBC, + DISPLAY, + KEYPAD, +} -- GitLab From 76fe5d7870f47d180d024f4f82d310a3fdcb6cfb Mon Sep 17 00:00:00 2001 From: Kai Shi Date: Tue, 20 Feb 2024 14:16:24 -0800 Subject: [PATCH 368/418] Add VTS test for cached scan data Test: atest VtsHalWifiStaIfaceTargetTest Bug: 269485350 Change-Id: Iff3523c424cd529115c3f5b49cec19120ae7b809 --- .../functional/wifi_sta_iface_aidl_test.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 1ea1237a2d..aa7c87f4b4 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -29,6 +29,7 @@ #include "wifi_aidl_test_utils.h" +using aidl::android::hardware::wifi::CachedScanData; using aidl::android::hardware::wifi::IWifi; using aidl::android::hardware::wifi::IWifiStaIface; using aidl::android::hardware::wifi::MacAddress; @@ -324,6 +325,23 @@ TEST_P(WifiStaIfaceAidlTest, PacketFateMonitoring) { } } +/* + * CachedScanData + */ +TEST_P(WifiStaIfaceAidlTest, CachedScanData) { + if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::CACHED_SCAN_DATA)) { + GTEST_SKIP() << "Cached scan data is not supported."; + } + + // Retrieve cached scan data. + CachedScanData cached_scan_data = {}; + EXPECT_TRUE(wifi_sta_iface_->getCachedScanData(&cached_scan_data).isOk()); + + if (cached_scan_data.cachedScanResults.size() > 0) { + EXPECT_GT(cached_scan_data.cachedScanResults[0].frequencyMhz, 0); + } +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(WifiStaIfaceAidlTest); INSTANTIATE_TEST_SUITE_P(WifiTest, WifiStaIfaceAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames(IWifi::descriptor)), -- GitLab From 67c465f7fe3c68019157290dff5235d43ef39c27 Mon Sep 17 00:00:00 2001 From: shrikar Date: Sun, 14 Jan 2024 06:11:07 +0000 Subject: [PATCH 369/418] Added resolution to SubscriptionManager in reference VHAL Bug: 276124296 Test: atest DefaultVehicleHalTest Change-Id: I972b7f0c04953b390f642317c491f3f99e045045 --- .../impl/utils/common/include/VehicleUtils.h | 17 +++ .../impl/vhal/include/SubscriptionManager.h | 19 +++- .../impl/vhal/src/SubscriptionManager.cpp | 79 ++++++++++--- .../vhal/test/SubscriptionManagerTest.cpp | 104 ++++++++++++++++++ 4 files changed, 198 insertions(+), 21 deletions(-) diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h index 523cac527e..aca725df56 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h @@ -333,6 +333,23 @@ inline std::string propIdToString(int32_t propId) { static_cast(propId)); } +template +void roundToNearestResolution(std::vector& arrayToSanitize, float resolution) { + if (resolution == 0) { + return; + } + for (size_t i = 0; i < arrayToSanitize.size(); i++) { + arrayToSanitize[i] = (T)((std::round(arrayToSanitize[i] / resolution)) * resolution); + } +} + +inline void sanitizeByResolution(aidl::android::hardware::automotive::vehicle::RawPropValues* value, + float resolution) { + roundToNearestResolution(value->int32Values, resolution); + roundToNearestResolution(value->floatValues, resolution); + roundToNearestResolution(value->int64Values, resolution); +} + } // namespace vehicle } // namespace automotive } // namespace hardware diff --git a/automotive/vehicle/aidl/impl/vhal/include/SubscriptionManager.h b/automotive/vehicle/aidl/impl/vhal/include/SubscriptionManager.h index 5053c96efe..2f16fca93c 100644 --- a/automotive/vehicle/aidl/impl/vhal/include/SubscriptionManager.h +++ b/automotive/vehicle/aidl/impl/vhal/include/SubscriptionManager.h @@ -25,6 +25,8 @@ #include #include +#include +#include #include #include #include @@ -39,6 +41,7 @@ namespace vehicle { // A structure to represent subscription config for one subscription client. struct SubConfig { float sampleRateHz; + float resolution; bool enableVur; }; @@ -47,14 +50,19 @@ class ContSubConfigs final { public: using ClientIdType = const AIBinder*; - void addClient(const ClientIdType& clientId, float sampleRateHz, bool enableVur); + void addClient(const ClientIdType& clientId, const SubConfig& subConfig); void removeClient(const ClientIdType& clientId); float getMaxSampleRateHz() const; + float getMinRequiredResolution() const; bool isVurEnabled() const; - bool isVurEnabledForClient(const ClientIdType& clientId); + bool isVurEnabledForClient(const ClientIdType& clientId) const; + float getResolutionForClient(const ClientIdType& clientId) const; private: float mMaxSampleRateHz = 0.; + // Baseline for resolution is maximum possible float. We want to sanitize to the highest + // requested resolution, which is the smallest float value for resolution. + float mMinRequiredResolution = std::numeric_limits::max(); bool mEnableVur; std::unordered_map mConfigByClient; @@ -117,6 +125,9 @@ class SubscriptionManager final { // Checks whether the sample rate is valid. static bool checkSampleRateHz(float sampleRateHz); + // Checks whether the resolution is valid. + static bool checkResolution(float resolution); + private: // Friend class for testing. friend class DefaultVehicleHalTest; @@ -153,8 +164,8 @@ class SubscriptionManager final { VhalResult addContinuousSubscriberLocked(const ClientIdType& clientId, const PropIdAreaId& propIdAreaId, - float sampleRateHz, bool enableVur) - REQUIRES(mLock); + float sampleRateHz, float resolution, + bool enableVur) REQUIRES(mLock); VhalResult addOnChangeSubscriberLocked(const PropIdAreaId& propIdAreaId) REQUIRES(mLock); // Removes the subscription client for the continuous [propId, areaId]. VhalResult removeContinuousSubscriberLocked(const ClientIdType& clientId, diff --git a/automotive/vehicle/aidl/impl/vhal/src/SubscriptionManager.cpp b/automotive/vehicle/aidl/impl/vhal/src/SubscriptionManager.cpp index 29d81a75e7..f1106eea54 100644 --- a/automotive/vehicle/aidl/impl/vhal/src/SubscriptionManager.cpp +++ b/automotive/vehicle/aidl/impl/vhal/src/SubscriptionManager.cpp @@ -43,11 +43,12 @@ using ::ndk::ScopedAStatus; constexpr float ONE_SECOND_IN_NANOS = 1'000'000'000.; SubscribeOptions newSubscribeOptions(int32_t propId, int32_t areaId, float sampleRateHz, - bool enableVur) { + float resolution, bool enableVur) { SubscribeOptions subscribedOptions; subscribedOptions.propId = propId; subscribedOptions.areaIds = {areaId}; subscribedOptions.sampleRate = sampleRateHz; + subscribedOptions.resolution = resolution; subscribedOptions.enableVariableUpdateRate = enableVur; return subscribedOptions; @@ -81,8 +82,18 @@ Result SubscriptionManager::getIntervalNanos(float sampleRateHz) { return intervalNanos; } +bool SubscriptionManager::checkResolution(float resolution) { + if (resolution == 0) { + return true; + } + + float log = std::log10(resolution); + return log == (int)log; +} + void ContSubConfigs::refreshCombinedConfig() { float maxSampleRateHz = 0.; + float minRequiredResolution = std::numeric_limits::max(); bool enableVur = true; // This is not called frequently so a brute-focre is okay. More efficient way exists but this // is simpler. @@ -90,6 +101,9 @@ void ContSubConfigs::refreshCombinedConfig() { if (subConfig.sampleRateHz > maxSampleRateHz) { maxSampleRateHz = subConfig.sampleRateHz; } + if (subConfig.resolution < minRequiredResolution) { + minRequiredResolution = subConfig.resolution; + } if (!subConfig.enableVur) { // If one client does not enable variable update rate, we cannot enable variable update // rate in IVehicleHardware. @@ -97,14 +111,12 @@ void ContSubConfigs::refreshCombinedConfig() { } } mMaxSampleRateHz = maxSampleRateHz; + mMinRequiredResolution = minRequiredResolution; mEnableVur = enableVur; } -void ContSubConfigs::addClient(const ClientIdType& clientId, float sampleRateHz, bool enableVur) { - mConfigByClient[clientId] = { - .sampleRateHz = sampleRateHz, - .enableVur = enableVur, - }; +void ContSubConfigs::addClient(const ClientIdType& clientId, const SubConfig& subConfig) { + mConfigByClient[clientId] = subConfig; refreshCombinedConfig(); } @@ -117,12 +129,26 @@ float ContSubConfigs::getMaxSampleRateHz() const { return mMaxSampleRateHz; } +float ContSubConfigs::getMinRequiredResolution() const { + return mMinRequiredResolution; +} + bool ContSubConfigs::isVurEnabled() const { return mEnableVur; } -bool ContSubConfigs::isVurEnabledForClient(const ClientIdType& clientId) { - return mConfigByClient[clientId].enableVur; +bool ContSubConfigs::isVurEnabledForClient(const ClientIdType& clientId) const { + if (mConfigByClient.find(clientId) == mConfigByClient.end()) { + return false; + } + return mConfigByClient.at(clientId).enableVur; +} + +float ContSubConfigs::getResolutionForClient(const ClientIdType& clientId) const { + if (mConfigByClient.find(clientId) == mConfigByClient.end()) { + return 0.0f; + } + return mConfigByClient.at(clientId).resolution; } VhalResult SubscriptionManager::addOnChangeSubscriberLocked( @@ -135,7 +161,8 @@ VhalResult SubscriptionManager::addOnChangeSubscriberLocked( int32_t propId = propIdAreaId.propId; int32_t areaId = propIdAreaId.areaId; if (auto status = mVehicleHardware->subscribe( - newSubscribeOptions(propId, areaId, /*updateRateHz=*/0, /*enableVur*/ false)); + newSubscribeOptions(propId, areaId, /*updateRateHz=*/0, /*resolution*/ 0.0f, + /*enableVur*/ false)); status != StatusCode::OK) { return StatusError(status) << StringPrintf("failed subscribe for prop: %s, areaId: %" PRId32, @@ -146,10 +173,15 @@ VhalResult SubscriptionManager::addOnChangeSubscriberLocked( VhalResult SubscriptionManager::addContinuousSubscriberLocked( const ClientIdType& clientId, const PropIdAreaId& propIdAreaId, float sampleRateHz, - bool enableVur) { + float resolution, bool enableVur) { // Make a copy so that we don't modify 'mContSubConfigsByPropIdArea' on failure cases. ContSubConfigs newConfig = mContSubConfigsByPropIdArea[propIdAreaId]; - newConfig.addClient(clientId, sampleRateHz, enableVur); + SubConfig subConfig = { + .sampleRateHz = sampleRateHz, + .resolution = resolution, + .enableVur = enableVur, + }; + newConfig.addClient(clientId, subConfig); return updateContSubConfigsLocked(propIdAreaId, newConfig); } @@ -183,7 +215,10 @@ VhalResult SubscriptionManager::updateContSubConfigsLocked(const PropIdAre const auto& oldConfig = mContSubConfigsByPropIdArea[propIdAreaId]; float newRateHz = newConfig.getMaxSampleRateHz(); float oldRateHz = oldConfig.getMaxSampleRateHz(); - if (newRateHz == oldRateHz && newConfig.isVurEnabled() == oldConfig.isVurEnabled()) { + float newResolution = newConfig.getMinRequiredResolution(); + float oldResolution = oldConfig.getMinRequiredResolution(); + if (newRateHz == oldRateHz && newResolution == oldResolution && + newConfig.isVurEnabled() == oldConfig.isVurEnabled()) { mContSubConfigsByPropIdArea[propIdAreaId] = newConfig; return {}; } @@ -199,8 +234,8 @@ VhalResult SubscriptionManager::updateContSubConfigsLocked(const PropIdAre } } if (newRateHz != 0) { - if (auto status = mVehicleHardware->subscribe( - newSubscribeOptions(propId, areaId, newRateHz, newConfig.isVurEnabled())); + if (auto status = mVehicleHardware->subscribe(newSubscribeOptions( + propId, areaId, newRateHz, newResolution, newConfig.isVurEnabled())); status != StatusCode::OK) { return StatusError(status) << StringPrintf( "failed subscribe for prop: %s, areaId" @@ -231,6 +266,11 @@ VhalResult SubscriptionManager::subscribe(const std::shared_ptr SubscriptionManager::subscribe(const std::shared_ptr result; if (isContinuousProperty) { result = addContinuousSubscriberLocked(clientId, propIdAreaId, option.sampleRate, + option.resolution, option.enableVariableUpdateRate); } else { result = addOnChangeSubscriberLocked(propIdAreaId); @@ -393,15 +434,19 @@ SubscriptionManager::getSubscribedClients(std::vector&& update for (const auto& [client, callback] : mClientsByPropIdAreaId[propIdAreaId]) { auto& subConfigs = mContSubConfigsByPropIdArea[propIdAreaId]; + // Clients must be sent different VehiclePropValues with different levels of granularity + // as requested by the client using resolution. + VehiclePropValue newValue = value; + sanitizeByResolution(&(newValue.value), subConfigs.getResolutionForClient(client)); // If client wants VUR (and VUR is supported as checked in DefaultVehicleHal), it is // possible that VUR is not enabled in IVehicleHardware because another client does not // enable VUR. We will implement VUR filtering here for the client that enables it. if (subConfigs.isVurEnabledForClient(client) && !subConfigs.isVurEnabled()) { - if (isValueUpdatedLocked(callback, value)) { - clients[callback].push_back(value); + if (isValueUpdatedLocked(callback, newValue)) { + clients[callback].push_back(newValue); } } else { - clients[callback].push_back(value); + clients[callback].push_back(newValue); } } } diff --git a/automotive/vehicle/aidl/impl/vhal/test/SubscriptionManagerTest.cpp b/automotive/vehicle/aidl/impl/vhal/test/SubscriptionManagerTest.cpp index aa5f003dec..f3772022e8 100644 --- a/automotive/vehicle/aidl/impl/vhal/test/SubscriptionManagerTest.cpp +++ b/automotive/vehicle/aidl/impl/vhal/test/SubscriptionManagerTest.cpp @@ -520,6 +520,14 @@ TEST_F(SubscriptionManagerTest, testCheckSampleRateHzInvalidZero) { ASSERT_FALSE(SubscriptionManager::checkSampleRateHz(0)); } +TEST_F(SubscriptionManagerTest, testCheckResolutionValid) { + ASSERT_TRUE(SubscriptionManager::checkResolution(1.0)); +} + +TEST_F(SubscriptionManagerTest, testCheckResolutionInvalid) { + ASSERT_FALSE(SubscriptionManager::checkResolution(2.0)); +} + TEST_F(SubscriptionManagerTest, testSubscribe_enableVur) { std::vector options = {{ .propId = 0, @@ -641,6 +649,102 @@ TEST_F(SubscriptionManagerTest, testSubscribe_enableVur_filterUnchangedEvents) { << "Must filter out property events if VUR is enabled"; } +TEST_F(SubscriptionManagerTest, testSubscribe_enableVur_filterUnchangedEvents_withResolution) { + SpAIBinder binder1 = ndk::SharedRefBase::make()->asBinder(); + std::shared_ptr client1 = IVehicleCallback::fromBinder(binder1); + SpAIBinder binder2 = ndk::SharedRefBase::make()->asBinder(); + std::shared_ptr client2 = IVehicleCallback::fromBinder(binder2); + SubscribeOptions client1Option = { + .propId = 0, + .areaIds = {0}, + .sampleRate = 10.0, + .resolution = 0.01, + .enableVariableUpdateRate = false, + }; + auto result = getManager()->subscribe(client1, {client1Option}, true); + ASSERT_TRUE(result.ok()) << "failed to subscribe: " << result.error().message(); + + ASSERT_THAT(getHardware()->getSubscribeOptions(), UnorderedElementsAre(client1Option)); + + getHardware()->clearSubscribeOptions(); + SubscribeOptions client2Option = { + .propId = 0, + .areaIds = {0, 1}, + .sampleRate = 20.0, + .resolution = 0.1, + .enableVariableUpdateRate = true, + }; + + result = getManager()->subscribe(client2, {client2Option}, true); + ASSERT_TRUE(result.ok()) << "failed to subscribe: " << result.error().message(); + + ASSERT_THAT(getHardware()->getSubscribeOptions(), + UnorderedElementsAre( + SubscribeOptions{ + .propId = 0, + .areaIds = {0}, + .sampleRate = 20.0, + .resolution = 0.01, + // This is enabled for client2, but disabled for client1. + .enableVariableUpdateRate = false, + }, + SubscribeOptions{ + .propId = 0, + .areaIds = {1}, + .sampleRate = 20.0, + .resolution = 0.1, + .enableVariableUpdateRate = true, + })); + + std::vector propertyEvents = {{ + .prop = 0, + .areaId = 0, + .value = {.floatValues = {1.0}}, + .timestamp = 1, + }, + { + .prop = 0, + .areaId = 1, + .value = {.floatValues = {1.0}}, + .timestamp = 1, + }}; + auto clients = + getManager()->getSubscribedClients(std::vector(propertyEvents)); + + ASSERT_THAT(clients[client1], UnorderedElementsAre(propertyEvents[0])); + ASSERT_THAT(clients[client2], UnorderedElementsAre(propertyEvents[0], propertyEvents[1])); + + clients = getManager()->getSubscribedClients({{ + .prop = 0, + .areaId = 0, + .value = {.floatValues = {1.01}}, + .timestamp = 2, + }}); + + ASSERT_FALSE(clients.find(client1) == clients.end()) + << "Must not filter out property events if VUR is not enabled"; + ASSERT_TRUE(clients.find(client2) == clients.end()) + << "Must filter out property events if VUR is enabled and change is too small"; + ASSERT_TRUE(abs(clients[client1][0].value.floatValues[0] - 1.01) < 0.0000001) + << "Expected property value == 1.01, instead got " + << clients[client1][0].value.floatValues[0]; + + clients = getManager()->getSubscribedClients({{ + .prop = 0, + .areaId = 1, + .value = {.floatValues = {1.06}}, + .timestamp = 3, + }}); + + ASSERT_TRUE(clients.find(client1) == clients.end()) + << "Must not get property events for an areaId that the client hasn't subscribed to"; + ASSERT_FALSE(clients.find(client2) == clients.end()) + << "Must get property events significant changes"; + ASSERT_TRUE(abs(clients[client2][0].value.floatValues[0] - 1.1) < 0.0000001) + << "Expected property value == 1.1, instead got " + << clients[client2][0].value.floatValues[0]; +} + TEST_F(SubscriptionManagerTest, testSubscribe_enableVur_mustNotFilterStatusChange) { SpAIBinder binder1 = ndk::SharedRefBase::make()->asBinder(); std::shared_ptr client1 = IVehicleCallback::fromBinder(binder1); -- GitLab From cb59b0522b610dc3bb72ee9d2d0d8169a7860742 Mon Sep 17 00:00:00 2001 From: shrikar Date: Thu, 8 Feb 2024 21:11:53 +0000 Subject: [PATCH 370/418] Added resolution check in DefaultVehicleHal Bug: 276124296 Test: atest DefaultVehicleHalTest Change-Id: If53c6395a8ea9656e6b59a43872a0d9f6871dac5 --- .../vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp | 4 ++++ .../vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/automotive/vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp b/automotive/vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp index cc5edcc49c..a29861f475 100644 --- a/automotive/vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp +++ b/automotive/vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp @@ -722,6 +722,10 @@ VhalResult DefaultVehicleHal::checkSubscribeOptions( return StatusError(StatusCode::INVALID_ARG) << "invalid sample rate: " << sampleRateHz << " HZ"; } + if (!SubscriptionManager::checkResolution(option.resolution)) { + return StatusError(StatusCode::INVALID_ARG) + << "invalid resolution: " << option.resolution; + } } } return {}; diff --git a/automotive/vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp b/automotive/vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp index bb82108c1a..11a8fc7ac1 100644 --- a/automotive/vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp +++ b/automotive/vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp @@ -233,6 +233,14 @@ std::vector getSubscribeInvalidOptionsTestCases .sampleRate = 0.0, }, }, + { + .name = "invalid_resolution", + .option = + { + .propId = GLOBAL_CONTINUOUS_PROP, + .resolution = 2.0, + }, + }, { .name = "static_property", .option = -- GitLab From 93e4eb54870bea287b3f9a37b384b15d0eebd19c Mon Sep 17 00:00:00 2001 From: Sneha Patil Date: Tue, 13 Feb 2024 14:09:48 +0530 Subject: [PATCH 371/418] Volume Control: Add tests to validate Volume Control Effect Added test to apply level, mute and unmute input. Added test to verify decreasing volume levels. Bug: 305866207 Test: atest VtsHalVolumeTargetTest Change-Id: Ie105a3bb77255da61719d042cbd5abc23c405d93 --- audio/aidl/vts/Android.bp | 2 + audio/aidl/vts/EffectHelper.h | 42 +++ audio/aidl/vts/VtsHalVolumeTargetTest.cpp | 307 +++++++++++++++++----- 3 files changed, 279 insertions(+), 72 deletions(-) diff --git a/audio/aidl/vts/Android.bp b/audio/aidl/vts/Android.bp index 5218fdd014..d219fa41c3 100644 --- a/audio/aidl/vts/Android.bp +++ b/audio/aidl/vts/Android.bp @@ -26,6 +26,7 @@ cc_defaults { "android.hardware.common.fmq-V1-ndk", "libaudioaidlcommon", "libaidlcommonsupport", + "libpffft", ], header_libs: [ "libaudioaidl_headers", @@ -36,6 +37,7 @@ cc_defaults { "-Wextra", "-Werror", "-Wthread-safety", + "-Wno-error=unused-parameter", ], test_config_template: "VtsHalAudioTargetTestTemplate.xml", test_suites: [ diff --git a/audio/aidl/vts/EffectHelper.h b/audio/aidl/vts/EffectHelper.h index 0be4e5094f..82a07fdc10 100644 --- a/audio/aidl/vts/EffectHelper.h +++ b/audio/aidl/vts/EffectHelper.h @@ -37,6 +37,7 @@ #include "EffectFactoryHelper.h" #include "TestUtils.h" +#include "pffft.hpp" using namespace android; using aidl::android::hardware::audio::effect::CommandId; @@ -329,4 +330,45 @@ class EffectHelper { ASSERT_NO_FATAL_FAILURE(command(mEffect, CommandId::RESET)); ASSERT_NO_FATAL_FAILURE(expectState(mEffect, State::IDLE)); } + + // Find FFT bin indices for testFrequencies and get bin center frequencies + void roundToFreqCenteredToFftBin(std::vector& testFrequencies, + std::vector& binOffsets, const float kBinWidth) { + for (size_t i = 0; i < testFrequencies.size(); i++) { + binOffsets[i] = std::round(testFrequencies[i] / kBinWidth); + testFrequencies[i] = std::round(binOffsets[i] * kBinWidth); + } + } + + // Generate multitone input between -1 to +1 using testFrequencies + void generateMultiTone(const std::vector& testFrequencies, std::vector& input, + const int samplingFrequency) { + for (size_t i = 0; i < input.size(); i++) { + input[i] = 0; + + for (size_t j = 0; j < testFrequencies.size(); j++) { + input[i] += sin(2 * M_PI * testFrequencies[j] * i / samplingFrequency); + } + input[i] /= testFrequencies.size(); + } + } + + // Use FFT transform to convert the buffer to frequency domain + // Compute its magnitude at binOffsets + std::vector calculateMagnitude(const std::vector& buffer, + const std::vector& binOffsets, const int nPointFFT) { + std::vector fftInput(nPointFFT); + PFFFT_Setup* inputHandle = pffft_new_setup(nPointFFT, PFFFT_REAL); + pffft_transform_ordered(inputHandle, buffer.data(), fftInput.data(), nullptr, + PFFFT_FORWARD); + pffft_destroy_setup(inputHandle); + std::vector bufferMag(binOffsets.size()); + for (size_t i = 0; i < binOffsets.size(); i++) { + size_t k = binOffsets[i]; + bufferMag[i] = sqrt((fftInput[k * 2] * fftInput[k * 2]) + + (fftInput[k * 2 + 1] * fftInput[k * 2 + 1])); + } + + return bufferMag; + } }; diff --git a/audio/aidl/vts/VtsHalVolumeTargetTest.cpp b/audio/aidl/vts/VtsHalVolumeTargetTest.cpp index aa2c05f61b..059d6ab984 100644 --- a/audio/aidl/vts/VtsHalVolumeTargetTest.cpp +++ b/audio/aidl/vts/VtsHalVolumeTargetTest.cpp @@ -21,6 +21,7 @@ using namespace android; +using aidl::android::hardware::audio::common::getChannelCount; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::getEffectTypeUuidVolume; using aidl::android::hardware::audio::effect::IEffect; @@ -29,110 +30,258 @@ using aidl::android::hardware::audio::effect::Parameter; using aidl::android::hardware::audio::effect::Volume; using android::hardware::audio::common::testing::detail::TestExecutionTracer; -/** - * Here we focus on specific parameter checking, general IEffect interfaces testing performed in - * VtsAudioEffectTargetTest. - */ -enum ParamName { PARAM_INSTANCE_NAME, PARAM_LEVEL, PARAM_MUTE }; -using VolumeParamTestParam = - std::tuple, Descriptor>, int, bool>; - -class VolumeParamTest : public ::testing::TestWithParam, public EffectHelper { +class VolumeControlHelper : public EffectHelper { public: - VolumeParamTest() - : mParamLevel(std::get(GetParam())), - mParamMute(std::get(GetParam())) { - std::tie(mFactory, mDescriptor) = std::get(GetParam()); - } - - void SetUp() override { + void SetUpVolumeControl() { ASSERT_NE(nullptr, mFactory); ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); - + initFrameCount(); Parameter::Specific specific = getDefaultParamSpecific(); Parameter::Common common = EffectHelper::createParamCommon( - 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, - kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); - IEffect::OpenEffectReturn ret; - ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &ret, EX_NONE)); + 0 /* session */, 1 /* ioHandle */, kSamplingFrequency /* iSampleRate */, + kSamplingFrequency /* oSampleRate */, mInputFrameCount /* iFrameCount */, + mInputFrameCount /* oFrameCount */); + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &mOpenEffectReturn, EX_NONE)); ASSERT_NE(nullptr, mEffect); } - void TearDown() override { + + void TearDownVolumeControl() { ASSERT_NO_FATAL_FAILURE(close(mEffect)); ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); + mOpenEffectReturn = IEffect::OpenEffectReturn{}; } Parameter::Specific getDefaultParamSpecific() { - Volume vol = Volume::make(-9600); + Volume vol = Volume::make(kMinLevel); Parameter::Specific specific = Parameter::Specific::make(vol); return specific; } - static const long kInputFrameCount = 0x100, kOutputFrameCount = 0x100; + Parameter createVolumeParam(int param, Volume::Tag volTag) { + return Parameter::make( + Parameter::Specific::make( + (volTag == Volume::mute) ? Volume::make(param) + : Volume::make(param))); + } + + void initFrameCount() { + int channelCount = getChannelCount( + AudioChannelLayout::make(kDefaultChannelLayout)); + mInputFrameCount = kBufferSize / channelCount; + mOutputFrameCount = kBufferSize / channelCount; + } + + bool isLevelValid(int level) { + auto vol = Volume::make(level); + return isParameterValid(vol, mDescriptor); + } + + void setAndVerifyParameters(Volume::Tag volTag, int param, binder_exception_t expected) { + auto expectedParam = createVolumeParam(param, volTag); + EXPECT_STATUS(expected, mEffect->setParameter(expectedParam)) << expectedParam.toString(); + + if (expected == EX_NONE) { + Volume::Id volId = Volume::Id::make(volTag); + + auto id = Parameter::Id::make(volId); + // get parameter + Parameter getParam; + // if set success, then get should match + EXPECT_STATUS(expected, mEffect->getParameter(id, &getParam)); + EXPECT_EQ(expectedParam, getParam) << "\nexpectedParam:" << expectedParam.toString() + << "\ngetParam:" << getParam.toString(); + } + } + + static constexpr int kSamplingFrequency = 44100; + static constexpr int kDurationMilliSec = 2000; + static constexpr int kBufferSize = kSamplingFrequency * kDurationMilliSec / 1000; + static constexpr int kMinLevel = -96; + static constexpr int kDefaultChannelLayout = AudioChannelLayout::LAYOUT_STEREO; + long mInputFrameCount, mOutputFrameCount; std::shared_ptr mFactory; std::shared_ptr mEffect; + IEffect::OpenEffectReturn mOpenEffectReturn; Descriptor mDescriptor; +}; +/** + * Here we focus on specific parameter checking, general IEffect interfaces testing performed in + * VtsAudioEffectTargetTest. + */ +enum ParamName { PARAM_INSTANCE_NAME, PARAM_LEVEL, PARAM_MUTE }; +using VolumeParamTestParam = + std::tuple, Descriptor>, int, bool>; + +class VolumeParamTest : public ::testing::TestWithParam, + public VolumeControlHelper { + public: + VolumeParamTest() + : mParamLevel(std::get(GetParam())), + mParamMute(std::get(GetParam())) { + std::tie(mFactory, mDescriptor) = std::get(GetParam()); + } + + void SetUp() override { ASSERT_NO_FATAL_FAILURE(SetUpVolumeControl()); } + void TearDown() override { TearDownVolumeControl(); } + int mParamLevel = 0; bool mParamMute = false; +}; - void SetAndGetParameters() { - for (auto& it : mTags) { - auto& tag = it.first; - auto& vol = it.second; - - // validate parameter - Descriptor desc; - ASSERT_STATUS(EX_NONE, mEffect->getDescriptor(&desc)); - const bool valid = isParameterValid(it.second, desc); - const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT; - - // set parameter - Parameter expectParam; - Parameter::Specific specific; - specific.set(vol); - expectParam.set(specific); - EXPECT_STATUS(expected, mEffect->setParameter(expectParam)) << expectParam.toString(); - - // only get if parameter is in range and set success - if (expected == EX_NONE) { - Parameter getParam; - Parameter::Id id; - Volume::Id volId; - volId.set(tag); - id.set(volId); - EXPECT_STATUS(EX_NONE, mEffect->getParameter(id, &getParam)); - - EXPECT_EQ(expectParam, getParam) << "\nexpect:" << expectParam.toString() - << "\ngetParam:" << getParam.toString(); - } +TEST_P(VolumeParamTest, SetAndGetParams) { + ASSERT_NO_FATAL_FAILURE( + setAndVerifyParameters(Volume::levelDb, mParamLevel, + isLevelValid(mParamLevel) ? EX_NONE : EX_ILLEGAL_ARGUMENT)); + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::mute, mParamMute, EX_NONE)); +} + +using VolumeDataTestParam = std::pair, Descriptor>; + +class VolumeDataTest : public ::testing::TestWithParam, + public VolumeControlHelper { + public: + VolumeDataTest() { + std::tie(mFactory, mDescriptor) = GetParam(); + mInput.resize(kBufferSize); + mInputMag.resize(mTestFrequencies.size()); + mBinOffsets.resize(mTestFrequencies.size()); + roundToFreqCenteredToFftBin(mTestFrequencies, mBinOffsets, kBinWidth); + generateMultiTone(mTestFrequencies, mInput, kSamplingFrequency); + mInputMag = calculateMagnitude(mInput, mBinOffsets, kNPointFFT); + } + + std::vector calculatePercentageDiff(const std::vector& outputMag) { + std::vector percentages(mTestFrequencies.size()); + + for (size_t i = 0; i < mInputMag.size(); i++) { + float diff = mInputMag[i] - outputMag[i]; + percentages[i] = std::round(diff / mInputMag[i] * 100); } + return percentages; } - void addLevelParam(int level) { - Volume vol; - vol.set(level); - mTags.push_back({Volume::levelDb, vol}); + // Convert Decibel value to Percentage + int percentageDb(float level) { return std::round((1 - (pow(10, level / 20))) * 100); } + + void SetUp() override { ASSERT_NO_FATAL_FAILURE(SetUpVolumeControl()); } + void TearDown() override { TearDownVolumeControl(); } + + static constexpr int kMaxAudioSample = 1; + static constexpr int kTransitionDuration = 300; + static constexpr int kNPointFFT = 32768; + static constexpr float kBinWidth = (float)kSamplingFrequency / kNPointFFT; + static constexpr size_t offset = kSamplingFrequency * kTransitionDuration / 1000; + static constexpr float kBaseLevel = 0; + std::vector mTestFrequencies = {100, 1000}; + std::vector mInput; + std::vector mInputMag; + std::vector mBinOffsets; +}; + +TEST_P(VolumeDataTest, ApplyLevelMuteUnmute) { + std::vector output(kBufferSize); + std::vector diffs(mTestFrequencies.size()); + std::vector outputMag(mTestFrequencies.size()); + + if (!isLevelValid(kBaseLevel)) { + GTEST_SKIP() << "Volume Level not supported, skipping the test\n"; } - void addMuteParam(bool mute) { - Volume vol; - vol.set(mute); - mTags.push_back({Volume::mute, vol}); + // Apply Volume Level + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::levelDb, kBaseLevel, EX_NONE)); + ASSERT_NO_FATAL_FAILURE(processAndWriteToOutput(mInput, output, mEffect, &mOpenEffectReturn)); + + outputMag = calculateMagnitude(output, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_EQ(diffs[i], percentageDb(kBaseLevel)); } - private: - std::vector> mTags; - void CleanUp() { mTags.clear(); } -}; + // Apply Mute + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::mute, true /*mute*/, EX_NONE)); + ASSERT_NO_FATAL_FAILURE(processAndWriteToOutput(mInput, output, mEffect, &mOpenEffectReturn)); + + std::vector subOutputMute(output.begin() + offset, output.end()); + outputMag = calculateMagnitude(subOutputMute, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_EQ(diffs[i], percentageDb(kMinLevel /*Mute*/)); + } + + // Verifying Fade out + outputMag = calculateMagnitude(output, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_LT(diffs[i], percentageDb(kMinLevel /*Mute*/)); + } -TEST_P(VolumeParamTest, SetAndGetLevel) { - EXPECT_NO_FATAL_FAILURE(addLevelParam(mParamLevel)); - SetAndGetParameters(); + // Apply Unmute + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::mute, false /*unmute*/, EX_NONE)); + ASSERT_NO_FATAL_FAILURE(processAndWriteToOutput(mInput, output, mEffect, &mOpenEffectReturn)); + + std::vector subOutputUnmute(output.begin() + offset, output.end()); + + outputMag = calculateMagnitude(subOutputUnmute, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_EQ(diffs[i], percentageDb(kBaseLevel)); + } + + // Verifying Fade in + outputMag = calculateMagnitude(output, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_GT(diffs[i], percentageDb(kBaseLevel)); + } } -TEST_P(VolumeParamTest, SetAndGetMute) { - EXPECT_NO_FATAL_FAILURE(addMuteParam(mParamMute)); - SetAndGetParameters(); +TEST_P(VolumeDataTest, DecreasingLevels) { + std::vector decreasingLevels = {-24, -48, -96}; + std::vector baseOutput(kBufferSize); + std::vector baseDiffs(mTestFrequencies.size()); + std::vector outputMag(mTestFrequencies.size()); + + if (!isLevelValid(kBaseLevel)) { + GTEST_SKIP() << "Volume Level not supported, skipping the test\n"; + } + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::levelDb, kBaseLevel, EX_NONE)); + ASSERT_NO_FATAL_FAILURE( + processAndWriteToOutput(mInput, baseOutput, mEffect, &mOpenEffectReturn)); + + outputMag = calculateMagnitude(baseOutput, mBinOffsets, kNPointFFT); + baseDiffs = calculatePercentageDiff(outputMag); + + for (int level : decreasingLevels) { + std::vector output(kBufferSize); + std::vector diffs(mTestFrequencies.size()); + + // Skipping the further steps for unnsupported level values + if (!isLevelValid(level)) { + continue; + } + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::levelDb, level, EX_NONE)); + ASSERT_NO_FATAL_FAILURE( + processAndWriteToOutput(mInput, output, mEffect, &mOpenEffectReturn)); + + outputMag = calculateMagnitude(output, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + // Decrease in volume level results in greater magnitude difference + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_GT(diffs[i], baseDiffs[i]); + } + + baseDiffs = diffs; + } } std::vector, Descriptor>> kDescPair; @@ -157,6 +306,20 @@ INSTANTIATE_TEST_SUITE_P( GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VolumeParamTest); +INSTANTIATE_TEST_SUITE_P(VolumeTest, VolumeDataTest, + testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors( + IFactory::descriptor, getEffectTypeUuidVolume())), + [](const testing::TestParamInfo& info) { + auto descriptor = info.param; + std::string name = getPrefix(descriptor.second); + std::replace_if( + name.begin(), name.end(), + [](const char c) { return !std::isalnum(c); }, '_'); + return name; + }); + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VolumeDataTest); + int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); ::testing::UnitTest::GetInstance()->listeners().Append(new TestExecutionTracer()); -- GitLab From 4fe58519f6693bf09392d5e8bdf4003a6ec19deb Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Wed, 21 Feb 2024 19:00:25 +0000 Subject: [PATCH 372/418] Add VTS test for add/remove QoS policy with traffic characteristics. Bug: 319313500 Test: atest VtsHalWifiSupplicantStaIfaceTargetTest Change-Id: Ie3e270c210a0d29b98428418f2bbcade594784ba --- .../supplicant_sta_iface_aidl_test.cpp | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp index a2338d8bf3..58f9be8ded 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp @@ -44,6 +44,9 @@ using aidl::android::hardware::wifi::supplicant::ISupplicantStaIface; using aidl::android::hardware::wifi::supplicant::ISupplicantStaNetwork; using aidl::android::hardware::wifi::supplicant::KeyMgmtMask; using aidl::android::hardware::wifi::supplicant::MscsParams; +using aidl::android::hardware::wifi::supplicant::QosCharacteristics; +using aidl::android::hardware::wifi::supplicant::QosPolicyScsData; +using aidl::android::hardware::wifi::supplicant::QosPolicyScsRequestStatus; using aidl::android::hardware::wifi::supplicant::WpaDriverCapabilitiesMask; using aidl::android::hardware::wifi::supplicant::WpsConfigMethods; using android::ProcessState; @@ -807,6 +810,39 @@ TEST_P(SupplicantStaIfaceAidlTest, ConfigureAndDisableMscs) { EXPECT_TRUE(sta_iface_->disableMscs().isOk()); } +/* + * Add and remove QoS policy with traffic characteristics + */ +TEST_P(SupplicantStaIfaceAidlTest, AddAndRemoveQosWithTrafficChars) { + if (interface_version_ < 3) { + GTEST_SKIP() << "QosCharacteristics is available as of Supplicant V3"; + } + + QosCharacteristics qosChars; + qosChars.minServiceIntervalUs = 2000; + qosChars.maxServiceIntervalUs = 5000; + qosChars.minDataRateKbps = 500; + qosChars.delayBoundUs = 200; + qosChars.optionalFieldMask = 0; // no optional fields + + uint8_t policyId = 5; + QosPolicyScsData qosPolicy; + qosPolicy.policyId = policyId; + qosPolicy.direction = QosPolicyScsData::LinkDirection::UPLINK; + qosPolicy.QosCharacteristics = qosChars; + + std::vector policyIdList{policyId}; + std::vector policyList{qosPolicy}; + std::vector responseList; + + // Check that we receive some reply for this request. + // Policy may not be accepted (ex. policy with this id already exists). + EXPECT_TRUE(sta_iface_->addQosPolicyRequestForScs(policyList, &responseList).isOk()); + EXPECT_EQ(1, responseList.size()); + EXPECT_TRUE(sta_iface_->removeQosPolicyForScs(policyIdList, &responseList).isOk()); + EXPECT_EQ(1, responseList.size()); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(SupplicantStaIfaceAidlTest); INSTANTIATE_TEST_SUITE_P(Supplicant, SupplicantStaIfaceAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames( -- GitLab From 2ccf70f5693ffad883b24f1f5abc1b280c7494cb Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Wed, 14 Feb 2024 22:52:58 +0000 Subject: [PATCH 373/418] Temporarily print the size of all variable-length fields in StaLinkLayerStats. Will be used to verify whether abnormally large instances of this class can cause getLinkLayerStats to fail with an IllegalArgumentException. Bug: 324519882 Test: Manual test: 1. Reboot device 2. Connect to wifi 3. Verify logged link layer stats Change-Id: I9378c7e4c2befd98743eb0752fe00cd322110c0f --- wifi/aidl/default/aidl_struct_util.cpp | 35 ++++++++++++++++++++++++++ wifi/aidl/default/aidl_struct_util.h | 1 + wifi/aidl/default/wifi_sta_iface.cpp | 1 + 3 files changed, 37 insertions(+) diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp index 0f0c77e171..d9e023c80e 100644 --- a/wifi/aidl/default/aidl_struct_util.cpp +++ b/wifi/aidl/default/aidl_struct_util.cpp @@ -1085,6 +1085,41 @@ bool convertLegacyLinkLayerStatsToAidl(const legacy_hal::LinkLayerStats& legacy_ return true; } +// TODO (b/324519882): Remove logs after validating the structure size. +void logAidlLinkLayerStatsSize(StaLinkLayerStats& aidl_stats) { + unsigned long expectedMaxRadios = 5; + unsigned long expectedMaxLinks = 5; + unsigned long expectedMaxChannelStats = 512; + unsigned long expectedMaxPeers = 3; + unsigned long expectedMaxRateStats = 1024; + + unsigned long maxChannelStats = 0, maxPeers = 0, maxRateStats = 0; + for (size_t i = 0; i < aidl_stats.radios.size(); i++) { + maxChannelStats = + std::max(maxChannelStats, (unsigned long)aidl_stats.radios[i].channelStats.size()); + } + for (size_t i = 0; i < aidl_stats.iface.links.size(); i++) { + maxPeers = std::max(maxPeers, (unsigned long)aidl_stats.iface.links[i].peers.size()); + for (size_t j = 0; j < aidl_stats.iface.links[i].peers.size(); j++) { + maxRateStats = + std::max(maxRateStats, + (unsigned long)aidl_stats.iface.links[i].peers[j].rateStats.size()); + } + } + + if (aidl_stats.radios.size() > expectedMaxRadios || + aidl_stats.iface.links.size() > expectedMaxLinks || + maxChannelStats > expectedMaxChannelStats || maxPeers > expectedMaxPeers || + maxRateStats > expectedMaxRateStats) { + LOG(INFO) << "StaLinkLayerStats exceeds expected vector size"; + LOG(INFO) << " numRadios: " << aidl_stats.radios.size(); + LOG(INFO) << " numLinks: " << aidl_stats.iface.links.size(); + LOG(INFO) << " maxChannelStats: " << maxChannelStats; + LOG(INFO) << " maxPeers: " << maxPeers; + LOG(INFO) << " maxRateStats: " << maxRateStats; + } +} + bool convertLegacyPeerInfoStatsToAidl(const legacy_hal::WifiPeerInfo& legacy_peer_info_stats, StaPeerInfo* aidl_peer_info_stats) { if (!aidl_peer_info_stats) { diff --git a/wifi/aidl/default/aidl_struct_util.h b/wifi/aidl/default/aidl_struct_util.h index 708936354a..2574f9546b 100644 --- a/wifi/aidl/default/aidl_struct_util.h +++ b/wifi/aidl/default/aidl_struct_util.h @@ -94,6 +94,7 @@ bool convertLegacyLinkLayerMlStatsToAidl(const legacy_hal::LinkLayerMlStats& leg StaLinkLayerStats* aidl_stats); bool convertLegacyLinkLayerStatsToAidl(const legacy_hal::LinkLayerStats& legacy_stats, StaLinkLayerStats* aidl_stats); +void logAidlLinkLayerStatsSize(StaLinkLayerStats& aidl_stats); bool convertLegacyRoamingCapabilitiesToAidl( const legacy_hal::wifi_roaming_capabilities& legacy_caps, StaRoamingCapabilities* aidl_caps); diff --git a/wifi/aidl/default/wifi_sta_iface.cpp b/wifi/aidl/default/wifi_sta_iface.cpp index f0509dc19e..aee183d429 100644 --- a/wifi/aidl/default/wifi_sta_iface.cpp +++ b/wifi/aidl/default/wifi_sta_iface.cpp @@ -435,6 +435,7 @@ std::pair WifiStaIface::getLinkLayerStats } else { return {StaLinkLayerStats{}, createWifiStatus(WifiStatusCode::ERROR_UNKNOWN)}; } + aidl_struct_util::logAidlLinkLayerStatsSize(aidl_stats); return {aidl_stats, ndk::ScopedAStatus::ok()}; } -- GitLab From 9f982fb81585154fc8e0e199bcd50cb394bea17a Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 15 Feb 2024 16:16:42 -0800 Subject: [PATCH 374/418] Support Enter Garage Mode in remote access HAL. Handles task type in reference remote access HAL and passes to remote access server through GRPC. Update host-side TestWakeupClientService to handle vehicleInUse and ApPowerBootupReason VHAL properties. Update reference VHAL to get the property values rom a remote grpc server. Test: atest --host TestWakeupClientServiceImplUnitTest Manual run TestWakeupClientServerHost verifies that reference VHAL can get power properties. Bug: 316233421 Change-Id: I188aa9eed2dedb3b81b4eb6f5685ca33b646b2f5 --- .../hal/default/proto/wakeup_client.proto | 28 ++++ .../hal/default/src/RemoteAccessService.cpp | 5 +- .../include/TestWakeupClientServiceImpl.h | 122 ++++++++++++++--- .../impl/src/TestWakeupClientServiceImpl.cpp | 127 +++++++++++------- .../test_grpc_server/impl/src/main.cpp | 58 ++++---- .../TestWakeupClientServiceImplUnitTest.cpp | 20 ++- .../JsonConfigLoader/src/JsonConfigLoader.cpp | 3 + .../config/DefaultProperties.json | 8 ++ .../aidl/impl/fake_impl/hardware/Android.bp | 12 +- .../hardware/include/FakeVehicleHardware.h | 7 + .../hardware/src/FakeVehicleHardware.cpp | 73 ++++++++++ .../impl/fake_impl/hardware/test/Android.bp | 2 + .../hardware/test/FakeVehicleHardwareTest.cpp | 6 + .../utils/common/include/VehicleHalTypes.h | 1 + 14 files changed, 363 insertions(+), 109 deletions(-) diff --git a/automotive/remoteaccess/hal/default/proto/wakeup_client.proto b/automotive/remoteaccess/hal/default/proto/wakeup_client.proto index 14ba0a5e74..8ff6059009 100644 --- a/automotive/remoteaccess/hal/default/proto/wakeup_client.proto +++ b/automotive/remoteaccess/hal/default/proto/wakeup_client.proto @@ -124,6 +124,11 @@ message ScheduleTaskResponse { ErrorCode errorCode = 1; } +enum ScheduleTaskType { + CUSTOM = 0; + ENTER_GARAGE_MODE = 1; +} + message GrpcScheduleInfo { string clientId = 1; string scheduleId = 2; @@ -131,6 +136,7 @@ message GrpcScheduleInfo { int32 count = 4; int64 startTimeInEpochSeconds = 5; int64 periodicInSeconds = 6; + ScheduleTaskType taskType = 7; } message UnscheduleTaskRequest { @@ -162,3 +168,25 @@ message GetAllPendingScheduledTasksRequest { message GetAllPendingScheduledTasksResponse { repeated GrpcScheduleInfo allScheduledTasks = 1; } + +/** + * Service provided by a power controller unit. + */ +service PowerController { + rpc IsVehicleInUse(IsVehicleInUseRequest) returns (IsVehicleInUseResponse) {} + + rpc GetApPowerBootupReason(GetApPowerBootupReasonRequest) + returns (GetApPowerBootupReasonResponse) {} +} + +message IsVehicleInUseRequest {} + +message IsVehicleInUseResponse { + bool isVehicleInUse = 1; +} + +message GetApPowerBootupReasonRequest {} + +message GetApPowerBootupReasonResponse { + int32 bootupReason = 1; +} diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp index dbd5bed7df..91689b17da 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp @@ -346,8 +346,8 @@ ndk::ScopedAStatus RemoteAccessService::getSupportedTaskTypesForScheduling( return ScopedAStatus::ok(); } - // TODO(b/316233421): support ENTER_GARAGE_MODE type. out->push_back(TaskType::CUSTOM); + out->push_back(TaskType::ENTER_GARAGE_MODE); return ScopedAStatus::ok(); } @@ -380,6 +380,8 @@ ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo } request.mutable_scheduleinfo()->set_clientid(scheduleInfo.clientId); + request.mutable_scheduleinfo()->set_tasktype( + static_cast(scheduleInfo.taskType)); request.mutable_scheduleinfo()->set_scheduleid(scheduleInfo.scheduleId); request.mutable_scheduleinfo()->set_data(scheduleInfo.taskData.data(), scheduleInfo.taskData.size()); @@ -485,6 +487,7 @@ ScopedAStatus RemoteAccessService::getAllPendingScheduledTasks(const std::string const GrpcScheduleInfo& rpcScheduleInfo = response.allscheduledtasks(i); ScheduleInfo scheduleInfo = { .clientId = rpcScheduleInfo.clientid(), + .taskType = static_cast(rpcScheduleInfo.tasktype()), .scheduleId = rpcScheduleInfo.scheduleid(), .taskData = stringToBytes(rpcScheduleInfo.data()), .count = rpcScheduleInfo.count(), diff --git a/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h b/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h index 41cc5d0035..74245717d3 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h +++ b/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h @@ -30,6 +30,11 @@ namespace hardware { namespace automotive { namespace remoteaccess { +// The following are the same as VehicleApPowerBootupReason defined in VHAL. +constexpr int32_t BOOTUP_REASON_USER_POWER_ON = 0; +constexpr int32_t BOOTUP_REASON_SYSTEM_REMOTE_ACCESS = 2; +constexpr int32_t BOOTUP_REASON_SYSTEM_ENTER_GARAGE_MODE = 3; + // A class to generate fake task for testing. Not required for real implementation. In real // implementation, the task should come from remote task server. This class is thread-safe. class FakeTaskGenerator final { @@ -98,50 +103,57 @@ class TaskQueue final { }; // forward-declaration -class TestWakeupClientServiceImpl; +class ServiceImpl; class TaskScheduleMsgHandler final : public android::MessageHandler { public: - TaskScheduleMsgHandler(TestWakeupClientServiceImpl* mImpl); + TaskScheduleMsgHandler(ServiceImpl* impl); void handleMessage(const android::Message& message) override; private: - TestWakeupClientServiceImpl* mImpl; + ServiceImpl* mImpl; }; -class TestWakeupClientServiceImpl : public WakeupClient::Service { +class ServiceImpl { public: - TestWakeupClientServiceImpl(); + ServiceImpl(); - ~TestWakeupClientServiceImpl(); + virtual ~ServiceImpl() = 0; // Stop the handling for all income requests. Prepare for shutdown. void stopServer(); grpc::Status GetRemoteTasks(grpc::ServerContext* context, const GetRemoteTasksRequest* request, - grpc::ServerWriter* writer) override; + grpc::ServerWriter* writer); grpc::Status NotifyWakeupRequired(grpc::ServerContext* context, const NotifyWakeupRequiredRequest* request, - NotifyWakeupRequiredResponse* response) override; + NotifyWakeupRequiredResponse* response); grpc::Status ScheduleTask(grpc::ServerContext* context, const ScheduleTaskRequest* request, - ScheduleTaskResponse* response) override; + ScheduleTaskResponse* response); grpc::Status UnscheduleTask(grpc::ServerContext* context, const UnscheduleTaskRequest* request, - UnscheduleTaskResponse* response) override; + UnscheduleTaskResponse* response); grpc::Status UnscheduleAllTasks(grpc::ServerContext* context, const UnscheduleAllTasksRequest* request, - UnscheduleAllTasksResponse* response) override; + UnscheduleAllTasksResponse* response); grpc::Status IsTaskScheduled(grpc::ServerContext* context, const IsTaskScheduledRequest* request, - IsTaskScheduledResponse* response) override; + IsTaskScheduledResponse* response); - grpc::Status GetAllPendingScheduledTasks( - grpc::ServerContext* context, const GetAllPendingScheduledTasksRequest* request, - GetAllPendingScheduledTasksResponse* response) override; + grpc::Status GetAllPendingScheduledTasks(grpc::ServerContext* context, + const GetAllPendingScheduledTasksRequest* request, + GetAllPendingScheduledTasksResponse* response); + + grpc::Status IsVehicleInUse(grpc::ServerContext* context, const IsVehicleInUseRequest* request, + IsVehicleInUseResponse* response); + + grpc::Status GetApPowerBootupReason(grpc::ServerContext* context, + const GetApPowerBootupReasonRequest* request, + GetApPowerBootupReasonResponse* response); /** * Starts generating fake tasks for the specific client repeatedly. @@ -177,7 +189,7 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { * This must be implemented by child class and contains device specific logic. E.g. this might * be sending QEMU commands for the emulator device. */ - virtual void wakeupApplicationProcessor() = 0; + virtual void wakeupApplicationProcessor(int32_t bootupReason) = 0; /** * Cleans up a scheduled task info. @@ -185,6 +197,16 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { void cleanupScheduledTaskLocked(const std::string& clientId, const std::string& scheduleId) REQUIRES(mLock); + /** + * Sets whether vehicle is in use. + */ + void setVehicleInUse(bool vehicleInUse); + + /** + * Sets the bootup reason. + */ + void setBootupReason(int32_t bootupReason); + private: friend class TaskScheduleMsgHandler; @@ -218,6 +240,8 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { std::atomic mServerStopped = false; std::unordered_map> mInfoByScheduleIdByClientId GUARDED_BY(mLock); + std::atomic mVehicleInUse = false; + std::atomic mBootupReason = BOOTUP_REASON_USER_POWER_ON; // Thread-safe. For test impl only. FakeTaskGenerator mFakeTaskGenerator; @@ -232,6 +256,72 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { void loop(); }; +class WakeupClientServiceImpl : public WakeupClient::Service { + public: + WakeupClientServiceImpl(ServiceImpl* impl) { mImpl = impl; } + + grpc::Status GetRemoteTasks(grpc::ServerContext* context, const GetRemoteTasksRequest* request, + grpc::ServerWriter* writer) override { + return mImpl->GetRemoteTasks(context, request, writer); + } + + grpc::Status NotifyWakeupRequired(grpc::ServerContext* context, + const NotifyWakeupRequiredRequest* request, + NotifyWakeupRequiredResponse* response) override { + return mImpl->NotifyWakeupRequired(context, request, response); + } + + grpc::Status ScheduleTask(grpc::ServerContext* context, const ScheduleTaskRequest* request, + ScheduleTaskResponse* response) override { + return mImpl->ScheduleTask(context, request, response); + } + + grpc::Status UnscheduleTask(grpc::ServerContext* context, const UnscheduleTaskRequest* request, + UnscheduleTaskResponse* response) override { + return mImpl->UnscheduleTask(context, request, response); + } + + grpc::Status UnscheduleAllTasks(grpc::ServerContext* context, + const UnscheduleAllTasksRequest* request, + UnscheduleAllTasksResponse* response) override { + return mImpl->UnscheduleAllTasks(context, request, response); + } + + grpc::Status IsTaskScheduled(grpc::ServerContext* context, + const IsTaskScheduledRequest* request, + IsTaskScheduledResponse* response) override { + return mImpl->IsTaskScheduled(context, request, response); + } + + grpc::Status GetAllPendingScheduledTasks( + grpc::ServerContext* context, const GetAllPendingScheduledTasksRequest* request, + GetAllPendingScheduledTasksResponse* response) override { + return mImpl->GetAllPendingScheduledTasks(context, request, response); + } + + private: + ServiceImpl* mImpl; +}; + +class PowerControllerServiceImpl : public PowerController::Service { + public: + PowerControllerServiceImpl(ServiceImpl* impl) { mImpl = impl; } + + grpc::Status IsVehicleInUse(grpc::ServerContext* context, const IsVehicleInUseRequest* request, + IsVehicleInUseResponse* response) override { + return mImpl->IsVehicleInUse(context, request, response); + } + + grpc::Status GetApPowerBootupReason(grpc::ServerContext* context, + const GetApPowerBootupReasonRequest* request, + GetApPowerBootupReasonResponse* response) override { + return mImpl->GetApPowerBootupReason(context, request, response); + } + + private: + ServiceImpl* mImpl; +}; + } // namespace remoteaccess } // namespace automotive } // namespace hardware diff --git a/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp b/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp index eed3495575..5d33fcb632 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp +++ b/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp @@ -38,7 +38,7 @@ using ::grpc::ServerWriter; using ::grpc::Status; constexpr int64_t kTaskIntervalInMs = 5'000; -constexpr int64_t kTaskTimeoutInMs = 20'000; +constexpr int64_t kTaskTimeoutInMs = 60'000; int64_t msToNs(int64_t ms) { return std::chrono::duration_cast(std::chrono::milliseconds(ms)) @@ -140,21 +140,21 @@ void TaskQueue::handleTaskTimeout() { } } -TestWakeupClientServiceImpl::TestWakeupClientServiceImpl() { +ServiceImpl::ServiceImpl() { mTaskScheduleMsgHandler = android::sp::make(this); mLooper = android::sp::make(/*opts=*/0); mLooperThread = std::thread([this] { loop(); }); mTaskQueue = std::make_unique(mLooper); } -TestWakeupClientServiceImpl::~TestWakeupClientServiceImpl() { +ServiceImpl::~ServiceImpl() { if (mServerStopped) { return; } stopServer(); } -void TestWakeupClientServiceImpl::stopServer() { +void ServiceImpl::stopServer() { mTaskQueue->stopWait(); stopGeneratingFakeTask(); // Set the flag so that the loop thread will exit. @@ -165,7 +165,7 @@ void TestWakeupClientServiceImpl::stopServer() { } } -void TestWakeupClientServiceImpl::loop() { +void ServiceImpl::loop() { Looper::setForThread(mLooper); while (true) { @@ -176,23 +176,22 @@ void TestWakeupClientServiceImpl::loop() { } } -void TestWakeupClientServiceImpl::injectTask(const std::string& taskData, - const std::string& clientId) { +void ServiceImpl::injectTask(const std::string& taskData, const std::string& clientId) { GetRemoteTasksResponse response; response.set_data(taskData); response.set_clientid(clientId); injectTaskResponse(response); } -void TestWakeupClientServiceImpl::injectTaskResponse(const GetRemoteTasksResponse& response) { +void ServiceImpl::injectTaskResponse(const GetRemoteTasksResponse& response) { printf("Receive a new task\n"); mTaskQueue->add(response); if (mWakeupRequired) { - wakeupApplicationProcessor(); + wakeupApplicationProcessor(BOOTUP_REASON_SYSTEM_REMOTE_ACCESS); } } -void TestWakeupClientServiceImpl::startGeneratingFakeTask(const std::string& clientId) { +void ServiceImpl::startGeneratingFakeTask(const std::string& clientId) { std::lock_guard lockGuard(mLock); if (mGeneratingFakeTask) { printf("Fake task is already being generated\n"); @@ -203,7 +202,7 @@ void TestWakeupClientServiceImpl::startGeneratingFakeTask(const std::string& cli printf("Started generating fake tasks\n"); } -void TestWakeupClientServiceImpl::stopGeneratingFakeTask() { +void ServiceImpl::stopGeneratingFakeTask() { { std::lock_guard lockGuard(mLock); if (!mGeneratingFakeTask) { @@ -219,7 +218,7 @@ void TestWakeupClientServiceImpl::stopGeneratingFakeTask() { printf("Stopped generating fake tasks\n"); } -void TestWakeupClientServiceImpl::fakeTaskGenerateLoop(const std::string& clientId) { +void ServiceImpl::fakeTaskGenerateLoop(const std::string& clientId) { // In actual implementation, this should communicate with the remote server and receives tasks // from it. Here we simulate receiving one remote task every {kTaskIntervalInMs}ms. while (true) { @@ -237,9 +236,8 @@ void TestWakeupClientServiceImpl::fakeTaskGenerateLoop(const std::string& client } } -Status TestWakeupClientServiceImpl::GetRemoteTasks(ServerContext* context, - const GetRemoteTasksRequest* request, - ServerWriter* writer) { +Status ServiceImpl::GetRemoteTasks(ServerContext* context, const GetRemoteTasksRequest* request, + ServerWriter* writer) { printf("GetRemoteTasks called\n"); mRemoteTaskConnectionAlive = true; while (true) { @@ -277,15 +275,15 @@ Status TestWakeupClientServiceImpl::GetRemoteTasks(ServerContext* context, return Status::CANCELLED; } -Status TestWakeupClientServiceImpl::NotifyWakeupRequired(ServerContext* context, - const NotifyWakeupRequiredRequest* request, - NotifyWakeupRequiredResponse* response) { +Status ServiceImpl::NotifyWakeupRequired(ServerContext* context, + const NotifyWakeupRequiredRequest* request, + NotifyWakeupRequiredResponse* response) { printf("NotifyWakeupRequired called\n"); if (request->iswakeuprequired() && !mWakeupRequired && !mTaskQueue->isEmpty()) { // If wakeup is now required and previously not required, this means we have finished // shutting down the device. If there are still pending tasks, try waking up AP again // to finish executing those tasks. - wakeupApplicationProcessor(); + wakeupApplicationProcessor(BOOTUP_REASON_SYSTEM_REMOTE_ACCESS); } mWakeupRequired = request->iswakeuprequired(); if (mWakeupRequired) { @@ -296,23 +294,22 @@ Status TestWakeupClientServiceImpl::NotifyWakeupRequired(ServerContext* context, return Status::OK; } -void TestWakeupClientServiceImpl::cleanupScheduledTaskLocked(const std::string& clientId, - const std::string& scheduleId) { +void ServiceImpl::cleanupScheduledTaskLocked(const std::string& clientId, + const std::string& scheduleId) { mInfoByScheduleIdByClientId[clientId].erase(scheduleId); if (mInfoByScheduleIdByClientId[clientId].size() == 0) { mInfoByScheduleIdByClientId.erase(clientId); } } -TaskScheduleMsgHandler::TaskScheduleMsgHandler(TestWakeupClientServiceImpl* impl) : mImpl(impl) {} +TaskScheduleMsgHandler::TaskScheduleMsgHandler(ServiceImpl* impl) : mImpl(impl) {} void TaskScheduleMsgHandler::handleMessage(const android::Message& message) { mImpl->handleAddTask(message.what); } -Status TestWakeupClientServiceImpl::ScheduleTask(ServerContext* context, - const ScheduleTaskRequest* request, - ScheduleTaskResponse* response) { +Status ServiceImpl::ScheduleTask(ServerContext* context, const ScheduleTaskRequest* request, + ScheduleTaskResponse* response) { std::lock_guard lockGuard(mLock); const GrpcScheduleInfo& grpcScheduleInfo = request->scheduleinfo(); @@ -359,8 +356,7 @@ Status TestWakeupClientServiceImpl::ScheduleTask(ServerContext* context, return Status::OK; } -bool TestWakeupClientServiceImpl::getScheduleInfoLocked(int scheduleMsgId, - ScheduleInfo** outScheduleInfoPtr) { +bool ServiceImpl::getScheduleInfoLocked(int scheduleMsgId, ScheduleInfo** outScheduleInfoPtr) { for (auto& [_, infoByScheduleId] : mInfoByScheduleIdByClientId) { for (auto& [_, scheduleInfo] : infoByScheduleId) { if (scheduleInfo.scheduleMsgId == scheduleMsgId) { @@ -372,7 +368,7 @@ bool TestWakeupClientServiceImpl::getScheduleInfoLocked(int scheduleMsgId, return false; } -void TestWakeupClientServiceImpl::handleAddTask(int scheduleMsgId) { +void ServiceImpl::handleAddTask(int scheduleMsgId) { std::lock_guard lockGuard(mLock); ScheduleInfo* scheduleInfoPtr; @@ -385,15 +381,27 @@ void TestWakeupClientServiceImpl::handleAddTask(int scheduleMsgId) { const GrpcScheduleInfo& grpcScheduleInfo = *scheduleInfoPtr->grpcScheduleInfo; const std::string scheduleId = grpcScheduleInfo.scheduleid(); const std::string clientId = grpcScheduleInfo.clientid(); - - GetRemoteTasksResponse injectResponse; - injectResponse.set_data(grpcScheduleInfo.data().data(), grpcScheduleInfo.data().size()); - injectResponse.set_clientid(clientId); - injectTaskResponse(injectResponse); scheduleInfoPtr->currentCount++; - - printf("Sending scheduled tasks for scheduleId: %s, clientId: %s, taskCount: %d\n", - scheduleId.c_str(), clientId.c_str(), scheduleInfoPtr->currentCount); + ScheduleTaskType taskType = grpcScheduleInfo.tasktype(); + printf("Sending scheduled tasks for scheduleId: %s, clientId: %s, taskCount: %d, " + "taskType: %d\n", + scheduleId.c_str(), clientId.c_str(), scheduleInfoPtr->currentCount, + static_cast(taskType)); + + if (taskType == ScheduleTaskType::ENTER_GARAGE_MODE) { + if (mWakeupRequired) { + wakeupApplicationProcessor(BOOTUP_REASON_SYSTEM_ENTER_GARAGE_MODE); + } else { + printf("Ignore ENTER_GARAGE_MODE task type because the head unit is already running"); + } + } else if (grpcScheduleInfo.tasktype() == ScheduleTaskType::CUSTOM) { + GetRemoteTasksResponse injectResponse; + injectResponse.set_data(grpcScheduleInfo.data().data(), grpcScheduleInfo.data().size()); + injectResponse.set_clientid(clientId); + injectTaskResponse(injectResponse); + } else { + printf("Unknown task type: %d\n", static_cast(taskType)); + } if (scheduleInfoPtr->totalCount != 0 && scheduleInfoPtr->currentCount == scheduleInfoPtr->totalCount) { @@ -407,9 +415,8 @@ void TestWakeupClientServiceImpl::handleAddTask(int scheduleMsgId) { android::Message(scheduleMsgId)); } -Status TestWakeupClientServiceImpl::UnscheduleTask(ServerContext* context, - const UnscheduleTaskRequest* request, - UnscheduleTaskResponse* response) { +Status ServiceImpl::UnscheduleTask(ServerContext* context, const UnscheduleTaskRequest* request, + UnscheduleTaskResponse* response) { std::lock_guard lockGuard(mLock); const std::string& clientId = request->clientid(); @@ -431,9 +438,9 @@ Status TestWakeupClientServiceImpl::UnscheduleTask(ServerContext* context, return Status::OK; } -Status TestWakeupClientServiceImpl::UnscheduleAllTasks(ServerContext* context, - const UnscheduleAllTasksRequest* request, - UnscheduleAllTasksResponse* response) { +Status ServiceImpl::UnscheduleAllTasks(ServerContext* context, + const UnscheduleAllTasksRequest* request, + UnscheduleAllTasksResponse* response) { std::lock_guard lockGuard(mLock); const std::string& clientId = request->clientid(); @@ -452,9 +459,8 @@ Status TestWakeupClientServiceImpl::UnscheduleAllTasks(ServerContext* context, return Status::OK; } -Status TestWakeupClientServiceImpl::IsTaskScheduled(ServerContext* context, - const IsTaskScheduledRequest* request, - IsTaskScheduledResponse* response) { +Status ServiceImpl::IsTaskScheduled(ServerContext* context, const IsTaskScheduledRequest* request, + IsTaskScheduledResponse* response) { std::lock_guard lockGuard(mLock); const std::string& clientId = request->clientid(); @@ -475,9 +481,9 @@ Status TestWakeupClientServiceImpl::IsTaskScheduled(ServerContext* context, return Status::OK; } -Status TestWakeupClientServiceImpl::GetAllPendingScheduledTasks( - ServerContext* context, const GetAllPendingScheduledTasksRequest* request, - GetAllPendingScheduledTasksResponse* response) { +Status ServiceImpl::GetAllPendingScheduledTasks(ServerContext* context, + const GetAllPendingScheduledTasksRequest* request, + GetAllPendingScheduledTasksResponse* response) { const std::string& clientId = request->clientid(); printf("GetAllPendingScheduledTasks called with client Id: %s\n", clientId.c_str()); response->clear_allscheduledtasks(); @@ -493,14 +499,35 @@ Status TestWakeupClientServiceImpl::GetAllPendingScheduledTasks( return Status::OK; } -bool TestWakeupClientServiceImpl::isWakeupRequired() { +Status ServiceImpl::IsVehicleInUse(ServerContext* context, const IsVehicleInUseRequest* request, + IsVehicleInUseResponse* response) { + response->set_isvehicleinuse(mVehicleInUse); + return Status::OK; +} + +Status ServiceImpl::GetApPowerBootupReason(ServerContext* context, + const GetApPowerBootupReasonRequest* request, + GetApPowerBootupReasonResponse* response) { + response->set_bootupreason(mBootupReason); + return Status::OK; +} + +bool ServiceImpl::isWakeupRequired() { return mWakeupRequired; } -bool TestWakeupClientServiceImpl::isRemoteTaskConnectionAlive() { +bool ServiceImpl::isRemoteTaskConnectionAlive() { return mRemoteTaskConnectionAlive; } +void ServiceImpl::setVehicleInUse(bool vehicleInUse) { + mVehicleInUse = vehicleInUse; +} + +void ServiceImpl::setBootupReason(int32_t bootupReason) { + mBootupReason = bootupReason; +} + } // namespace remoteaccess } // namespace automotive } // namespace hardware diff --git a/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp b/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp index 5443ad9c36..63324f3bc5 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp +++ b/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp @@ -33,7 +33,12 @@ #include #include -using ::android::hardware::automotive::remoteaccess::TestWakeupClientServiceImpl; +using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_SYSTEM_ENTER_GARAGE_MODE; +using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_SYSTEM_REMOTE_ACCESS; +using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_USER_POWER_ON; +using ::android::hardware::automotive::remoteaccess::PowerControllerServiceImpl; +using ::android::hardware::automotive::remoteaccess::ServiceImpl; +using ::android::hardware::automotive::remoteaccess::WakeupClientServiceImpl; using ::grpc::Server; using ::grpc::ServerBuilder; using ::grpc::ServerWriter; @@ -48,11 +53,13 @@ const char* COMMAND_SET_VHAL_PROP = pid_t emuPid = 0; -void RunServer(const std::string& serviceAddr, - std::shared_ptr service) { +void RunServer(const std::string& serviceAddr, std::shared_ptr service) { ServerBuilder builder; builder.AddListeningPort(serviceAddr, grpc::InsecureServerCredentials()); - builder.RegisterService(service.get()); + WakeupClientServiceImpl wakeupClientService(service.get()); + builder.RegisterService(&wakeupClientService); + PowerControllerServiceImpl powerControllerService(service.get()); + builder.RegisterService(&powerControllerService); std::unique_ptr server(builder.BuildAndStart()); printf("Test Remote Access GRPC Server listening on %s\n", serviceAddr.c_str()); server->Wait(); @@ -81,20 +88,21 @@ void updateEmuStatus() { } } -bool powerOnEmu() { +bool powerOnEmu(ServiceImpl* service, int32_t bootupReason) { updateEmuStatus(); if (emuPid != 0) { printf("The emulator is already running\n"); return false; } + service->setBootupReason(bootupReason); emuPid = runCommand(COMMAND_RUN_EMU); printf("Emulator started in process: %d\n", emuPid); return true; } -bool powerOn() { +bool powerOn(ServiceImpl* service, int32_t bootupReason) { #ifdef HOST - return powerOnEmu(); + return powerOnEmu(service, bootupReason); #else printf("power on is only supported on host\n"); return false; @@ -133,21 +141,6 @@ void powerOff() { #endif } -void setVehicleInUse(bool vehicleInUse) { -#ifdef HOST - printf("Set vehicleInUse to %d\n", vehicleInUse); - int value = 0; - if (vehicleInUse) { - value = 1; - } - const char* command = getSetPropCommand(VEHICLE_IN_USE, value); - runCommand(command); - delete[] command; -#else - printf("set vehicleInUse is only supported on host\n"); -#endif -} - void help() { std::cout << "Remote Access Host Test Utility" << std::endl << "help:\t" @@ -171,8 +164,7 @@ void help() { << "(only supported on host)" << std::endl; } -void parseCommand(const std::string& userInput, - std::shared_ptr service) { +void parseCommand(const std::string& userInput, std::shared_ptr service) { if (userInput == "") { // ignore empty line. } else if (userInput == "help") { @@ -199,8 +191,10 @@ void parseCommand(const std::string& userInput, printf("isWakeupRequired: %B, isRemoteTaskConnectionAlive: %B\n", service->isWakeupRequired(), service->isRemoteTaskConnectionAlive()); } else if (userInput == "power on") { - powerOn(); + service->setVehicleInUse(true); + powerOn(service.get(), BOOTUP_REASON_USER_POWER_ON); } else if (userInput == "power off") { + service->setVehicleInUse(false); powerOff(); } else if (userInput.rfind("inject task", 0) == 0) { std::stringstream ss; @@ -226,7 +220,7 @@ void parseCommand(const std::string& userInput, printf("Remote task with client ID: %s, data: %s injected\n", clientId.c_str(), taskData.c_str()); } else if (userInput == "set vehicleInUse") { - setVehicleInUse(true); + service->setVehicleInUse(true); } else { printf("Unknown command, see 'help'\n"); } @@ -242,14 +236,11 @@ void saHandler(int signum) { exit(-1); } -class MyTestWakeupClientServiceImpl final : public TestWakeupClientServiceImpl { +class MyServiceImpl final : public ServiceImpl { public: - void wakeupApplicationProcessor() override { + void wakeupApplicationProcessor(int32_t bootupReason) override { #ifdef HOST - if (powerOnEmu()) { - // If we wake up AP to execute remote task, vehicle in use should be false. - setVehicleInUse(false); - } + powerOnEmu(this, bootupReason); #else wakeupAp(); #endif @@ -262,8 +253,7 @@ int main(int argc, char** argv) { serviceAddr = argv[1]; } // Let the server thread run, we will force kill the server when we exit the program. - std::shared_ptr service = - std::make_shared(); + std::shared_ptr service = std::make_shared(); std::thread serverThread([serviceAddr, service] { RunServer(serviceAddr, service); }); // Register the signal handler for SIGTERM and SIGINT so that we can stop the emulator before diff --git a/automotive/remoteaccess/test_grpc_server/impl/test/TestWakeupClientServiceImplUnitTest.cpp b/automotive/remoteaccess/test_grpc_server/impl/test/TestWakeupClientServiceImplUnitTest.cpp index 63458aee6d..4bc008697d 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/test/TestWakeupClientServiceImplUnitTest.cpp +++ b/automotive/remoteaccess/test_grpc_server/impl/test/TestWakeupClientServiceImplUnitTest.cpp @@ -43,9 +43,9 @@ constexpr int64_t kTestStartTimeInEpochSeconds = 2345; constexpr int64_t kTestPeriodicInSeconds = 123; const std::string kTestGrpcAddr = "localhost:50051"; -class MyTestWakeupClientServiceImpl final : public TestWakeupClientServiceImpl { +class MyTestWakeupClientServiceImpl final : public ServiceImpl { public: - void wakeupApplicationProcessor() override { + void wakeupApplicationProcessor([[maybe_unused]] int32_t bootupReason) override { // Do nothing. } }; @@ -54,13 +54,14 @@ class TestWakeupClientServiceImplUnitTest : public ::testing::Test { public: virtual void SetUp() override { mServerThread = std::thread([this] { + mService = std::make_unique(); + ServerBuilder builder; + builder.AddListeningPort(kTestGrpcAddr, grpc::InsecureServerCredentials()); + WakeupClientServiceImpl wakeupClientService(mService.get()); + builder.RegisterService(&wakeupClientService); + mServer = builder.BuildAndStart(); { std::unique_lock lock(mLock); - mService = std::make_unique(); - ServerBuilder builder; - builder.AddListeningPort(kTestGrpcAddr, grpc::InsecureServerCredentials()); - builder.RegisterService(mService.get()); - mServer = builder.BuildAndStart(); mServerStartCv.notify_one(); } mServer->Wait(); @@ -124,6 +125,7 @@ class TestWakeupClientServiceImplUnitTest : public ::testing::Test { std::chrono::system_clock::now().time_since_epoch()) .count(); request.mutable_scheduleinfo()->set_clientid(kTestClientId); + request.mutable_scheduleinfo()->set_tasktype(ScheduleTaskType::CUSTOM); request.mutable_scheduleinfo()->set_scheduleid(scheduleId); request.mutable_scheduleinfo()->set_data(kTestData.data(), kTestData.size()); request.mutable_scheduleinfo()->set_count(count); @@ -156,6 +158,7 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestScheduleTask) { ScheduleTaskResponse response = {}; request.mutable_scheduleinfo()->set_clientid(kTestClientId); + request.mutable_scheduleinfo()->set_tasktype(ScheduleTaskType::CUSTOM); request.mutable_scheduleinfo()->set_scheduleid(kTestScheduleId); request.mutable_scheduleinfo()->set_data(kTestData.data(), kTestData.size()); request.mutable_scheduleinfo()->set_count(2); @@ -191,6 +194,7 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestScheduleTask_conflictScheduleId) request.mutable_scheduleinfo()->set_clientid(kTestClientId); request.mutable_scheduleinfo()->set_scheduleid(kTestScheduleId); + request.mutable_scheduleinfo()->set_tasktype(ScheduleTaskType::CUSTOM); request.mutable_scheduleinfo()->set_data(kTestData.data(), kTestData.size()); request.mutable_scheduleinfo()->set_count(2); request.mutable_scheduleinfo()->set_starttimeinepochseconds(getNow() + 1); @@ -315,6 +319,7 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestGetAllPendingScheduledTasks) { for (int i = 0; i < 2; i++) { EXPECT_EQ(response2.allscheduledtasks(i).clientid(), kTestClientId); if (response2.allscheduledtasks(i).scheduleid() == scheduleId1) { + EXPECT_EQ(response2.allscheduledtasks(i).tasktype(), ScheduleTaskType::CUSTOM); EXPECT_EQ(response2.allscheduledtasks(i).data(), std::string(kTestData.begin(), kTestData.end())); EXPECT_EQ(response2.allscheduledtasks(i).count(), count1); @@ -322,6 +327,7 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestGetAllPendingScheduledTasks) { EXPECT_EQ(response2.allscheduledtasks(i).periodicinseconds(), periodicInSeconds1); } else { EXPECT_EQ(response2.allscheduledtasks(i).scheduleid(), scheduleId2); + EXPECT_EQ(response2.allscheduledtasks(i).tasktype(), ScheduleTaskType::CUSTOM); EXPECT_EQ(response2.allscheduledtasks(i).data(), std::string(kTestData.begin(), kTestData.end())); EXPECT_EQ(response2.allscheduledtasks(i).count(), count2); diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp index 76db891a5b..d987e6f571 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp @@ -67,6 +67,7 @@ using ::aidl::android::hardware::automotive::vehicle::LowSpeedAutomaticEmergency using ::aidl::android::hardware::automotive::vehicle::LowSpeedCollisionWarningState; using ::aidl::android::hardware::automotive::vehicle::RawPropValues; using ::aidl::android::hardware::automotive::vehicle::VehicleAirbagLocation; +using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerBootupReason; using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerStateReport; using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerStateReq; using ::aidl::android::hardware::automotive::vehicle::VehicleAreaConfig; @@ -300,6 +301,8 @@ JsonValueParser::JsonValueParser() { std::make_unique>(); mConstantParsersByType["LowSpeedAutomaticEmergencyBrakingState"] = std::make_unique>(); + mConstantParsersByType["VehicleApPowerBootupReason"] = + std::make_unique>(); mConstantParsersByType["Constants"] = std::make_unique(); #ifdef ENABLE_VEHICLE_HAL_TEST_PROPERTIES mConstantParsersByType["TestVendorProperty"] = diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 590eff9a23..1a7cdafd0f 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -3195,6 +3195,14 @@ ] } }, + { + "property": "VehicleProperty::AP_POWER_BOOTUP_REASON", + "defaultValue": { + "int32Values": [ + "VehicleApPowerBootupReason::USER_POWER_ON" + ] + } + }, { "property": "VehicleProperty::DISPLAY_BRIGHTNESS", "defaultValue": { diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp b/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp index e75f6485b8..80e40878e2 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp @@ -27,11 +27,19 @@ cc_library { ], local_include_dirs: ["include"], export_include_dirs: ["include"], - cflags: ["-DENABLE_VEHICLE_HAL_TEST_PROPERTIES"], + cflags: [ + "-DENABLE_VEHICLE_HAL_TEST_PROPERTIES", + // Uncomment this if running on emulator and connecting to a local grpc server + // running on host 127.0.0.1:50051 (TestWakeupClientServerHost) + // "-DPOWER_GRPC_SERVICE_ADDRESS=\"10.0.2.2:50051\"", + ], defaults: [ "VehicleHalDefaults", "FakeVehicleHardwareDefaults", ], + whole_static_libs: [ + "wakeup_client_protos", + ], } cc_defaults { @@ -54,7 +62,9 @@ cc_defaults { "Prebuilt_VehicleHalVendorClusterTestProperties_JSON", ], shared_libs: [ + "libgrpc++", "libjsoncpp", + "libprotobuf-cpp-full", ], export_static_lib_headers: ["VehicleHalUtils"], } diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h index 1153217ee2..8d6c883287 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h @@ -32,6 +32,8 @@ #include #include #include +#include +#include #include #include @@ -240,6 +242,11 @@ class FakeVehicleHardware : public IVehicleHardware { VhalResult synchronizeHvacTemp(int32_t hvacDualOnAreaId, std::optional newTempC) const; std::optional getSyncedAreaIdIfHvacDualOn(int32_t hvacTemperatureSetAreaId) const; + ValueResultType getPowerPropFromExternalService(int32_t propId) const; + ValueResultType getVehicleInUse( + android::hardware::automotive::remoteaccess::PowerController::Stub* clientStub) const; + ValueResultType getApPowerBootupReason( + android::hardware::automotive::remoteaccess::PowerController::Stub* clientStub) const; std::unordered_map loadConfigDeclarations(); diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp index bcc765cf96..c4e708660b 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp @@ -82,6 +82,12 @@ using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyType; using ::aidl::android::hardware::automotive::vehicle::VehiclePropValue; using ::aidl::android::hardware::automotive::vehicle::VehicleUnit; +using ::android::hardware::automotive::remoteaccess::GetApPowerBootupReasonRequest; +using ::android::hardware::automotive::remoteaccess::GetApPowerBootupReasonResponse; +using ::android::hardware::automotive::remoteaccess::IsVehicleInUseRequest; +using ::android::hardware::automotive::remoteaccess::IsVehicleInUseResponse; +using ::android::hardware::automotive::remoteaccess::PowerController; + using ::android::base::EqualsIgnoreCase; using ::android::base::Error; using ::android::base::GetIntProperty; @@ -256,6 +262,11 @@ const std::unordered_map> mAdasEnabledPropToAdasPr }, }, }; + +// The list of VHAL properties that might be handled by an external power controller. +const std::unordered_set mPowerPropIds = {toInt(VehicleProperty::VEHICLE_IN_USE), + toInt(VehicleProperty::AP_POWER_BOOTUP_REASON)}; + } // namespace void FakeVehicleHardware::storePropInitialValue(const ConfigDeclaration& config) { @@ -763,6 +774,13 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( int32_t propId = value.prop; ValueResultType result; +#ifdef POWER_GRPC_SERVICE_ADDRESS + if (mPowerPropIds.find(propId) != mPowerPropIds.end()) { + *isSpecialValue = true; + return getPowerPropFromExternalService(propId); + } +#endif + if (propId >= STARTING_VENDOR_CODE_PROPERTIES_FOR_TEST && propId < ENDING_VENDOR_CODE_PROPERTIES_FOR_TEST) { *isSpecialValue = true; @@ -844,6 +862,61 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( return nullptr; } +FakeVehicleHardware::ValueResultType FakeVehicleHardware::getPowerPropFromExternalService( + [[maybe_unused]] int32_t propId) const { +#ifdef POWER_GRPC_SERVICE_ADDRESS + auto channel = + grpc::CreateChannel(POWER_GRPC_SERVICE_ADDRESS, grpc::InsecureChannelCredentials()); + auto clientStub = PowerController::NewStub(channel); + switch (propId) { + case toInt(VehicleProperty::VEHICLE_IN_USE): + return getVehicleInUse(clientStub.get()); + case toInt(VehicleProperty::AP_POWER_BOOTUP_REASON): + return getApPowerBootupReason(clientStub.get()); + default: + return StatusError(StatusCode::INTERNAL_ERROR) + << "Unsupported power property ID: " << propId; + } +#else + // Must not reach here. + return StatusError(StatusCode::INTERNAL_ERROR); +#endif +} + +FakeVehicleHardware::ValueResultType FakeVehicleHardware::getVehicleInUse( + PowerController::Stub* clientStub) const { + IsVehicleInUseRequest request = {}; + IsVehicleInUseResponse response = {}; + grpc::ClientContext context; + auto status = clientStub->IsVehicleInUse(&context, request, &response); + if (!status.ok()) { + return StatusError(StatusCode::TRY_AGAIN) << "Cannot connect to GRPC service " + << ", error: " << status.error_message(); + } + auto result = mValuePool->obtainBoolean(response.isvehicleinuse()); + result->prop = toInt(VehicleProperty::VEHICLE_IN_USE); + result->areaId = 0; + result->timestamp = elapsedRealtimeNano(); + return result; +} + +FakeVehicleHardware::ValueResultType FakeVehicleHardware::getApPowerBootupReason( + PowerController::Stub* clientStub) const { + GetApPowerBootupReasonRequest request = {}; + GetApPowerBootupReasonResponse response = {}; + grpc::ClientContext context; + auto status = clientStub->GetApPowerBootupReason(&context, request, &response); + if (!status.ok()) { + return StatusError(StatusCode::TRY_AGAIN) << "Cannot connect to GRPC service " + << ", error: " << status.error_message(); + } + auto result = mValuePool->obtainInt32(response.bootupreason()); + result->prop = toInt(VehicleProperty::AP_POWER_BOOTUP_REASON); + result->areaId = 0; + result->timestamp = elapsedRealtimeNano(); + return result; +} + FakeVehicleHardware::ValueResultType FakeVehicleHardware::getEchoReverseBytes( const VehiclePropValue& value) const { auto readResult = mServerSidePropStore->readValue(value); diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/Android.bp b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/Android.bp index b763d2f55d..ac70b51423 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/Android.bp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/Android.bp @@ -41,7 +41,9 @@ cc_test { "libgmock", ], shared_libs: [ + "libgrpc++", "libjsoncpp", + "libprotobuf-cpp-full", ], data: [ ":VehicleHalDefaultProperties_JSON", diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp index 90643aa5e3..cab33e10e8 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp @@ -506,6 +506,12 @@ TEST_F(FakeVehicleHardwareTest, testGetDefaultValues) { continue; } + if (propId == toInt(VehicleProperty::VEHICLE_IN_USE) || + propId == toInt(VehicleProperty::AP_POWER_BOOTUP_REASON)) { + // These may be controller by an external power control unit. + continue; + } + if (isGlobalProp(propId)) { if (config.initialValue == RawPropValues{}) { addGetValueRequest(getValueRequests, expectedGetValueResults, requestId++, diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h index 0c8ebbda34..77facf2790 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h @@ -65,6 +65,7 @@ #include #include #include +#include #include #include #include -- GitLab From 4cc6345c6c5d7dfb8977835b02f5614b87f98281 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Wed, 21 Feb 2024 14:36:26 -0800 Subject: [PATCH 375/418] Move FakeVehicleHardwareUnitTest to auto-presumbmit. It depends on libgrpc++ which is not present on some cf target system images. Test: Presubmit Bug: 316233421 Change-Id: I6fe76fff7fc4cab85ebe2bb50b6233cb71d33605 --- automotive/vehicle/TEST_MAPPING | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/automotive/vehicle/TEST_MAPPING b/automotive/vehicle/TEST_MAPPING index e1a90cba39..7306b47fa8 100644 --- a/automotive/vehicle/TEST_MAPPING +++ b/automotive/vehicle/TEST_MAPPING @@ -24,9 +24,6 @@ { "name": "VehiclePropertyAnnotationJavaTest" }, - { - "name": "FakeVehicleHardwareTest" - }, { "name": "FakeVehicleHalValueGeneratorsTest" }, @@ -44,6 +41,9 @@ { "name": "VtsHalAutomotiveVehicle_TargetTest" }, + { + "name": "FakeVehicleHardwareTest" + }, { "name": "CarServiceUnitTest", "options" : [ -- GitLab From e0ed3508758b68eddb7ce61dca906539456985c0 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Tue, 20 Feb 2024 17:52:15 -0800 Subject: [PATCH 376/418] Use runtime config file instead of compile flag. Use runtime config file instead of compile flag to control an optional external grpc server address. This allows us to test connecting with an external simluated power unit without recompiling the image. Test: Manual test with push the config file at /vendor/etc/automotive/powercontroller/serverconfig Bug: 325675883 Change-Id: I04193e7603a670c8398c6d6dc0466a0071f7c33d --- .../remoteaccess/hal/default/Android.bp | 9 --- .../hal/default/src/RemoteAccessImpl.cpp | 81 +++++++++++++------ .../aidl/impl/fake_impl/hardware/Android.bp | 3 - .../hardware/include/FakeVehicleHardware.h | 4 + .../hardware/src/FakeVehicleHardware.cpp | 35 +++++--- 5 files changed, 82 insertions(+), 50 deletions(-) diff --git a/automotive/remoteaccess/hal/default/Android.bp b/automotive/remoteaccess/hal/default/Android.bp index be6a425485..cf173d5e18 100644 --- a/automotive/remoteaccess/hal/default/Android.bp +++ b/automotive/remoteaccess/hal/default/Android.bp @@ -52,11 +52,6 @@ cc_binary { defaults: ["remote-access-hal-defaults"], vintf_fragments: ["remoteaccess-default-service.xml"], init_rc: ["remoteaccess-default-service.rc"], - cflags: [ - // Uncomment this if running on emulator and connecting to a local grpc server - // running on host 127.0.0.1:50051 (TestWakeupClientServerHost) - // "-DGRPC_SERVICE_ADDRESS=\"10.0.2.2:50051\"", - ], } cc_binary { @@ -64,10 +59,6 @@ cc_binary { defaults: ["remote-access-hal-defaults"], vintf_fragments: ["remoteaccess-default-service.xml"], init_rc: ["remoteaccess-tcu-test-service.rc"], - cflags: [ - "-DGRPC_SERVICE_ADDRESS=\"10.10.10.1:50051\"", - "-DGRPC_SERVICE_IFNAME=\"eth1\"", - ], } cc_library { diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp index 28c5cd5cf2..a50f3bb7fc 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp @@ -27,37 +27,66 @@ #include #include +namespace { + +constexpr char GRPC_SERVICE_CONFIG_FILE[] = "/vendor/etc/automotive/powercontroller/serverconfig"; constexpr char SERVICE_NAME[] = "android.hardware.automotive.remoteaccess.IRemoteAccess/default"; +void maybeGetGrpcServiceInfo(std::string* address, std::string* ifname) { + std::ifstream ifs(GRPC_SERVICE_CONFIG_FILE); + if (!ifs) { + LOG(INFO) << "Cannot open grpc service config file at: " << GRPC_SERVICE_CONFIG_FILE + << ", assume no service is available"; + return; + } + int count = 0; + while (ifs.good()) { + std::string line; + ifs >> line; + // First line is address, second line, if present is ifname. + if (count == 0) { + *address = line; + } else { + *ifname = line; + break; + } + count++; + } + ifs.close(); +} + +} // namespace + int main(int /* argc */, char* /* argv */[]) { - android::hardware::automotive::remoteaccess::WakeupClient::StubInterface* grpcStub = nullptr; - -#ifdef GRPC_SERVICE_ADDRESS - LOG(INFO) << "Registering RemoteAccessService as service, server: " << GRPC_SERVICE_ADDRESS - << "..."; - grpc::ChannelArguments grpcargs = {}; - -#ifdef GRPC_SERVICE_IFNAME - grpcargs.SetSocketMutator( - android::hardware::automotive::remoteaccess::MakeBindToDeviceSocketMutator( - GRPC_SERVICE_IFNAME)); - LOG(DEBUG) << "GRPC_SERVICE_IFNAME specified as: " << GRPC_SERVICE_IFNAME; - LOG(INFO) << "Waiting for interface: " << GRPC_SERVICE_IFNAME; - android::netdevice::waitFor({GRPC_SERVICE_IFNAME}, - android::netdevice::WaitCondition::PRESENT_AND_UP); - LOG(INFO) << "Waiting for interface: " << GRPC_SERVICE_IFNAME << " done"; -#endif // #ifdef GRPC_SERVICE_IFNAME - auto channel = grpc::CreateChannel(GRPC_SERVICE_ADDRESS, grpc::InsecureChannelCredentials()); - auto clientStub = android::hardware::automotive::remoteaccess::WakeupClient::NewStub(channel); - - grpcStub = clientStub.get(); - -#else - LOG(INFO) << "GRPC_SERVICE_ADDRESS is not defined, work in fake mode"; -#endif // #ifdef GRPC_SERVICE_ADDRESS + std::string grpcServiceAddress = ""; + std::string grpcServiceIfname = ""; + maybeGetGrpcServiceInfo(&grpcServiceAddress, &grpcServiceIfname); + + std::unique_ptr grpcStub; + + if (grpcServiceAddress != "") { + LOG(INFO) << "Registering RemoteAccessService as service, server: " << grpcServiceAddress + << "..."; + grpc::ChannelArguments grpcargs = {}; + + if (grpcServiceIfname != "") { + grpcargs.SetSocketMutator( + android::hardware::automotive::remoteaccess::MakeBindToDeviceSocketMutator( + grpcServiceIfname)); + LOG(DEBUG) << "grpcServiceIfname specified as: " << grpcServiceIfname; + LOG(INFO) << "Waiting for interface: " << grpcServiceIfname; + android::netdevice::waitFor({grpcServiceIfname}, + android::netdevice::WaitCondition::PRESENT_AND_UP); + LOG(INFO) << "Waiting for interface: " << grpcServiceIfname << " done"; + } + auto channel = grpc::CreateChannel(grpcServiceAddress, grpc::InsecureChannelCredentials()); + grpcStub = android::hardware::automotive::remoteaccess::WakeupClient::NewStub(channel); + } else { + LOG(INFO) << "grpcServiceAddress is not defined, work in fake mode"; + } auto service = ndk::SharedRefBase::make< - android::hardware::automotive::remoteaccess::RemoteAccessService>(grpcStub); + android::hardware::automotive::remoteaccess::RemoteAccessService>(grpcStub.get()); binder_exception_t err = AServiceManager_addService(service->asBinder().get(), SERVICE_NAME); if (err != EX_NONE) { diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp b/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp index 80e40878e2..5fc07c947a 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp @@ -29,9 +29,6 @@ cc_library { export_include_dirs: ["include"], cflags: [ "-DENABLE_VEHICLE_HAL_TEST_PROPERTIES", - // Uncomment this if running on emulator and connecting to a local grpc server - // running on host 127.0.0.1:50051 (TestWakeupClientServerHost) - // "-DPOWER_GRPC_SERVICE_ADDRESS=\"10.0.2.2:50051\"", ], defaults: [ "VehicleHalDefaults", diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h index 8d6c883287..644d1cd025 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h @@ -189,6 +189,10 @@ class FakeVehicleHardware : public IVehicleHardware { // Only used during initialization. JsonConfigLoader mLoader; + // Only used during initialization. If not empty, points to an external grpc server that + // provides power controlling related properties. + std::string mPowerControllerServiceAddress = ""; + void init(); // Stores the initial value to property store. void storePropInitialValue(const ConfigDeclaration& config); diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp index c4e708660b..072aafc2b4 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp @@ -114,6 +114,9 @@ constexpr char DEFAULT_CONFIG_DIR[] = "/vendor/etc/automotive/vhalconfig/"; // The directory for property configuration file that overrides the default configuration file. // For config file format, see impl/default_config/config/README.md. constexpr char OVERRIDE_CONFIG_DIR[] = "/vendor/etc/automotive/vhaloverride/"; +// The optional config file for power controller grpc service that provides vehicleInUse and +// ApPowerBootupReason property. +constexpr char GRPC_SERVICE_CONFIG_FILE[] = "/vendor/etc/automotive/powercontroller/serverconfig"; // If OVERRIDE_PROPERTY is set, we will use the configuration files from OVERRIDE_CONFIG_DIR to // overwrite the default configs. constexpr char OVERRIDE_PROPERTY[] = "persist.vendor.vhal_init_value_override"; @@ -267,6 +270,17 @@ const std::unordered_map> mAdasEnabledPropToAdasPr const std::unordered_set mPowerPropIds = {toInt(VehicleProperty::VEHICLE_IN_USE), toInt(VehicleProperty::AP_POWER_BOOTUP_REASON)}; +void maybeGetGrpcServiceInfo(std::string* address) { + std::ifstream ifs(GRPC_SERVICE_CONFIG_FILE); + if (!ifs) { + ALOGI("Cannot open grpc service config file at: %s, assume no service is available", + GRPC_SERVICE_CONFIG_FILE); + return; + } + ifs >> *address; + ifs.close(); +} + } // namespace void FakeVehicleHardware::storePropInitialValue(const ConfigDeclaration& config) { @@ -357,6 +371,8 @@ std::unordered_map FakeVehicleHardware::loadConfigDe } void FakeVehicleHardware::init() { + maybeGetGrpcServiceInfo(&mPowerControllerServiceAddress); + for (auto& [_, configDeclaration] : loadConfigDeclarations()) { VehiclePropConfig cfg = configDeclaration.config; VehiclePropertyStore::TokenFunction tokenFunction = nullptr; @@ -774,12 +790,12 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( int32_t propId = value.prop; ValueResultType result; -#ifdef POWER_GRPC_SERVICE_ADDRESS - if (mPowerPropIds.find(propId) != mPowerPropIds.end()) { - *isSpecialValue = true; - return getPowerPropFromExternalService(propId); + if (mPowerControllerServiceAddress != "") { + if (mPowerPropIds.find(propId) != mPowerPropIds.end()) { + *isSpecialValue = true; + return getPowerPropFromExternalService(propId); + } } -#endif if (propId >= STARTING_VENDOR_CODE_PROPERTIES_FOR_TEST && propId < ENDING_VENDOR_CODE_PROPERTIES_FOR_TEST) { @@ -863,10 +879,9 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( } FakeVehicleHardware::ValueResultType FakeVehicleHardware::getPowerPropFromExternalService( - [[maybe_unused]] int32_t propId) const { -#ifdef POWER_GRPC_SERVICE_ADDRESS + int32_t propId) const { auto channel = - grpc::CreateChannel(POWER_GRPC_SERVICE_ADDRESS, grpc::InsecureChannelCredentials()); + grpc::CreateChannel(mPowerControllerServiceAddress, grpc::InsecureChannelCredentials()); auto clientStub = PowerController::NewStub(channel); switch (propId) { case toInt(VehicleProperty::VEHICLE_IN_USE): @@ -877,10 +892,6 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::getPowerPropFromExtern return StatusError(StatusCode::INTERNAL_ERROR) << "Unsupported power property ID: " << propId; } -#else - // Must not reach here. - return StatusError(StatusCode::INTERNAL_ERROR); -#endif } FakeVehicleHardware::ValueResultType FakeVehicleHardware::getVehicleInUse( -- GitLab From 07bbadb3e39e59bb707ea4379712cfb6ca3e2f55 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 21 Feb 2024 11:32:32 -0800 Subject: [PATCH 377/418] audio: Remove audio effects config from audio HAL VAPEX The audio effects HAL config can vary between different CF "flavors" and thus must not belong to VAPEX. This is consistent with handling of audio policy configuration files. Bug: 318423731 Test: run `atest audioeffect_tests` on cf_x86_64_auto-trunk_staging-userdebug Change-Id: I0f4ee9a44a3426934f6a055fc8c9ce74a8db78fc --- audio/aidl/default/Android.bp | 8 +------- .../default/apex/com.android.hardware.audio/Android.bp | 1 - 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp index 8c6c537359..fc82a65e95 100644 --- a/audio/aidl/default/Android.bp +++ b/audio/aidl/default/Android.bp @@ -245,7 +245,7 @@ cc_binary { "EffectFactory.cpp", "EffectMain.cpp", ], - installable: false, //installed in apex com.android.hardware.audio.effect + installable: false, //installed in apex com.android.hardware.audio } cc_library_headers { @@ -267,9 +267,3 @@ prebuilt_etc { sub_dir: "vintf", installable: false, } - -prebuilt_etc { - name: "audio_effects_config.xml", - src: "audio_effects_config.xml", - installable: false, -} diff --git a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp index 2ece7a1929..ee7e46edce 100644 --- a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp +++ b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp @@ -46,6 +46,5 @@ apex { prebuilts: [ "android.hardware.audio.service-aidl.example.rc", "android.hardware.audio.service-aidl.xml", - "audio_effects_config.xml", ], } -- GitLab From a9cbdea48b66f67a7386a7dced86f798b3813123 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Tue, 30 Jan 2024 16:33:56 -0800 Subject: [PATCH 378/418] Add VTS for VUR. Add VTS for testing subscription with variable update rate on. Test: atest VtsHalAutomotiveVehicle_TargetTest on reference VHAL. Bug: 323073584 Change-Id: I3c8f4e87ee11487466a1b75ae611cb58f84d8ef5 --- .../VtsHalAutomotiveVehicle_TargetTest.cpp | 123 ++++++++++++++++-- 1 file changed, 114 insertions(+), 9 deletions(-) diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index 888b1e10a8..ccc0f3f91c 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -37,6 +37,7 @@ #include #include +#include #include #include #include @@ -63,6 +64,7 @@ using ::android::frameworks::automotive::vhal::IHalPropConfig; using ::android::frameworks::automotive::vhal::IHalPropValue; using ::android::frameworks::automotive::vhal::ISubscriptionCallback; using ::android::frameworks::automotive::vhal::IVhalClient; +using ::android::frameworks::automotive::vhal::SubscribeOptionsBuilder; using ::android::frameworks::automotive::vhal::VhalClientResult; using ::android::hardware::getAllHalInstanceNames; using ::android::hardware::Sanitize; @@ -83,8 +85,8 @@ struct ServiceDescriptor { class VtsVehicleCallback final : public ISubscriptionCallback { private: std::mutex mLock; - std::unordered_map mEventsCount GUARDED_BY(mLock); - std::unordered_map> mEventTimestamps GUARDED_BY(mLock); + std::unordered_map>> mEvents + GUARDED_BY(mLock); std::condition_variable mEventCond; public: @@ -93,8 +95,7 @@ class VtsVehicleCallback final : public ISubscriptionCallback { std::lock_guard lockGuard(mLock); for (auto& value : values) { int32_t propId = value->getPropId(); - mEventsCount[propId] += 1; - mEventTimestamps[propId].push_back(value->getTimestamp()); + mEvents[propId].push_back(std::move(value->clone())); } } mEventCond.notify_one(); @@ -110,20 +111,37 @@ class VtsVehicleCallback final : public ISubscriptionCallback { std::unique_lock uniqueLock(mLock); return mEventCond.wait_for(uniqueLock, timeout, [this, propId, expectedEvents] { ScopedLockAssertion lockAssertion(mLock); - return mEventsCount[propId] >= expectedEvents; + return mEvents[propId].size() >= expectedEvents; }); } + std::vector> getEvents(int32_t propId) { + std::lock_guard lockGuard(mLock); + std::vector> events; + if (mEvents.find(propId) == mEvents.end()) { + return events; + } + for (const auto& eventPtr : mEvents[propId]) { + events.push_back(std::move(eventPtr->clone())); + } + return events; + } + std::vector getEventTimestamps(int32_t propId) { - { - std::lock_guard lockGuard(mLock); - return mEventTimestamps[propId]; + std::lock_guard lockGuard(mLock); + std::vector timestamps; + if (mEvents.find(propId) == mEvents.end()) { + return timestamps; + } + for (const auto& valuePtr : mEvents[propId]) { + timestamps.push_back(valuePtr->getTimestamp()); } + return timestamps; } void reset() { std::lock_guard lockGuard(mLock); - mEventsCount.clear(); + mEvents.clear(); } }; @@ -545,6 +563,93 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribeAndUnsubscribe) { << "Expect not to get events after unsubscription"; } +bool isVariableUpdateRateSupported(const std::unique_ptr& config, int32_t areaId) { + for (const auto& areaConfigPtr : config->getAreaConfigs()) { + if (areaConfigPtr->getAreaId() == areaId && + areaConfigPtr->isVariableUpdateRateSupported()) { + return true; + } + } + return false; +} + +// Test subscribe with variable update rate enabled if supported. +TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribe_enableVurIfSupported) { + ALOGD("VtsHalAutomotiveVehicleTargetTest::subscribe_enableVurIfSupported"); + + int32_t propId = toInt(VehicleProperty::PERF_VEHICLE_SPEED); + if (!checkIsSupported(propId)) { + GTEST_SKIP() << "Property: " << propId << " is not supported, skip the test"; + } + if (!mVhalClient->isAidlVhal()) { + GTEST_SKIP() << "Variable update rate is only supported by AIDL VHAL"; + } + + auto propConfigsResult = mVhalClient->getPropConfigs({propId}); + + ASSERT_TRUE(propConfigsResult.ok()) << "Failed to get property config for PERF_VEHICLE_SPEED: " + << "error: " << propConfigsResult.error().message(); + ASSERT_EQ(propConfigsResult.value().size(), 1u) + << "Expect to return 1 config for PERF_VEHICLE_SPEED"; + auto& propConfig = propConfigsResult.value()[0]; + float maxSampleRate = propConfig->getMaxSampleRate(); + if (maxSampleRate < 1) { + GTEST_SKIP() << "Sample rate for vehicle speed < 1 times/sec, skip test since it would " + "take too long"; + } + // PERF_VEHICLE_SPEED is a global property, so areaId is 0. + if (!isVariableUpdateRateSupported(propConfig, /* areaId= */ 0)) { + GTEST_SKIP() << "Variable update rate is not supported for PERF_VEHICLE_SPEED, " + << "skip testing"; + } + + auto client = mVhalClient->getSubscriptionClient(mCallback); + ASSERT_NE(client, nullptr) << "Failed to get subscription client"; + SubscribeOptionsBuilder builder(propId); + // By default variable update rate is true. + builder.setSampleRate(maxSampleRate); + auto option = builder.build(); + + auto result = client->subscribe({option}); + + ASSERT_TRUE(result.ok()) << StringPrintf("Failed to subscribe to property: %" PRId32 + ", error: %s", + propId, result.error().message().c_str()); + + ASSERT_TRUE(mCallback->waitForExpectedEvents(propId, 1, std::chrono::seconds(2))) + << "Must get at least 1 events within 2 seconds after subscription for rate: " + << maxSampleRate; + + // Sleep for 1 seconds to wait for more possible events to arrive. + std::this_thread::sleep_for(std::chrono::seconds(1)); + + client->unsubscribe({propId}); + + auto events = mCallback->getEvents(propId); + if (events.size() == 1) { + // We only received one event, the value is not changing so nothing to check here. + return; + } + + // Sort the values by the timestamp. + std::map valuesByTimestamp; + for (size_t i = 0; i < events.size(); i++) { + valuesByTimestamp[events[i]->getTimestamp()] = events[i]->getFloatValues()[0]; + } + + size_t i = 0; + float previousValue; + for (const auto& [_, value] : valuesByTimestamp) { + if (i == 0) { + previousValue = value; + } else { + ASSERT_FALSE(value != previousValue) << "received duplicate value: " << value + << " when variable update rate is true"; + previousValue = value; + } + } +} + // Test subscribe() with an invalid property. TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribeInvalidProp) { ALOGD("VtsHalAutomotiveVehicleTargetTest::subscribeInvalidProp"); -- GitLab From 0d286b386777e17c4401f2c0205271cbc1c5e8bd Mon Sep 17 00:00:00 2001 From: Shikha Panwar Date: Thu, 22 Feb 2024 15:50:29 +0000 Subject: [PATCH 379/418] Sk VTS: Identity of Secretkeeper is same as in DT Secretkeeper is expected to advertize its public key to Android via Device tree node at /avf/reference/avf/ Check that the identity used during AutGraph key exchange protocol with client is indeed this. Test: #secretkeeper_check_identity on device with Sk/default instance enabled Bug: 291213394 Change-Id: I08815d75410fdd0c76d675c7cc9521abe0cda98b --- security/secretkeeper/aidl/vts/Android.bp | 1 + .../secretkeeper/aidl/vts/secretkeeper_cli.rs | 2 +- .../aidl/vts/secretkeeper_test_client.rs | 118 ++++++++++++++---- 3 files changed, 95 insertions(+), 26 deletions(-) diff --git a/security/secretkeeper/aidl/vts/Android.bp b/security/secretkeeper/aidl/vts/Android.bp index e6521aeab2..b9ce5cea86 100644 --- a/security/secretkeeper/aidl/vts/Android.bp +++ b/security/secretkeeper/aidl/vts/Android.bp @@ -47,6 +47,7 @@ rust_test { "android.hardware.security.secretkeeper-V1-rust", "libauthgraph_boringssl", "libauthgraph_core", + "libauthgraph_wire", "libauthgraph_vts_test", "libbinder_rs", "libciborium", diff --git a/security/secretkeeper/aidl/vts/secretkeeper_cli.rs b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs index d02bfe62fa..377ed37b4e 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_cli.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs @@ -120,7 +120,7 @@ impl SkClient { fn new(instance: &str, dice_artifacts: OwnedDiceArtifactsWithExplicitKey) -> Self { let sk: binder::Strong = binder::get_interface(&format!("{SECRETKEEPER_SERVICE}/{instance}")).unwrap(); - let session = SkSession::new(sk.clone(), &dice_artifacts).unwrap(); + let session = SkSession::new(sk.clone(), &dice_artifacts, None).unwrap(); Self { sk, session, dice_artifacts } } diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index 72d3e5733e..7c00aa93bb 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -19,11 +19,11 @@ use android_hardware_security_secretkeeper::aidl::android::hardware::security::s use authgraph_vts_test as ag_vts; use authgraph_boringssl as boring; use authgraph_core::key; -use coset::{CborSerializable, CoseEncrypt0}; +use coset::{CborOrdering, CborSerializable, CoseEncrypt0, CoseKey}; use dice_policy_builder::{CertIndex, ConstraintSpec, ConstraintType, MissingAction, WILDCARD_FULL_ARRAY, policy_for_dice_chain}; use rdroidtest::{ignore_if, rdroidtest}; use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; -use secretkeeper_client::SkSession; +use secretkeeper_client::{SkSession, Error as SkClientError}; use secretkeeper_core::cipher; use secretkeeper_comm::data_types::error::SecretkeeperError; use secretkeeper_comm::data_types::request::Request; @@ -38,9 +38,14 @@ use secretkeeper_test::{ SUBCOMPONENT_DESCRIPTORS, SUBCOMPONENT_SECURITY_VERSION, dice_sample::make_explicit_owned_dice }; +use std::fs; +use std::path::Path; const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; const CURRENT_VERSION: u64 = 1; +const SECRETKEEPER_KEY_HOST_DT: &str = + "/proc/device-tree/avf/reference/avf/secretkeeper_public_key"; + // Random bytes (of ID_SIZE/SECRET_SIZE) generated for tests. const ID_EXAMPLE: Id = Id([ 0xF1, 0xB2, 0xED, 0x3B, 0xD1, 0xBD, 0xF0, 0x7D, 0xE1, 0xF0, 0x01, 0xFC, 0x61, 0x71, 0xD3, 0x42, @@ -65,6 +70,22 @@ const SECRET_EXAMPLE: Secret = Secret([ 0x06, 0xAC, 0x36, 0x8B, 0x3C, 0x95, 0x50, 0x16, 0x67, 0x71, 0x65, 0x26, 0xEB, 0xD0, 0xC3, 0x98, ]); +// Android expects the public key of Secretkeeper instance to be present in the Linux device tree. +// This allows clients to (cryptographically) verify that they are indeed talking to the real +// secretkeeper. +// Note that this is the identity of the `default` instance (and not `nonsecure`)! +fn get_secretkeeper_identity() -> Option { + let path = Path::new(SECRETKEEPER_KEY_HOST_DT); + if path.exists() { + let key = fs::read(path).unwrap(); + let mut key = CoseKey::from_slice(&key).unwrap(); + key.canonicalize(CborOrdering::Lexicographic); + Some(key) + } else { + None + } +} + fn get_instances() -> Vec<(String, String)> { // Determine which instances are available. binder::get_declared_instances(SECRETKEEPER_SERVICE) @@ -80,6 +101,7 @@ fn get_connection(instance: &str) -> binder::Strong { } /// Secretkeeper client information. +#[derive(Debug)] struct SkClient { sk: binder::Strong, session: SkSession, @@ -95,19 +117,40 @@ impl Drop for SkClient { impl SkClient { /// Create an `SkClient` using the default `OwnedDiceArtifactsWithExplicitKey` for identity. - fn new(instance: &str) -> Self { + fn new(instance: &str) -> Result { + let default_dice = make_explicit_owned_dice(/*Security version in a node */ 5); + Self::create(instance, default_dice, None) + } + + /// Create an `SkClient` using given `OwnedDiceArtifactsWithExplicitKey` as client identity. + fn with_identity( + instance: &str, + dice_artifacts: OwnedDiceArtifactsWithExplicitKey, + ) -> Result { + Self::create(instance, dice_artifacts, None) + } + + /// Create an `SkClient` with default client identity, requiring Secretkeeper's identity to be + /// matched against given `expected_sk_key`. + fn with_expected_sk_identity( + instance: &str, + expected_sk_key: coset::CoseKey, + ) -> Result { let default_dice = make_explicit_owned_dice(/*Security version in a node */ 5); - Self::with_identity(instance, default_dice) + Self::create(instance, default_dice, Some(expected_sk_key)) } - /// Create an `SkClient` using the given `OwnedDiceArtifactsWithExplicitKey` for identity. - fn with_identity(instance: &str, dice_artifacts: OwnedDiceArtifactsWithExplicitKey) -> Self { + fn create( + instance: &str, + dice_artifacts: OwnedDiceArtifactsWithExplicitKey, + expected_sk_key: Option, + ) -> Result { let sk = get_connection(instance); - Self { + Ok(Self { sk: sk.clone(), - session: SkSession::new(sk, &dice_artifacts).unwrap(), + session: SkSession::new(sk, &dice_artifacts, expected_sk_key)?, dice_artifacts, - } + }) } /// This method is wrapper that use `SkSession::secret_management_request` which handles @@ -347,7 +390,7 @@ fn authgraph_corrupt_keys(instance: String) { #[rdroidtest(get_instances())] fn secret_management_get_version(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); let request = GetVersionRequest {}; let request_packet = request.serialize_to_packet(); @@ -364,7 +407,7 @@ fn secret_management_get_version(instance: String) { #[rdroidtest(get_instances())] fn secret_management_malformed_request(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); let request = GetVersionRequest {}; let request_packet = request.serialize_to_packet(); @@ -383,7 +426,7 @@ fn secret_management_malformed_request(instance: String) { #[rdroidtest(get_instances())] fn secret_management_store_get_secret_found(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); @@ -393,7 +436,7 @@ fn secret_management_store_get_secret_found(instance: String) { #[rdroidtest(get_instances())] fn secret_management_store_get_secret_not_found(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); // Store a secret (corresponding to an id). sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); @@ -404,7 +447,7 @@ fn secret_management_store_get_secret_not_found(instance: String) { #[rdroidtest(get_instances())] fn secretkeeper_store_delete_ids(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); @@ -420,7 +463,7 @@ fn secretkeeper_store_delete_ids(instance: String) { #[rdroidtest(get_instances())] fn secretkeeper_store_delete_multiple_ids(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); @@ -431,7 +474,7 @@ fn secretkeeper_store_delete_multiple_ids(instance: String) { } #[rdroidtest(get_instances())] fn secretkeeper_store_delete_duplicate_ids(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); @@ -444,7 +487,7 @@ fn secretkeeper_store_delete_duplicate_ids(instance: String) { #[rdroidtest(get_instances())] fn secretkeeper_store_delete_nonexistent(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); @@ -459,7 +502,7 @@ fn secretkeeper_store_delete_nonexistent(instance: String) { #[rdroidtest(get_instances())] #[ignore_if(|p| p != "nonsecure")] fn secretkeeper_store_delete_all(instance: String) { - let mut sk_client = SkClient::new(&instance); + let mut sk_client = SkClient::new(&instance).unwrap(); sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); @@ -486,7 +529,7 @@ fn secretkeeper_store_delete_all(instance: String) { fn secret_management_replay_protection_seq_num(instance: String) { let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); - let sk_client = SkClient::with_identity(&instance, dice_chain); + let sk_client = SkClient::with_identity(&instance, dice_chain).unwrap(); // Construct encoded request packets for the test let (req_1, req_2, req_3) = construct_secret_management_requests(sealing_policy); @@ -522,7 +565,7 @@ fn secret_management_replay_protection_seq_num(instance: String) { fn secret_management_replay_protection_seq_num_per_session(instance: String) { let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); - let sk_client = SkClient::with_identity(&instance, dice_chain); + let sk_client = SkClient::with_identity(&instance, dice_chain).unwrap(); // Construct encoded request packets for the test let (req_1, _, _) = construct_secret_management_requests(sealing_policy); @@ -538,7 +581,7 @@ fn secret_management_replay_protection_seq_num_per_session(instance: String) { assert_eq!(res.response_type().unwrap(), ResponseType::Success); // Start another session - let sk_client_diff = SkClient::new(&instance); + let sk_client_diff = SkClient::new(&instance).unwrap(); // Check first request/response is with seq_0 is successful let res = ResponsePacket::from_slice( &sk_client_diff.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(), @@ -553,7 +596,7 @@ fn secret_management_replay_protection_seq_num_per_session(instance: String) { fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: String) { let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); - let sk_client = SkClient::with_identity(&instance, dice_chain); + let sk_client = SkClient::with_identity(&instance, dice_chain).unwrap(); // Construct encoded request packets for the test let (req_1, req_2, _) = construct_secret_management_requests(sealing_policy); @@ -578,18 +621,19 @@ fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: Str #[rdroidtest(get_instances())] fn secret_management_policy_gate(instance: String) { let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 100); - let mut sk_client_original = SkClient::with_identity(&instance, dice_chain); + let mut sk_client_original = SkClient::with_identity(&instance, dice_chain).unwrap(); sk_client_original.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); assert_eq!(sk_client_original.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); // Start a session with higher security_version & get the stored secret. let dice_chain_upgraded = make_explicit_owned_dice(/*Security version in a node */ 101); - let mut sk_client_upgraded = SkClient::with_identity(&instance, dice_chain_upgraded); + let mut sk_client_upgraded = SkClient::with_identity(&instance, dice_chain_upgraded).unwrap(); assert_eq!(sk_client_upgraded.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); // Start a session with lower security_version (This should be denied access to the secret). let dice_chain_downgraded = make_explicit_owned_dice(/*Security version in a node */ 99); - let mut sk_client_downgraded = SkClient::with_identity(&instance, dice_chain_downgraded); + let mut sk_client_downgraded = + SkClient::with_identity(&instance, dice_chain_downgraded).unwrap(); assert!(matches!( sk_client_downgraded.get(&ID_EXAMPLE).unwrap_err(), Error::SecretkeeperError(SecretkeeperError::DicePolicyError) @@ -610,6 +654,30 @@ fn secret_management_policy_gate(instance: String) { )); } +// This test checks that the identity of Secretkeeper (in context of AuthGraph key exchange) is +// same as the one advertized in Linux device tree. This is only expected from `default` instance. +#[rdroidtest(get_instances())] +#[ignore_if(|p| p != "default")] +fn secretkeeper_check_identity(instance: String) { + let sk_key = get_secretkeeper_identity() + .expect("Failed to extract identity of default instance from device tree"); + // Create a session with this expected identity. This succeeds only if the identity used by + // Secretkeeper is sk_key. + let _ = SkClient::with_expected_sk_identity(&instance, sk_key).unwrap(); + // Create a session using any other expected sk identity, this should fail. Note that the + // failure arises from validation which happens at the local participant. + let mut any_other_key = CoseKey::default(); + any_other_key.canonicalize(CborOrdering::Lexicographic); + let err = SkClient::with_expected_sk_identity(&instance, any_other_key).unwrap_err(); + assert!(matches!( + err, + SkClientError::AuthgraphError(authgraph_core::error::Error( + authgraph_wire::ErrorCode::InvalidPeerKeKey, + _ + )) + )); +} + // Helper method that constructs 3 SecretManagement requests. Callers would usually not care about // what each of the request concretely is. fn construct_secret_management_requests(sealing_policy: Vec) -> (Vec, Vec, Vec) { -- GitLab From 0ca29273dcc407e6da7f27a2eccb71fa23d6b78f Mon Sep 17 00:00:00 2001 From: Sally Qi Date: Fri, 23 Feb 2024 11:07:08 -0800 Subject: [PATCH 380/418] Add vts case for OverlayProperties#isMixedColorSpacesSupported. - add sRGB and DisplayP3 layers in HWC, if mixedColorSpaces is supported, only DPU composition happens. Bug: 311252937 Test: this Change-Id: I400a6dd18a05bbdf69e249907e13a4fa7eafbf01 --- graphics/composer/aidl/vts/ReadbackVts.cpp | 3 +- .../VtsHalGraphicsComposer3_ReadbackTest.cpp | 77 +++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/graphics/composer/aidl/vts/ReadbackVts.cpp b/graphics/composer/aidl/vts/ReadbackVts.cpp index c72ec6974f..283b8ce2e4 100644 --- a/graphics/composer/aidl/vts/ReadbackVts.cpp +++ b/graphics/composer/aidl/vts/ReadbackVts.cpp @@ -67,8 +67,9 @@ Dataspace ReadbackHelper::getDataspaceForColorMode(ColorMode mode) { case ColorMode::DISPLAY_P3: return Dataspace::DISPLAY_P3; case ColorMode::SRGB: + return Dataspace::SRGB; default: - return common::Dataspace::UNKNOWN; + return Dataspace::UNKNOWN; } } diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp index 3f82925455..d4ce3ba2b6 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp @@ -522,6 +522,83 @@ TEST_P(GraphicsCompositionTest, ClientComposition) { } } +TEST_P(GraphicsCompositionTest, MixedColorSpaces) { + ASSERT_TRUE( + mComposerClient->setClientTargetSlotCount(getPrimaryDisplayId(), kClientTargetSlotCount) + .isOk()); + const auto& [status, properties] = mComposerClient->getOverlaySupport(); + if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC && + status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) { + GTEST_SUCCEED() << "getOverlaySupport is not supported"; + return; + } + + if (properties.supportMixedColorSpaces == false) { + GTEST_SUCCEED() << "supportMixedColorSpaces is not supported"; + return; + } + + for (ColorMode mode : mTestColorModes) { + EXPECT_TRUE(mComposerClient + ->setColorMode(getPrimaryDisplayId(), mode, RenderIntent::COLORIMETRIC) + .isOk()); + + bool isSupported; + ASSERT_NO_FATAL_FAILURE(isSupported = getHasReadbackBuffer()); + if (!isSupported) { + GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace"; + return; + } + + // sRGB layer + auto srgbLayer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight() / 2, PixelFormat::RGBA_8888, *mWriter); + std::vector sRgbDeviceColors(srgbLayer->getWidth() * srgbLayer->getHeight()); + ReadbackHelper::fillColorsArea(sRgbDeviceColors, getDisplayWidth(), + {0, 0, static_cast(srgbLayer->getWidth()), + static_cast(srgbLayer->getHeight())}, + GREEN); + srgbLayer->setDisplayFrame({0, 0, static_cast(srgbLayer->getWidth()), + static_cast(srgbLayer->getHeight())}); + srgbLayer->setZOrder(10); + srgbLayer->setDataspace(Dataspace::SRGB); + ASSERT_NO_FATAL_FAILURE(srgbLayer->setBuffer(sRgbDeviceColors)); + + // display P3 layer + auto displayP3Layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight() / 2, PixelFormat::RGBA_8888, *mWriter); + std::vector displayP3DeviceColors( + static_cast(displayP3Layer->getWidth() * displayP3Layer->getHeight())); + ReadbackHelper::fillColorsArea(displayP3DeviceColors, getDisplayWidth(), + {0, 0, static_cast(displayP3Layer->getWidth()), + static_cast(displayP3Layer->getHeight())}, + RED); + displayP3Layer->setDisplayFrame( + {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}); + displayP3Layer->setZOrder(10); + displayP3Layer->setDataspace(Dataspace::DISPLAY_P3); + ASSERT_NO_FATAL_FAILURE(displayP3Layer->setBuffer(displayP3DeviceColors)); + + writeLayers({srgbLayer, displayP3Layer}); + + mWriter->validateDisplay(getPrimaryDisplayId(), ComposerClientWriter::kNoTimestamp, + VtsComposerClient::kNoFrameIntervalNs); + execute(); + + auto changedCompositionTypes = mReader.takeChangedCompositionTypes(getPrimaryDisplayId()); + ASSERT_TRUE(changedCompositionTypes.empty()); + + mWriter->presentDisplay(getPrimaryDisplayId()); + execute(); + + changedCompositionTypes = mReader.takeChangedCompositionTypes(getPrimaryDisplayId()); + ASSERT_TRUE(changedCompositionTypes.empty()); + ASSERT_TRUE(mReader.takeErrors().empty()); + } +} + TEST_P(GraphicsCompositionTest, DeviceAndClientComposition) { ASSERT_TRUE( mComposerClient->setClientTargetSlotCount(getPrimaryDisplayId(), kClientTargetSlotCount) -- GitLab From b66a37a8e2a2d17304b049232ea5d7ac8c8d5da2 Mon Sep 17 00:00:00 2001 From: Subrahmanya Manikanta Venkateswarlu Bhamidipati Kameswara Sri Date: Mon, 26 Feb 2024 19:23:44 +0000 Subject: [PATCH 381/418] Fixed issue converting Asn1 time to posix on 32-bit systems. Used ASN1_TIME_to_posix API instead of ASN1_TIME_to_time_t to avoid integer overflow on 32-bit systems. Bug: 325853206 Test: vts -m VtsAidlKeyMintTarget Change-Id: I7a01a521d389482a61ad9974b7e40eaa099c3571 --- security/keymint/aidl/vts/functional/KeyMintTest.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index a8f41c3d6a..9575183087 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -1086,6 +1086,7 @@ TEST_P(NewKeyGenerationTest, RsaWithSpecifiedValidity) { }; for (auto notBefore : test_vector_not_before_millis) { uint64_t notAfter = notBefore + 378691200000 /* 12 years milliseconds*/; + SCOPED_TRACE(testing::Message() << "notBefore: " << notBefore << " notAfter: " << notAfter); ASSERT_EQ(ErrorCode::OK, GenerateKey(AuthorizationSetBuilder() .RsaSigningKey(2048, 65537) @@ -1101,14 +1102,14 @@ TEST_P(NewKeyGenerationTest, RsaWithSpecifiedValidity) { const ASN1_TIME* not_before = X509_get0_notBefore(cert.get()); ASSERT_NE(not_before, nullptr); - time_t not_before_time; - ASSERT_EQ(ASN1_TIME_to_time_t(not_before, ¬_before_time), 1); + int64_t not_before_time; + ASSERT_EQ(ASN1_TIME_to_posix(not_before, ¬_before_time), 1); EXPECT_EQ(not_before_time, (notBefore / 1000)); const ASN1_TIME* not_after = X509_get0_notAfter(cert.get()); ASSERT_NE(not_after, nullptr); - time_t not_after_time; - ASSERT_EQ(ASN1_TIME_to_time_t(not_after, ¬_after_time), 1); + int64_t not_after_time; + ASSERT_EQ(ASN1_TIME_to_posix(not_after, ¬_after_time), 1); EXPECT_EQ(not_after_time, (notAfter / 1000)); } } -- GitLab From 1bf90fa404321271f7ba67aabc1cc11543492144 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Mon, 26 Feb 2024 11:14:36 -0800 Subject: [PATCH 382/418] Fix a bug in VUR VTS test. The logic is to check whether each element is not the same as previous element. We forgot to increase i. Test: Presubmit Bug: 326987403 Change-Id: I5cab61a86092fb14d17551a533e8cdaff1abfee5 --- .../vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index ccc0f3f91c..4ea6dfe5f2 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -640,13 +640,12 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribe_enableVurIfSupported) { size_t i = 0; float previousValue; for (const auto& [_, value] : valuesByTimestamp) { - if (i == 0) { - previousValue = value; - } else { + if (i != 0) { ASSERT_FALSE(value != previousValue) << "received duplicate value: " << value << " when variable update rate is true"; - previousValue = value; } + previousValue = value; + i++; } } -- GitLab From 2586aa7676788e330de316cf99817ca59b508f7e Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Mon, 26 Feb 2024 19:30:42 +0000 Subject: [PATCH 383/418] Populate legacy HAL stub for wifi_virtual_interface_create_with_vendor_data. Bug: 296069900 Test: m Change-Id: I11bf4413cd2484e033443cdb10bec16f4ef01c20 --- wifi/aidl/default/wifi_legacy_hal_stubs.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/wifi/aidl/default/wifi_legacy_hal_stubs.cpp b/wifi/aidl/default/wifi_legacy_hal_stubs.cpp index 3e4afd0427..73ea08837f 100644 --- a/wifi/aidl/default/wifi_legacy_hal_stubs.cpp +++ b/wifi/aidl/default/wifi_legacy_hal_stubs.cpp @@ -188,6 +188,7 @@ bool initHalFuncTableWithStubs(wifi_hal_fn* hal_fn) { populateStubFor(&hal_fn->wifi_twt_session_resume); populateStubFor(&hal_fn->wifi_twt_session_teardown); populateStubFor(&hal_fn->wifi_twt_session_get_stats); + populateStubFor(&hal_fn->wifi_virtual_interface_create_with_vendor_data); return true; } -- GitLab From 759c9cb28be014ddce8785e9c81bf3610eb273ab Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Mon, 26 Feb 2024 18:24:23 +0000 Subject: [PATCH 384/418] Spatializer: return supportedChannelLayout as part of parameter Bug: 307368176 Test: atest EffectsFactoryHalInterfaceTest Change-Id: I1a2a445b5c94cbd02acb4160c7f54d6733bff6aa --- audio/aidl/default/spatializer/SpatializerSw.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/audio/aidl/default/spatializer/SpatializerSw.cpp b/audio/aidl/default/spatializer/SpatializerSw.cpp index ef86ddb2a1..ab4a53e13b 100644 --- a/audio/aidl/default/spatializer/SpatializerSw.cpp +++ b/audio/aidl/default/spatializer/SpatializerSw.cpp @@ -65,8 +65,6 @@ namespace aidl::android::hardware::audio::effect { const std::string SpatializerSw::kEffectName = "SpatializerSw"; const std::vector SpatializerSw::kRanges = { - MAKE_RANGE(Spatializer, supportedChannelLayout, std::vector{}, - std::vector{}), MAKE_RANGE(Spatializer, spatializationLevel, Spatialization::Level::NONE, Spatialization::Level::BED_PLUS_OBJECTS), MAKE_RANGE(Spatializer, spatializationMode, Spatialization::Mode::BINAURAL, @@ -175,11 +173,19 @@ std::optional SpatializerSwContext::getParam(TAG tag) { if (mParamsMap.find(tag) != mParamsMap.end()) { return mParamsMap.at(tag); } + if (tag == Spatializer::supportedChannelLayout) { + return Spatializer::make( + {AudioChannelLayout::make( + AudioChannelLayout::LAYOUT_5POINT1)}); + } return std::nullopt; } template ndk::ScopedAStatus SpatializerSwContext::setParam(TAG tag, Spatializer spatializer) { + RETURN_IF(tag == Spatializer::supportedChannelLayout, EX_ILLEGAL_ARGUMENT, + "supportedChannelLayoutGetOnly"); + mParamsMap[tag] = spatializer; return ndk::ScopedAStatus::ok(); } -- GitLab From 4fc10f2f75a3d3e71c3a8b1553f7f99a55c46288 Mon Sep 17 00:00:00 2001 From: maheshkkv Date: Mon, 26 Feb 2024 10:58:34 -0800 Subject: [PATCH 385/418] Add vts test for 802.11az NTB ranging Bug: 295619650 Test: atest VtsHalWifiRttControllerTargetTest Change-Id: I9092aa2c020bf2a4ef9082b34eac096d10aecfd5 --- .../wifi_rtt_controller_aidl_test.cpp | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp index 9c6a29ef90..1596602827 100644 --- a/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp @@ -160,6 +160,48 @@ TEST_P(WifiRttControllerAidlTest, EnableResponder) { EXPECT_TRUE(wifi_rtt_controller_->enableResponder(cmdId, channelInfo, 10, responder).isOk()); } +/* + * Request80211azNtbRangeMeasurement + * Tests the two sided 11az non-trigger based ranging - 802.11az NTB FTM protocol. + */ +TEST_P(WifiRttControllerAidlTest, Request80211azNtbRangeMeasurement) { + if (interface_version_ < 2) { + GTEST_SKIP() << "Request80211azNtbRangeMeasurement is available as of RttController V2"; + } + + RttCapabilities caps = getCapabilities(); + if (!caps.ntbInitiatorSupported) { + GTEST_SKIP() << "Skipping 11az NTB RTT since driver/fw does not support"; + } + + RttConfig config; + config.addr = {{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}}; + config.type = RttType::TWO_SIDED_11AZ_NTB; + config.peer = RttPeerType::AP; + config.channel.width = WifiChannelWidthInMhz::WIDTH_80; + config.channel.centerFreq = 5180; + config.channel.centerFreq0 = 5210; + config.channel.centerFreq1 = 0; + config.bw = RttBw::BW_20MHZ; + config.preamble = RttPreamble::HT; + config.mustRequestLci = false; + config.mustRequestLcr = false; + config.numFramesPerBurst = 8; + config.numRetriesPerRttFrame = 0; + config.numRetriesPerFtmr = 0; + // 11az non-trigger based minimum measurement time in units of 100 microseconds. + config.ntbMinMeasurementTime = 2500; + // 11az non-trigger based maximum measurement time in units of 10 milliseconds. + config.ntbMaxMeasurementTime = 1500; + + int cmdId = 55; + std::vector configs = {config}; + EXPECT_TRUE(wifi_rtt_controller_->rangeRequest(cmdId, configs).isOk()); + + // Sleep for 2 seconds to wait for driver/firmware to complete RTT. + sleep(2); +} + /* * Request2SidedRangeMeasurement * Tests the two sided ranging - 802.11mc FTM protocol. -- GitLab From fb0bc0ad2dd1e0672002a5169aefcf6785283d00 Mon Sep 17 00:00:00 2001 From: maheshkkv Date: Mon, 26 Feb 2024 12:16:12 -0800 Subject: [PATCH 386/418] Add vts test for TWT Bug: 326998176 Test: atest VtsHalWifiStaIfaceTargetTest Change-Id: I8efae781963d1e3bec26a2fcc73e174ccbf16f2f --- .../functional/wifi_sta_iface_aidl_test.cpp | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) 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 e8e19ae8e6..51b730179d 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -40,6 +40,8 @@ using aidl::android::hardware::wifi::StaLinkLayerStats; using aidl::android::hardware::wifi::StaRoamingCapabilities; using aidl::android::hardware::wifi::StaRoamingConfig; using aidl::android::hardware::wifi::StaRoamingState; +using aidl::android::hardware::wifi::TwtCapabilities; +using aidl::android::hardware::wifi::TwtRequest; using aidl::android::hardware::wifi::WifiBand; using aidl::android::hardware::wifi::WifiDebugRxPacketFateReport; using aidl::android::hardware::wifi::WifiDebugTxPacketFateReport; @@ -51,6 +53,7 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { stopWifiService(getInstanceName()); wifi_sta_iface_ = getWifiStaIface(getInstanceName()); ASSERT_NE(nullptr, wifi_sta_iface_.get()); + ASSERT_TRUE(wifi_sta_iface_->getInterfaceVersion(&interface_version_).isOk()); } void TearDown() override { stopWifiService(getInstanceName()); } @@ -69,6 +72,7 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { } std::shared_ptr wifi_sta_iface_; + int interface_version_; // Checks if the mDNS Offload is supported by any NIC. bool isMdnsOffloadPresentInNIC() { @@ -356,6 +360,91 @@ TEST_P(WifiStaIfaceAidlTest, CachedScanData) { } } +TEST_P(WifiStaIfaceAidlTest, TwtGetCapabilities) { + if (interface_version_ < 2) { + GTEST_SKIP() << "TwtGetCapabilities is available as of sta_iface V2"; + } + + TwtCapabilities twt_capabilities = {}; + auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities); + if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { + GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor"; + } + EXPECT_TRUE(status.isOk()); + if (!twt_capabilities.isTwtRequesterSupported) { + GTEST_SKIP() << "TWT is not supported"; + } + + EXPECT_GT(twt_capabilities.minWakeDurationUs, 0); + EXPECT_GT(twt_capabilities.maxWakeDurationUs, 0); + EXPECT_GT(twt_capabilities.minWakeIntervalUs, 0); + EXPECT_GT(twt_capabilities.maxWakeIntervalUs, 0); +} + +TEST_P(WifiStaIfaceAidlTest, TwtSessionSetup) { + if (interface_version_ < 2) { + GTEST_SKIP() << "TwtSessionSetup is available as of sta_iface V2"; + } + + TwtCapabilities twt_capabilities = {}; + auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities); + if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { + GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor"; + } + EXPECT_TRUE(status.isOk()); + if (!twt_capabilities.isTwtRequesterSupported) { + GTEST_SKIP() << "TWT is not supported"; + } + + TwtRequest twtRequest; + twtRequest.mloLinkId = 0; + twtRequest.minWakeDurationUs = twt_capabilities.minWakeDurationUs; + twtRequest.maxWakeDurationUs = twt_capabilities.maxWakeDurationUs; + twtRequest.minWakeIntervalUs = twt_capabilities.minWakeIntervalUs; + twtRequest.maxWakeIntervalUs = twt_capabilities.maxWakeIntervalUs; + EXPECT_TRUE(wifi_sta_iface_->twtSessionSetup(1, twtRequest).isOk()); +} + +TEST_P(WifiStaIfaceAidlTest, TwtSessionGetStats) { + if (interface_version_ < 2) { + GTEST_SKIP() << "TwtSessionGetStats is available as of sta_iface V2"; + } + + TwtCapabilities twt_capabilities = {}; + auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities); + if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { + GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor"; + } + EXPECT_TRUE(status.isOk()); + if (!twt_capabilities.isTwtRequesterSupported) { + GTEST_SKIP() << "TWT is not supported"; + } + + // Expecting a IWifiStaIfaceEventCallback.onTwtFailure() with INVALID_PARAMS + // as the error code. + EXPECT_TRUE(wifi_sta_iface_->twtSessionGetStats(1, 10).isOk()); +} + +TEST_P(WifiStaIfaceAidlTest, TwtSessionTeardown) { + if (interface_version_ < 2) { + GTEST_SKIP() << "TwtSessionTeardown is available as of sta_iface V3"; + } + + TwtCapabilities twt_capabilities = {}; + auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities); + if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { + GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor"; + } + EXPECT_TRUE(status.isOk()); + if (!twt_capabilities.isTwtRequesterSupported) { + GTEST_SKIP() << "TWT is not supported"; + } + + // Expecting a IWifiStaIfaceEventCallback.onTwtFailure() with INVALID_PARAMS + // as the error code. + EXPECT_TRUE(wifi_sta_iface_->twtSessionTeardown(1, 10).isOk()); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(WifiStaIfaceAidlTest); INSTANTIATE_TEST_SUITE_P(WifiTest, WifiStaIfaceAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames(IWifi::descriptor)), -- GitLab From 8351f33b2b5a4be356605251e2ea26c3c03d946f Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Mon, 7 Aug 2023 11:53:46 +0100 Subject: [PATCH 387/418] KeyMint: use a smaller invalid IMEI value The invalid value used for the second IMEI attestation test is potentially wrong in two ways: - It doesn't match the provisioned value. - It's not a valid IMEI, not least because it is longer than 16 bytes. Make the test value shorter so the second failure doesn't apply and the test can reliably expect CANNOT_ATTEST_IDS. Bug: 292959871 Bug: 327123694 Test: VtsAidlKeyMintTargetTest Change-Id: If8c6b9e08b48e6caf5c767578e1ac43964214619 (cherry picked from commit 0215cb3d3ef4e5421a1f4c414b7a20b83edf2576) --- security/keymint/aidl/vts/functional/AttestKeyTest.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/security/keymint/aidl/vts/functional/AttestKeyTest.cpp b/security/keymint/aidl/vts/functional/AttestKeyTest.cpp index 6d289ecda8..4ae0383ef5 100644 --- a/security/keymint/aidl/vts/functional/AttestKeyTest.cpp +++ b/security/keymint/aidl/vts/functional/AttestKeyTest.cpp @@ -939,7 +939,9 @@ TEST_P(AttestKeyTest, EcdsaAttestationMismatchID) { .Authorization(TAG_ATTESTATION_ID_MODEL, "malicious-model"); if (isSecondImeiIdAttestationRequired()) { - attestation_id_tags.Authorization(TAG_ATTESTATION_ID_SECOND_IMEI, "invalid-second-imei"); + // Note: the invalid value here is < 16 bytes long to avoid triggering any implementation + // checks on valid IMEI lengths. + attestation_id_tags.Authorization(TAG_ATTESTATION_ID_SECOND_IMEI, "invalid-imei2"); } vector key_blob; vector key_characteristics; -- GitLab From f7c36d4a3bb0c09d8fde8e2187ed45d5255ed691 Mon Sep 17 00:00:00 2001 From: Matt Buckley Date: Tue, 27 Feb 2024 01:31:43 +0000 Subject: [PATCH 388/418] Add Vts tests for FMQ Ensure FMQ is supported through VTS, actually running, and can process a variety of inputs. Bug: 327047057 Test: atest VtsHalPowerTargetTest Change-Id: I70edaf41fca544bfd48e1ce2a99f48e4a6a835b8 --- power/aidl/default/Android.bp | 1 + power/aidl/default/Power.cpp | 14 ++- power/aidl/vts/VtsHalPowerTargetTest.cpp | 127 ++++++++++++++++++++--- 3 files changed, 122 insertions(+), 20 deletions(-) diff --git a/power/aidl/default/Android.bp b/power/aidl/default/Android.bp index b4ccc7db6b..4926b91830 100644 --- a/power/aidl/default/Android.bp +++ b/power/aidl/default/Android.bp @@ -35,6 +35,7 @@ cc_binary { "libbinder_ndk", "libcutils", "libfmq", + "libutils", ], srcs: [ "main.cpp", diff --git a/power/aidl/default/Power.cpp b/power/aidl/default/Power.cpp index 8f15663db9..64294e5229 100644 --- a/power/aidl/default/Power.cpp +++ b/power/aidl/default/Power.cpp @@ -20,6 +20,7 @@ #include #include #include +#include namespace aidl { namespace android { @@ -85,10 +86,17 @@ ndk::ScopedAStatus Power::createHintSessionWithConfig( } ndk::ScopedAStatus Power::getSessionChannel(int32_t, int32_t, ChannelConfig* _aidl_return) { - static AidlMessageQueue stubQueue{1, true}; + static AidlMessageQueue stubQueue{20, true}; + static std::thread stubThread([&] { + ChannelMessage data; + // This loop will only run while there is data waiting + // to be processed, and blocks on a futex all other times + while (stubQueue.readBlocking(&data, 1, 0)) { + } + }); _aidl_return->channelDescriptor = stubQueue.dupeDesc(); - _aidl_return->readFlagBitmask = 0; - _aidl_return->writeFlagBitmask = 0; + _aidl_return->readFlagBitmask = 0x01; + _aidl_return->writeFlagBitmask = 0x02; _aidl_return->eventFlagDescriptor = std::nullopt; return ndk::ScopedAStatus::ok(); } diff --git a/power/aidl/vts/VtsHalPowerTargetTest.cpp b/power/aidl/vts/VtsHalPowerTargetTest.cpp index d8e73bf4b0..53fcef1a41 100644 --- a/power/aidl/vts/VtsHalPowerTargetTest.cpp +++ b/power/aidl/vts/VtsHalPowerTargetTest.cpp @@ -30,13 +30,13 @@ #include #include #include "aidl/android/hardware/common/fmq/SynchronizedReadWrite.h" -#include "fmq/EventFlag.h" namespace aidl::android::hardware::power { namespace { using ::aidl::android::hardware::common::fmq::SynchronizedReadWrite; using ::android::AidlMessageQueue; +using ::android::hardware::EventFlag; using android::hardware::power::Boost; using android::hardware::power::ChannelConfig; using android::hardware::power::ChannelMessage; @@ -46,8 +46,12 @@ using android::hardware::power::Mode; using android::hardware::power::SessionHint; using android::hardware::power::SessionMode; using android::hardware::power::WorkDuration; +using ChannelMessageContents = ChannelMessage::ChannelMessageContents; +using ModeSetter = ChannelMessage::ChannelMessageContents::SessionModeSetter; +using MessageTag = ChannelMessage::ChannelMessageContents::Tag; using SessionMessageQueue = AidlMessageQueue; +using FlagMessageQueue = AidlMessageQueue; const std::vector kBoosts{ndk::enum_range().begin(), ndk::enum_range().end()}; @@ -139,6 +143,51 @@ class HintSessionAidl : public PowerAidl { std::shared_ptr mSession; }; +class FMQAidl : public PowerAidl { + public: + virtual void SetUp() override { + PowerAidl::SetUp(); + if (mServiceVersion < 5) { + GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; + } + + auto status = + power->createHintSessionWithConfig(getpid(), getuid(), kSelfTids, 16666666L, + SessionTag::OTHER, &mSessionConfig, &mSession); + ASSERT_TRUE(status.isOk()); + ASSERT_NE(nullptr, mSession); + + status = power->getSessionChannel(getpid(), getuid(), &mChannelConfig); + ASSERT_TRUE(status.isOk()); + mChannel = std::make_shared(mChannelConfig.channelDescriptor, true); + ASSERT_TRUE(mChannel->isValid()); + + if (mChannelConfig.eventFlagDescriptor.has_value()) { + mFlagChannel = + std::make_shared(*mChannelConfig.eventFlagDescriptor, true); + ASSERT_EQ(EventFlag::createEventFlag(mFlagChannel->getEventFlagWord(), &mEventFlag), + ::android::OK); + } else { + ASSERT_EQ(EventFlag::createEventFlag(mChannel->getEventFlagWord(), &mEventFlag), + ::android::OK); + } + + ASSERT_NE(mEventFlag, nullptr); + } + virtual void TearDown() { + mSession->close(); + ASSERT_TRUE(power->closeSessionChannel(getpid(), getuid()).isOk()); + } + + protected: + std::shared_ptr mSession; + std::shared_ptr mChannel; + std::shared_ptr mFlagChannel; + SessionConfig mSessionConfig; + ChannelConfig mChannelConfig; + ::android::hardware::EventFlag* mEventFlag; +}; + TEST_P(PowerAidl, setMode) { for (const auto& mode : kModes) { ASSERT_TRUE(power->setMode(mode, true).isOk()); @@ -213,16 +262,12 @@ TEST_P(PowerAidl, createHintSessionWithConfig) { ASSERT_NE(nullptr, session); } -TEST_P(PowerAidl, getAndCloseSessionChannel) { - if (mServiceVersion < 5) { - GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; - } - ChannelConfig config; - auto status = power->getSessionChannel(getpid(), getuid(), &config); - ASSERT_TRUE(status.isOk()); - auto messageQueue = std::make_shared(config.channelDescriptor, true); - ASSERT_TRUE(messageQueue->isValid()); - ASSERT_TRUE(power->closeSessionChannel(getpid(), getuid()).isOk()); +// FIXED_PERFORMANCE mode is required for all devices which ship on Android 11 +// or later +TEST_P(PowerAidl, hasFixedPerformance) { + bool supported; + ASSERT_TRUE(power->isModeSupported(Mode::FIXED_PERFORMANCE, &supported).isOk()); + ASSERT_TRUE(supported); } TEST_P(HintSessionAidl, createAndCloseHintSession) { @@ -295,16 +340,61 @@ TEST_P(HintSessionAidl, getSessionConfig) { ASSERT_TRUE(mSession->getSessionConfig(&config).isOk()); } -// FIXED_PERFORMANCE mode is required for all devices which ship on Android 11 -// or later -TEST_P(PowerAidl, hasFixedPerformance) { - bool supported; - ASSERT_TRUE(power->isModeSupported(Mode::FIXED_PERFORMANCE, &supported).isOk()); - ASSERT_TRUE(supported); +TEST_P(FMQAidl, getAndCloseSessionChannel) {} + +TEST_P(FMQAidl, writeItems) { + std::vector messages{ + {.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + {.durationNanos = 1000, + .workPeriodStartTimestampNanos = 10, + .cpuDurationNanos = 900, + .gpuDurationNanos = 100})}, + {.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + {.modeInt = SessionMode::POWER_EFFICIENCY, .enabled = true})}, + {.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + SessionHint::CPU_LOAD_UP)}, + {.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + 10000000 /* 10ms */)}, + }; + for (auto& message : messages) { + ASSERT_TRUE(mChannel->writeBlocking(&message, 1, mChannelConfig.readFlagBitmask, + mChannelConfig.writeFlagBitmask, 100000000, + mEventFlag)); + } + // Make sure this still works after everything else is done to check crash + ASSERT_TRUE(mSession->setThreads(kSelfTids).isOk()); +} + +TEST_P(FMQAidl, writeExcess) { + std::vector messages; + size_t channelSize = mChannel->getQuantumCount(); + for (size_t i = 0; i < channelSize; ++i) { + messages.push_back({.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + SessionHint::CPU_LOAD_UP)}); + } + ASSERT_TRUE(mChannel->writeBlocking(messages.data(), messages.size(), + mChannelConfig.readFlagBitmask, + mChannelConfig.writeFlagBitmask, 100000000, mEventFlag)); + ASSERT_TRUE(mChannel->writeBlocking(messages.data(), messages.size(), + mChannelConfig.readFlagBitmask, + mChannelConfig.writeFlagBitmask, 1000000000, mEventFlag)); + // Make sure this still works after everything else is done to check crash + ASSERT_TRUE(mSession->setThreads(kSelfTids).isOk()); } GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(PowerAidl); GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(HintSessionAidl); +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(FMQAidl); INSTANTIATE_TEST_SUITE_P(Power, PowerAidl, testing::ValuesIn(::android::getAidlHalInstanceNames(IPower::descriptor)), @@ -312,6 +402,9 @@ INSTANTIATE_TEST_SUITE_P(Power, PowerAidl, INSTANTIATE_TEST_SUITE_P(Power, HintSessionAidl, testing::ValuesIn(::android::getAidlHalInstanceNames(IPower::descriptor)), ::android::PrintInstanceNameToString); +INSTANTIATE_TEST_SUITE_P(Power, FMQAidl, + testing::ValuesIn(::android::getAidlHalInstanceNames(IPower::descriptor)), + ::android::PrintInstanceNameToString); } // namespace } // namespace aidl::android::hardware::power -- GitLab From de9703870db9b48dc81739f404a020f2a2dc8d5e Mon Sep 17 00:00:00 2001 From: Stephanie Bak Date: Wed, 28 Feb 2024 08:04:21 +0000 Subject: [PATCH 389/418] Add VTS for roaming mode control Bug: 269196966 Change-Id: I254254ddae535cd7822e6797773e984047359814 Test: atest VtsHalWifiStaIfaceTargetTest --- .../vts/functional/wifi_sta_iface_aidl_test.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 51b730179d..b426cdbf1c 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -316,6 +316,21 @@ TEST_P(WifiStaIfaceAidlTest, RoamingControl) { EXPECT_TRUE(wifi_sta_iface_->setRoamingState(StaRoamingState::ENABLED).isOk()); } +/* + * RoamingModeControl + */ +TEST_P(WifiStaIfaceAidlTest, RoamingModeControl) { + if (interface_version_ < 2) { + GTEST_SKIP() << "Roaming mode control is available as of sta_iface V2"; + } + if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::ROAMING_MODE_CONTROL)) { + GTEST_SKIP() << "Roaming mode control is not supported."; + } + + // Enable aggressive roaming. + EXPECT_TRUE(wifi_sta_iface_->setRoamingState(StaRoamingState::AGGRESSIVE).isOk()); +} + /* * EnableNDOffload */ -- GitLab From 6ccd95611750399a94b4f6b8a75fc43e648967bd Mon Sep 17 00:00:00 2001 From: Jeff Pu Date: Wed, 21 Feb 2024 10:46:35 -0500 Subject: [PATCH 390/418] Refactor biometric virtual HAL config/control for additional ways besides system property Bug: 326227403 Test: atest android.hardware.biometrics.common.ConfigTest Change-Id: Id0aa4961cc732c23f5da140eca81470316834b70 --- biometrics/common/config/Android.bp | 48 ++++ biometrics/common/config/Config.cpp | 150 ++++++++++ .../common/config/include/config/Config.h | 105 +++++++ biometrics/common/config/tests/ConfigTest.cpp | 266 ++++++++++++++++++ biometrics/common/util/include/util/Util.h | 4 +- .../fingerprint/aidl/default/Android.bp | 23 +- .../aidl/default/FakeFingerprintEngine.cpp | 72 ++--- .../default/FakeFingerprintEngineUdfps.cpp | 3 +- .../aidl/default/FakeLockoutTracker.cpp | 15 +- .../fingerprint/aidl/default/Fingerprint.cpp | 26 +- .../aidl/default/FingerprintConfig.cpp | 109 +++++++ .../aidl/default/include/Fingerprint.h | 11 + .../aidl/default/include/FingerprintConfig.h | 27 ++ .../tests/FakeFingerprintEngineTest.cpp | 172 +++++------ .../tests/FakeFingerprintEngineUdfpsTest.cpp | 19 +- .../default/tests/FakeLockoutTrackerTest.cpp | 26 +- 16 files changed, 910 insertions(+), 166 deletions(-) create mode 100644 biometrics/common/config/Android.bp create mode 100644 biometrics/common/config/Config.cpp create mode 100644 biometrics/common/config/include/config/Config.h create mode 100644 biometrics/common/config/tests/ConfigTest.cpp create mode 100644 biometrics/fingerprint/aidl/default/FingerprintConfig.cpp create mode 100644 biometrics/fingerprint/aidl/default/include/FingerprintConfig.h diff --git a/biometrics/common/config/Android.bp b/biometrics/common/config/Android.bp new file mode 100644 index 0000000000..d38ffe861c --- /dev/null +++ b/biometrics/common/config/Android.bp @@ -0,0 +1,48 @@ +// +// Copyright (C) 2024 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +cc_library { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + name: "android.hardware.biometrics.common.config", + export_include_dirs: ["include"], + vendor: true, + srcs: [ + "Config.cpp", + ], + shared_libs: [ + "libbase", + "libbinder_ndk", + ], +} + +cc_test_host { + name: "android.hardware.biometrics.common.ConfigTest", + local_include_dirs: ["include"], + srcs: [ + "tests/ConfigTest.cpp", + "Config.cpp", + ], + shared_libs: [ + "libbase", + "libcutils", + "liblog", + ], + test_suites: ["general-tests"], +} diff --git a/biometrics/common/config/Config.cpp b/biometrics/common/config/Config.cpp new file mode 100644 index 0000000000..01ae86461d --- /dev/null +++ b/biometrics/common/config/Config.cpp @@ -0,0 +1,150 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "VirtualHalConfig" + +#include "config/Config.h" +#include +#include +#include "../../util/include/util/Util.h" + +using ::android::base::ParseInt; + +namespace aidl::android::hardware::biometrics { + +Config::Config() : mSource(Config::ConfigSourceType::SOURCE_SYSPROP) {} + +ConfigValue Config::parseBool(const std::string& value) { + OptBool res; + if (value == "true") + res.emplace(true); + else if (value == "false") + res.emplace(false); + else + LOG(ERROR) << "ERROR: invalid bool " << value; + return res; +} + +ConfigValue Config::parseString(const std::string& value) { + OptString res; + if (!value.empty()) res.emplace(value); + return res; +} + +ConfigValue Config::parseInt32(const std::string& value) { + OptInt32 res; + if (!value.empty()) { + std::int32_t val; + if (ParseInt(value, &val)) res.emplace(val); + } + return res; +} + +ConfigValue Config::parseInt64(const std::string& value) { + OptInt64 res; + if (!value.empty()) { + std::int64_t val = std::strtoull(value.c_str(), nullptr, 10); + if (val != 0LL or (val == 0LL && value == "0")) { + res.emplace(val); + } + } + return res; +} + +ConfigValue Config::parseIntVec(const std::string& value) { + OptIntVec res; + for (auto& i : Util::parseIntSequence(value)) { + res.push_back(i); + } + return res; +} + +void Config::init() { + LOG(INFO) << "calling init()"; + int len = 0; + Config::Data* pd = getConfigData(&len); + for (int i = 0; i < len; i++) { + LOG(INFO) << "init():" << pd->name; + pd->value = (this->*(pd->parser))(pd->defaultValue); + setConfig(pd->name, *pd); + ++pd; + } +} + +bool Config::setParam(const std::string& name, const std::string& value) { + auto it = mMap.find(name); + if (it == mMap.end()) { + LOG(ERROR) << "ERROR: setParam unknown config name " << name; + return false; + } + LOG(INFO) << "setParam name=" << name << "=" << value; + + it->second.value = (this->*(it->second.parser))(value); + + mSource = ConfigSourceType::SOURCE_AIDL; + + return true; +} + +ConfigValue Config::getInternal(const std::string& name) { + ConfigValue res; + + auto data = mMap[name]; + switch (mSource) { + case ConfigSourceType::SOURCE_SYSPROP: + res = data.getter(); + break; + case ConfigSourceType::SOURCE_AIDL: + res = data.value; + break; + case ConfigSourceType::SOURCE_FILE: + LOG(WARNING) << "Unsupported"; + break; + default: + LOG(ERROR) << " wrong srouce type " << (int)mSource; + break; + } + + return res; +} + +ConfigValue Config::getDefault(const std::string& name) { + return mMap[name].value; +} + +bool Config::setInternal(const std::string& name, const ConfigValue& val) { + bool res = false; + auto data = mMap[name]; + + switch (mSource) { + case ConfigSourceType::SOURCE_SYSPROP: + res = data.setter(val); + break; + case ConfigSourceType::SOURCE_AIDL: + data.value = val; + res = true; + break; + case ConfigSourceType::SOURCE_FILE: + LOG(WARNING) << "Unsupported"; + break; + default: + LOG(ERROR) << " wrong srouce type " << (int)mSource; + break; + } + + return res; +} +} // namespace aidl::android::hardware::biometrics diff --git a/biometrics/common/config/include/config/Config.h b/biometrics/common/config/include/config/Config.h new file mode 100644 index 0000000000..864e16465f --- /dev/null +++ b/biometrics/common/config/include/config/Config.h @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace aidl::android::hardware::biometrics { + +using OptBool = std::optional; +using OptInt32 = std::optional; +using OptInt64 = std::optional; +using OptString = std::optional; +using OptIntVec = std::vector>; + +using ConfigValue = std::variant; + +class Config { + public: + struct Data { + std::string name; + ConfigValue (*getter)(); + bool (*setter)(const ConfigValue&); + ConfigValue (Config::*parser)(const std::string&); + std::string defaultValue; + ConfigValue value; + }; + enum class ConfigSourceType { SOURCE_SYSPROP, SOURCE_AIDL, SOURCE_FILE }; + + public: + Config(); + virtual ~Config() = default; + + template + T get(const std::string& name) { + CHECK(mMap.count(name) > 0) << " biometric/config get invalid name: " << name; + std::optional optval = std::get>(getInternal(name)); + if (!optval) optval = std::get>(getDefault(name)); + if (optval) return optval.value(); + return T(); + } + template + bool set(const std::string& name, const T& val) { + CHECK(mMap.count(name) > 0) << " biometric/config set invalid name: " << name; + std::optional aval(val); + ConfigValue cval(aval); + return setInternal(name, cval); + } + template + T getopt(const std::string& name) { + CHECK(mMap.count(name) > 0) << " biometric/config get invalid name: " << name; + return std::get(getInternal(name)); + } + template + bool setopt(const std::string& name, const T& val) { + CHECK(mMap.count(name) > 0) << " biometric/config set invalid name: " << name; + ConfigValue cval(val); + return setInternal(name, cval); + } + + void init(); + + virtual Config::Data* getConfigData(int* size) = 0; + bool setParam(const std::string& name, const std::string& value); + + ConfigValue parseBool(const std::string& value); + ConfigValue parseString(const std::string& name); + ConfigValue parseInt32(const std::string& value); + ConfigValue parseInt64(const std::string& value); + ConfigValue parseIntVec(const std::string& value); + + protected: + void setConfig(const std::string& name, const Config::Data& value) { mMap[name] = value; } + + private: + ConfigValue getInternal(const std::string& name); + bool setInternal(const std::string& name, const ConfigValue& val); + ConfigValue getDefault(const std::string& name); + + Config::ConfigSourceType mSource; + std::map mMap; +}; + +} // namespace aidl::android::hardware::biometrics diff --git a/biometrics/common/config/tests/ConfigTest.cpp b/biometrics/common/config/tests/ConfigTest.cpp new file mode 100644 index 0000000000..d92204015d --- /dev/null +++ b/biometrics/common/config/tests/ConfigTest.cpp @@ -0,0 +1,266 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "config/Config.h" + +#define LOG_TAG "ConfigTest" +#include + +// using namespace ::testing::Eq; +using namespace testing; + +#define SP_DEFAULT_astring "astringSP" +#define SP_DEFAULT_aint32 32 +#define SP_DEFAULT_aint64 64 +#define SP_DEFAULT_abool false +#define SP_DEFAULT_avector \ + { 1, 2, 3 } +namespace aidl::android::hardware::biometrics { +namespace TestHalProperties { +OptString val_astring = SP_DEFAULT_astring; +OptInt32 val_aint32 = SP_DEFAULT_aint32; +OptInt64 val_aint64 = SP_DEFAULT_aint64; +OptBool val_abool = SP_DEFAULT_abool; +OptIntVec val_avector = SP_DEFAULT_avector; + +OptString astring() { + return val_astring; +} +bool astring(const OptString& v) { + val_astring = v; + return true; +} +OptInt32 aint32() { + return val_aint32; +} +bool aint32(const OptInt32& v) { + val_aint32 = v; + return true; +} +OptInt64 aint64() { + return val_aint64; +} +bool aint64(const OptInt64& v) { + val_aint64 = v; + return true; +} +OptBool abool() { + return val_abool; +} +bool abool(const OptBool& v) { + val_abool = v; + return true; +} +OptIntVec avector() { + return val_avector; +} +bool avector(const OptIntVec& v) { + val_avector = v; + return true; +} +} // namespace TestHalProperties +using namespace TestHalProperties; +#define AIDL_DEFAULT_astring "astringAIDL" +#define AIDL_DEFAULT_aint32 "320" +#define AIDL_DEFAULT_aint64 "640" +#define AIDL_DEFAULT_abool "true" +#define AIDL_DEFAULT_avector "10,20,30" +#define CREATE_GETTER_SETTER_WRAPPER(_NAME_, _T_) \ + ConfigValue _NAME_##Getter() { \ + return TestHalProperties::_NAME_(); \ + } \ + bool _NAME_##Setter(const ConfigValue& v) { \ + return TestHalProperties::_NAME_(std::get<_T_>(v)); \ + } +CREATE_GETTER_SETTER_WRAPPER(astring, OptString) +CREATE_GETTER_SETTER_WRAPPER(aint32, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(aint64, OptInt64) +CREATE_GETTER_SETTER_WRAPPER(abool, OptBool) +CREATE_GETTER_SETTER_WRAPPER(avector, std::vector) + +// Name,Getter, Setter, Parser and default value +#define NGS(_NAME_) #_NAME_, _NAME_##Getter, _NAME_##Setter +static Config::Data configData[] = { + {NGS(astring), &Config::parseString, AIDL_DEFAULT_astring}, + {NGS(aint32), &Config::parseInt32, AIDL_DEFAULT_aint32}, + {NGS(aint64), &Config::parseInt64, AIDL_DEFAULT_aint64}, + {NGS(abool), &Config::parseBool, AIDL_DEFAULT_abool}, + {NGS(avector), &Config::parseIntVec, AIDL_DEFAULT_avector}, +}; + +class TestConfig : public Config { + Config::Data* getConfigData(int* size) { + *size = sizeof(configData) / sizeof(configData[0]); + return configData; + } +}; + +class ConfigTest : public ::testing::Test { + protected: + void SetUp() override { cfg.init(); } + void TearDown() override {} + + void switch2aidl() { cfg.setParam("astring", "astring"); } + + TestConfig cfg; +}; + +TEST_F(ConfigTest, parseInt32) { + std::int32_t defval = 5678; + struct { + std::string strval; + std::int32_t expval; + } values[] = { + {"1234", 1234}, + {"0", 0}, + {"", defval}, + {"xyz", defval}, + }; + for (int i = 0; i < sizeof(values) / sizeof(values[0]); i++) { + ASSERT_EQ((std::get(cfg.parseInt32(values[i].strval))).value_or(defval), + values[i].expval); + } +} + +TEST_F(ConfigTest, parseInt64) { + std::int64_t defval = 5678; + struct { + std::string strval; + std::int64_t expval; + } values[] = { + {"1234", 1234}, {"12345678909876", 12345678909876}, {"0", 0}, {"", defval}, + {"xyz", defval}, + }; + for (int i = 0; i < sizeof(values) / sizeof(values[0]); i++) { + ASSERT_EQ((std::get(cfg.parseInt64(values[i].strval))).value_or(defval), + values[i].expval); + } +} + +TEST_F(ConfigTest, parseBool) { + bool defval = true; + struct { + std::string strval; + bool expval; + } values[] = { + {"false", false}, + {"true", true}, + {"", defval}, + {"xyz", defval}, + }; + for (int i = 0; i < sizeof(values) / sizeof(values[0]); i++) { + ASSERT_EQ((std::get(cfg.parseBool(values[i].strval))).value_or(defval), + values[i].expval); + } +} + +TEST_F(ConfigTest, parseIntVec) { + std::vector> defval = {}; + struct { + std::string strval; + std::vector> expval; + } values[] = { + {"1", {1}}, {"1,2,3", {1, 2, 3}}, {"1,2,b", defval}, {"", defval}, {"xyz", defval}, + }; + for (int i = 0; i < sizeof(values) / sizeof(values[0]); i++) { + ASSERT_EQ(std::get(cfg.parseIntVec(values[i].strval)), values[i].expval); + } +} + +TEST_F(ConfigTest, getters_sp) { + ASSERT_EQ(cfg.get("astring"), val_astring); + ASSERT_EQ(cfg.get("aint32"), val_aint32); + ASSERT_EQ(cfg.get("aint64"), val_aint64); + ASSERT_EQ(cfg.get("abool"), val_abool); + OptIntVec exp{val_avector}; + EXPECT_EQ(cfg.getopt("avector"), exp); +} + +TEST_F(ConfigTest, setters_sp) { + std::string val_astring_new("astringNew"); + ASSERT_TRUE(cfg.set("astring", val_astring_new)); + ASSERT_EQ(cfg.get("astring"), val_astring_new); + + std::int32_t val_aint32_new = val_aint32.value() + 100; + ASSERT_TRUE(cfg.set("aint32", val_aint32_new)); + ASSERT_EQ(cfg.get("aint32"), val_aint32_new); + + std::int64_t val_aint64_new = val_aint64.value() + 200; + ASSERT_TRUE(cfg.set("aint64", val_aint64_new)); + ASSERT_EQ(cfg.get("aint64"), val_aint64_new); + + bool val_abool_new = !val_abool.value(); + ASSERT_TRUE(cfg.set("abool", val_abool_new)); + ASSERT_EQ(cfg.get("abool"), val_abool_new); + + OptIntVec val_avector_new{100, 200}; + ASSERT_TRUE(cfg.setopt("avector", val_avector_new)); + EXPECT_EQ(cfg.getopt("avector"), val_avector_new); +} + +TEST_F(ConfigTest, setters_sp_null) { + val_astring = std::nullopt; + ASSERT_EQ(cfg.get("astring"), + (std::get(cfg.parseString(AIDL_DEFAULT_astring))).value()); +} + +TEST_F(ConfigTest, getters_aidl) { + cfg.setParam("astring", "astringAIDL"); + ASSERT_EQ(cfg.get("astring"), + (std::get(cfg.parseString(AIDL_DEFAULT_astring))).value()); + ASSERT_EQ(cfg.get("aint32"), + (std::get(cfg.parseInt32(AIDL_DEFAULT_aint32))).value()); + ASSERT_EQ(cfg.get("aint64"), + (std::get(cfg.parseInt64(AIDL_DEFAULT_aint64))).value()); + ASSERT_EQ(cfg.get("abool"), + (std::get(cfg.parseBool(AIDL_DEFAULT_abool))).value()); + OptIntVec exp{std::get(cfg.parseIntVec(AIDL_DEFAULT_avector))}; + EXPECT_EQ(cfg.getopt("avector"), exp); +} + +TEST_F(ConfigTest, setters_aidl) { + std::string val_astring_new("astringNewAidl"); + ASSERT_TRUE(cfg.set("astring", val_astring_new)); + ASSERT_EQ(cfg.get("astring"), val_astring_new); + + std::int32_t val_aint32_new = val_aint32.value() + 1000; + ASSERT_TRUE(cfg.set("aint32", val_aint32_new)); + ASSERT_EQ(cfg.get("aint32"), val_aint32_new); + + std::int64_t val_aint64_new = val_aint64.value() + 2000; + ASSERT_TRUE(cfg.set("aint64", val_aint64_new)); + ASSERT_EQ(cfg.get("aint64"), val_aint64_new); + + bool val_abool_new = !val_abool.value(); + ASSERT_TRUE(cfg.set("abool", val_abool_new)); + ASSERT_EQ(cfg.get("abool"), val_abool_new); + + OptIntVec val_avector_new{1000, 2000}; + ASSERT_TRUE(cfg.setopt("avector", val_avector_new)); + EXPECT_EQ(cfg.getopt("avector"), val_avector_new); +} + +TEST_F(ConfigTest, setParam) { + ASSERT_TRUE(cfg.setParam("aint32", "789")); + ASSERT_EQ(cfg.get("aint32"), 789); + ASSERT_TRUE(cfg.setParam("avector", "7,8,9,10")); + OptIntVec val_avector_new{7, 8, 9, 10}; + EXPECT_EQ(cfg.getopt("avector"), val_avector_new); + ASSERT_FALSE(cfg.setParam("unknown", "any")); +} +} // namespace aidl::android::hardware::biometrics diff --git a/biometrics/common/util/include/util/Util.h b/biometrics/common/util/include/util/Util.h index efd66bc373..078669d385 100644 --- a/biometrics/common/util/include/util/Util.h +++ b/biometrics/common/util/include/util/Util.h @@ -80,7 +80,9 @@ class Util { if (ParseInt(seq, &val)) { res.push_back(val); } else { - LOG(WARNING) << "Invalid int sequence:" + str + " seq:" + seq; + if (!str.empty()) { + LOG(WARNING) << "Invalid int sequence:" + str + " seq:" + seq; + } res.clear(); break; } diff --git a/biometrics/fingerprint/aidl/default/Android.bp b/biometrics/fingerprint/aidl/default/Android.bp index c3ec4d0f44..501af07c2b 100644 --- a/biometrics/fingerprint/aidl/default/Android.bp +++ b/biometrics/fingerprint/aidl/default/Android.bp @@ -20,6 +20,7 @@ cc_binary { "FakeFingerprintEngineSide.cpp", "Fingerprint.cpp", "Session.cpp", + "FingerprintConfig.cpp", "main.cpp", ], stl: "c++_static", @@ -34,9 +35,15 @@ cc_binary { "android.hardware.biometrics.common-V4-ndk", "android.hardware.biometrics.common.thread", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.config", "android.hardware.keymaster-V4-ndk", ], installable: false, // install APEX instead + product_variables: { + debuggable: { + cflags: ["-DFPS_DEBUGGABLE"], + }, + }, } cc_test { @@ -46,11 +53,11 @@ cc_test { "tests/FakeFingerprintEngineTest.cpp", "FakeFingerprintEngine.cpp", "FakeLockoutTracker.cpp", + "FingerprintConfig.cpp", ], shared_libs: [ "libbase", "libbinder_ndk", - "android.hardware.biometrics.common.thread", ], static_libs: [ "libandroid.hardware.biometrics.fingerprint.VirtualProps", @@ -58,6 +65,8 @@ cc_test { "android.hardware.biometrics.common-V4-ndk", "android.hardware.keymaster-V4-ndk", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.config", + "android.hardware.biometrics.common.thread", ], vendor: true, test_suites: ["general-tests"], @@ -72,11 +81,11 @@ cc_test { "FakeFingerprintEngineUdfps.cpp", "FakeFingerprintEngine.cpp", "FakeLockoutTracker.cpp", + "FingerprintConfig.cpp", ], shared_libs: [ "libbase", "libbinder_ndk", - "android.hardware.biometrics.common.thread", ], static_libs: [ "libandroid.hardware.biometrics.fingerprint.VirtualProps", @@ -84,6 +93,8 @@ cc_test { "android.hardware.biometrics.common-V4-ndk", "android.hardware.keymaster-V4-ndk", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.config", + "android.hardware.biometrics.common.thread", ], vendor: true, test_suites: ["general-tests"], @@ -96,11 +107,11 @@ cc_test { srcs: [ "tests/FakeLockoutTrackerTest.cpp", "FakeLockoutTracker.cpp", + "FingerprintConfig.cpp", ], shared_libs: [ "libbase", "libbinder_ndk", - "android.hardware.biometrics.common.thread", ], static_libs: [ "libandroid.hardware.biometrics.fingerprint.VirtualProps", @@ -108,6 +119,8 @@ cc_test { "android.hardware.biometrics.common-V4-ndk", "android.hardware.keymaster-V4-ndk", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.thread", + "android.hardware.biometrics.common.config", ], vendor: true, test_suites: ["general-tests"], @@ -122,11 +135,11 @@ cc_test { "Session.cpp", "FakeFingerprintEngine.cpp", "FakeLockoutTracker.cpp", + "FingerprintConfig.cpp", ], shared_libs: [ "libbase", "libbinder_ndk", - "android.hardware.biometrics.common.thread", ], static_libs: [ "libandroid.hardware.biometrics.fingerprint.VirtualProps", @@ -134,6 +147,8 @@ cc_test { "android.hardware.biometrics.common-V4-ndk", "android.hardware.keymaster-V4-ndk", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.thread", + "android.hardware.biometrics.common.config", ], vendor: true, test_suites: ["general-tests"], diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp index a7acf3d520..8b8d046237 100644 --- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp +++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp @@ -40,13 +40,13 @@ void FakeFingerprintEngine::generateChallengeImpl(ISessionCallback* cb) { BEGIN_OP(0); std::uniform_int_distribution dist; auto challenge = dist(mRandom); - FingerprintHalProperties::challenge(challenge); + Fingerprint::cfg().set("challenge", challenge); cb->onChallengeGenerated(challenge); } void FakeFingerprintEngine::revokeChallengeImpl(ISessionCallback* cb, int64_t challenge) { BEGIN_OP(0); - FingerprintHalProperties::challenge({}); + Fingerprint::cfg().setopt("challenge", std::nullopt); cb->onChallengeRevoked(challenge); } @@ -81,8 +81,7 @@ void FakeFingerprintEngine::detectInteractionImpl(ISessionCallback* cb, const std::future& cancel) { BEGIN_OP(0); - auto detectInteractionSupported = - FingerprintHalProperties::detect_interaction().value_or(false); + auto detectInteractionSupported = Fingerprint::cfg().get("detect_interaction"); if (!detectInteractionSupported) { LOG(ERROR) << "Detect interaction is not supported"; cb->onError(Error::UNABLE_TO_PROCESS, 0 /* vendorError */); @@ -131,10 +130,10 @@ void FakeFingerprintEngine::fingerDownAction() { bool FakeFingerprintEngine::onEnrollFingerDown(ISessionCallback* cb, const keymaster::HardwareAuthToken&, const std::future& cancel) { - BEGIN_OP(getLatency(FingerprintHalProperties::operation_enroll_latency())); + BEGIN_OP(getLatency(Fingerprint::cfg().getopt("operation_enroll_latency"))); // Force error-out - auto err = FingerprintHalProperties::operation_enroll_error().value_or(0); + auto err = Fingerprint::cfg().get("operation_enroll_error"); if (err != 0) { LOG(ERROR) << "Fail: operation_enroll_error"; auto ec = convertError(err); @@ -143,7 +142,7 @@ bool FakeFingerprintEngine::onEnrollFingerDown(ISessionCallback* cb, } // Format is ":,...: - auto nextEnroll = FingerprintHalProperties::next_enrollment().value_or(""); + auto nextEnroll = Fingerprint::cfg().get("next_enrollment"); auto parts = Util::split(nextEnroll, ":"); if (parts.size() != 3) { LOG(ERROR) << "Fail: invalid next_enrollment:" << nextEnroll; @@ -172,19 +171,19 @@ bool FakeFingerprintEngine::onEnrollFingerDown(ISessionCallback* cb, if (left == 0 && !IS_TRUE(parts[2])) { // end and failed LOG(ERROR) << "Fail: requested by caller: " << nextEnroll; - FingerprintHalProperties::next_enrollment({}); + Fingerprint::cfg().set("next_enrollment", ""); cb->onError(Error::UNABLE_TO_PROCESS, 0 /* vendorCode */); } else { // progress and update props if last time LOG(INFO) << "onEnroll: " << enrollmentId << " left: " << left; if (left == 0) { - auto enrollments = FingerprintHalProperties::enrollments(); + auto enrollments = Fingerprint::cfg().getopt("enrollments"); enrollments.emplace_back(enrollmentId); - FingerprintHalProperties::enrollments(enrollments); - FingerprintHalProperties::next_enrollment({}); + Fingerprint::cfg().setopt("enrollments", enrollments); + Fingerprint::cfg().setopt("next_enrollment", std::nullopt); // change authenticatorId after new enrollment - auto id = FingerprintHalProperties::authenticator_id().value_or(0); + auto id = Fingerprint::cfg().get("authenticator_id"); auto newId = id + 1; - FingerprintHalProperties::authenticator_id(newId); + Fingerprint::cfg().set("authenticator_id", newId); LOG(INFO) << "Enrolled: " << enrollmentId; } cb->onEnrollmentProgress(enrollmentId, left); @@ -197,11 +196,11 @@ bool FakeFingerprintEngine::onEnrollFingerDown(ISessionCallback* cb, bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, int64_t /* operationId */, const std::future& cancel) { - BEGIN_OP(getLatency(FingerprintHalProperties::operation_authenticate_latency())); + BEGIN_OP(getLatency(Fingerprint::cfg().getopt("operation_authenticate_latency"))); int64_t now = Util::getSystemNanoTime(); - int64_t duration = FingerprintHalProperties::operation_authenticate_duration().value_or(10); - auto acquired = FingerprintHalProperties::operation_authenticate_acquired().value_or("1"); + int64_t duration = Fingerprint::cfg().get("operation_authenticate_duration"); + auto acquired = Fingerprint::cfg().get("operation_authenticate_acquired"); auto acquiredInfos = Util::parseIntSequence(acquired); int N = acquiredInfos.size(); @@ -218,14 +217,14 @@ bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, int i = 0; do { - if (FingerprintHalProperties::operation_authenticate_fails().value_or(false)) { + if (Fingerprint::cfg().get("operation_authenticate_fails")) { LOG(ERROR) << "Fail: operation_authenticate_fails"; mLockoutTracker.addFailedAttempt(); cb->onAuthenticationFailed(); return false; } - auto err = FingerprintHalProperties::operation_authenticate_error().value_or(0); + auto err = Fingerprint::cfg().get("operation_authenticate_error"); if (err != 0) { LOG(ERROR) << "Fail: operation_authenticate_error"; auto ec = convertError(err); @@ -234,7 +233,7 @@ bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, revisit if tests need*/ } - if (FingerprintHalProperties::lockout().value_or(false)) { + if (Fingerprint::cfg().get("lockout")) { LOG(ERROR) << "Fail: lockout"; cb->onLockoutPermanent(); cb->onError(Error::HW_UNAVAILABLE, 0 /* vendorError */); @@ -256,8 +255,8 @@ bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, SLEEP_MS(duration / N); } while (!Util::hasElapsed(now, duration)); - auto id = FingerprintHalProperties::enrollment_hit().value_or(0); - auto enrolls = FingerprintHalProperties::enrollments(); + auto id = Fingerprint::cfg().get("enrollment_hit"); + auto enrolls = Fingerprint::cfg().getopt("enrollments"); auto isEnrolled = std::find(enrolls.begin(), enrolls.end(), id) != enrolls.end(); if (id > 0 && isEnrolled) { cb->onAuthenticationSucceeded(id, {} /* hat */); @@ -274,12 +273,13 @@ bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, bool FakeFingerprintEngine::onDetectInteractFingerDown(ISessionCallback* cb, const std::future& cancel) { - BEGIN_OP(getLatency(FingerprintHalProperties::operation_detect_interaction_latency())); + BEGIN_OP(getLatency( + Fingerprint::cfg().getopt("operation_detect_interaction_latency"))); - int64_t duration = - FingerprintHalProperties::operation_detect_interaction_duration().value_or(10); + int32_t duration = + Fingerprint::cfg().get("operation_detect_interaction_duration"); - auto acquired = FingerprintHalProperties::operation_detect_interaction_acquired().value_or("1"); + auto acquired = Fingerprint::cfg().get("operation_detect_interaction_acquired"); auto acquiredInfos = Util::parseIntSequence(acquired); int N = acquiredInfos.size(); int64_t now = Util::getSystemNanoTime(); @@ -292,7 +292,7 @@ bool FakeFingerprintEngine::onDetectInteractFingerDown(ISessionCallback* cb, int i = 0; do { - auto err = FingerprintHalProperties::operation_detect_interaction_error().value_or(0); + auto err = Fingerprint::cfg().get("operation_detect_interaction_error"); if (err != 0) { LOG(ERROR) << "Fail: operation_detect_interaction_error"; auto ec = convertError(err); @@ -323,7 +323,7 @@ void FakeFingerprintEngine::enumerateEnrollmentsImpl(ISessionCallback* cb) { BEGIN_OP(0); std::vector ids; - for (auto& enrollment : FingerprintHalProperties::enrollments()) { + for (auto& enrollment : Fingerprint::cfg().getopt("enrollments")) { auto id = enrollment.value_or(0); if (id > 0) { ids.push_back(id); @@ -339,7 +339,7 @@ void FakeFingerprintEngine::removeEnrollmentsImpl(ISessionCallback* cb, std::vector> newEnrollments; std::vector removed; - for (auto& enrollment : FingerprintHalProperties::enrollments()) { + for (auto& enrollment : Fingerprint::cfg().getopt("enrollments")) { auto id = enrollment.value_or(0); if (std::find(enrollmentIds.begin(), enrollmentIds.end(), id) != enrollmentIds.end()) { removed.push_back(id); @@ -347,7 +347,7 @@ void FakeFingerprintEngine::removeEnrollmentsImpl(ISessionCallback* cb, newEnrollments.emplace_back(id); } } - FingerprintHalProperties::enrollments(newEnrollments); + Fingerprint::cfg().setopt("enrollments", newEnrollments); cb->onEnrollmentsRemoved(enrollmentIds); } @@ -355,10 +355,10 @@ void FakeFingerprintEngine::removeEnrollmentsImpl(ISessionCallback* cb, void FakeFingerprintEngine::getAuthenticatorIdImpl(ISessionCallback* cb) { BEGIN_OP(0); int64_t authenticatorId; - if (FingerprintHalProperties::enrollments().size() == 0) { + if (Fingerprint::cfg().getopt("enrollments").size() == 0) { authenticatorId = 0; } else { - authenticatorId = FingerprintHalProperties::authenticator_id().value_or(0); + authenticatorId = Fingerprint::cfg().get("authenticator_id"); if (authenticatorId == 0) authenticatorId = 1; } cb->onAuthenticatorIdRetrieved(authenticatorId); @@ -367,13 +367,13 @@ void FakeFingerprintEngine::getAuthenticatorIdImpl(ISessionCallback* cb) { void FakeFingerprintEngine::invalidateAuthenticatorIdImpl(ISessionCallback* cb) { BEGIN_OP(0); int64_t newId; - if (FingerprintHalProperties::enrollments().size() == 0) { + if (Fingerprint::cfg().getopt("enrollments").size() == 0) { newId = 0; } else { - auto id = FingerprintHalProperties::authenticator_id().value_or(0); + auto id = Fingerprint::cfg().get("authenticator_id"); newId = id + 1; } - FingerprintHalProperties::authenticator_id(newId); + Fingerprint::cfg().set("authenticator_id", newId); cb->onAuthenticatorIdInvalidated(newId); } @@ -390,7 +390,7 @@ void FakeFingerprintEngine::resetLockoutImpl(ISessionCallback* cb, } void FakeFingerprintEngine::clearLockout(ISessionCallback* cb) { - FingerprintHalProperties::lockout(false); + Fingerprint::cfg().set("lockout", false); cb->onLockoutCleared(); mLockoutTracker.reset(); } @@ -415,7 +415,7 @@ ndk::ScopedAStatus FakeFingerprintEngine::onUiReadyImpl() { } bool FakeFingerprintEngine::getSensorLocationConfig(SensorLocation& out) { - auto loc = FingerprintHalProperties::sensor_location().value_or(""); + auto loc = Fingerprint::cfg().get("sensor_location"); auto isValidStr = false; auto dim = Util::split(loc, ":"); diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp index 68b0f0d0de..496b5e3f12 100644 --- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp +++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp @@ -20,6 +20,7 @@ #include +#include "Fingerprint.h" #include "util/CancellationSignal.h" #include "util/Util.h" @@ -45,7 +46,7 @@ ndk::ScopedAStatus FakeFingerprintEngineUdfps::onPointerDownImpl(int32_t /*point BEGIN_OP(0); // verify whetehr touch coordinates/area matching sensor location ? mPointerDownTime = Util::getSystemNanoTime(); - if (FingerprintHalProperties::control_illumination().value_or(false)) { + if (Fingerprint::cfg().get("control_illumination")) { fingerDownAction(); } return ndk::ScopedAStatus::ok(); diff --git a/biometrics/fingerprint/aidl/default/FakeLockoutTracker.cpp b/biometrics/fingerprint/aidl/default/FakeLockoutTracker.cpp index b0163ee246..a056db50d0 100644 --- a/biometrics/fingerprint/aidl/default/FakeLockoutTracker.cpp +++ b/biometrics/fingerprint/aidl/default/FakeLockoutTracker.cpp @@ -16,6 +16,7 @@ #include "FakeLockoutTracker.h" #include +#include "Fingerprint.h" #include "util/Util.h" using namespace ::android::fingerprint::virt; @@ -29,16 +30,16 @@ void FakeLockoutTracker::reset() { } void FakeLockoutTracker::addFailedAttempt() { - bool enabled = FingerprintHalProperties::lockout_enable().value_or(false); + bool enabled = Fingerprint::cfg().get("lockout_enable"); if (enabled) { mFailedCount++; int32_t lockoutTimedThreshold = - FingerprintHalProperties::lockout_timed_threshold().value_or(5); + Fingerprint::cfg().get("lockout_timed_threshold"); int32_t lockoutPermanetThreshold = - FingerprintHalProperties::lockout_permanent_threshold().value_or(20); + Fingerprint::cfg().get("lockout_permanent_threshold"); if (mFailedCount >= lockoutPermanetThreshold) { mCurrentMode = LockoutMode::kPermanent; - FingerprintHalProperties::lockout(true); + Fingerprint::cfg().set("lockout", true); } else if (mFailedCount >= lockoutTimedThreshold) { if (mCurrentMode == LockoutMode::kNone) { mCurrentMode = LockoutMode::kTimed; @@ -53,7 +54,7 @@ void FakeLockoutTracker::addFailedAttempt() { FakeLockoutTracker::LockoutMode FakeLockoutTracker::getMode() { if (mCurrentMode == LockoutMode::kTimed) { int32_t lockoutTimedDuration = - FingerprintHalProperties::lockout_timed_duration().value_or(10 * 100); + Fingerprint::cfg().get("lockout_timed_duration"); if (Util::hasElapsed(mLockoutTimedStart, lockoutTimedDuration)) { mCurrentMode = LockoutMode::kNone; mLockoutTimedStart = 0; @@ -68,11 +69,11 @@ int64_t FakeLockoutTracker::getLockoutTimeLeft() { if (mLockoutTimedStart > 0) { int32_t lockoutTimedDuration = - FingerprintHalProperties::lockout_timed_duration().value_or(10 * 100); + Fingerprint::cfg().get("lockout_timed_duration"); auto now = Util::getSystemNanoTime(); auto elapsed = (now - mLockoutTimedStart) / 1000000LL; res = lockoutTimedDuration - elapsed; - LOG(INFO) << "xxxxxx: elapsed=" << elapsed << " now = " << now + LOG(INFO) << "elapsed=" << elapsed << " now = " << now << " mLockoutTimedStart=" << mLockoutTimedStart << " res=" << res; } diff --git a/biometrics/fingerprint/aidl/default/Fingerprint.cpp b/biometrics/fingerprint/aidl/default/Fingerprint.cpp index 79b563e5ad..dded54b436 100644 --- a/biometrics/fingerprint/aidl/default/Fingerprint.cpp +++ b/biometrics/fingerprint/aidl/default/Fingerprint.cpp @@ -43,7 +43,7 @@ constexpr char SW_VERSION[] = "vendor/version/revision"; } // namespace Fingerprint::Fingerprint() : mWorker(MAX_WORKER_QUEUE_SIZE) { - std::string sensorTypeProp = FingerprintHalProperties::type().value_or(""); + std::string sensorTypeProp = Fingerprint::cfg().get("type"); if (sensorTypeProp == "" || sensorTypeProp == "default" || sensorTypeProp == "rear") { mSensorType = FingerprintSensorType::REAR; mEngine = std::make_unique(); @@ -68,15 +68,13 @@ ndk::ScopedAStatus Fingerprint::getSensorProps(std::vector* out) { {HW_COMPONENT_ID, HW_VERSION, FW_VERSION, SERIAL_NUMBER, "" /* softwareVersion */}, {SW_COMPONENT_ID, "" /* hardwareVersion */, "" /* firmwareVersion */, "" /* serialNumber */, SW_VERSION}}; - auto sensorId = FingerprintHalProperties::sensor_id().value_or(SENSOR_ID); - auto sensorStrength = - FingerprintHalProperties::sensor_strength().value_or((int)SENSOR_STRENGTH); - auto maxEnrollments = - FingerprintHalProperties::max_enrollments().value_or(MAX_ENROLLMENTS_PER_USER); - auto navigationGuesture = FingerprintHalProperties::navigation_guesture().value_or(false); - auto detectInteraction = FingerprintHalProperties::detect_interaction().value_or(false); - auto displayTouch = FingerprintHalProperties::display_touch().value_or(true); - auto controlIllumination = FingerprintHalProperties::control_illumination().value_or(false); + auto sensorId = Fingerprint::cfg().get("sensor_id"); + auto sensorStrength = Fingerprint::cfg().get("sensor_strength"); + auto maxEnrollments = Fingerprint::cfg().get("max_enrollments"); + auto navigationGuesture = Fingerprint::cfg().get("navigation_guesture"); + auto detectInteraction = Fingerprint::cfg().get("detect_interaction"); + auto displayTouch = Fingerprint::cfg().get("display_touch"); + auto controlIllumination = Fingerprint::cfg().get("control_illumination"); common::CommonProps commonProps = {sensorId, (common::SensorStrength)sensorStrength, maxEnrollments, componentInfo}; @@ -166,6 +164,14 @@ void Fingerprint::onHelp(int fd) { void Fingerprint::resetConfigToDefault() { LOG(INFO) << __func__ << ": reset virtual HAL configuration to default"; + Fingerprint::cfg().init(); +#ifdef FPS_DEBUGGABLE + clearConfigSysprop(); +#endif +} + +void Fingerprint::clearConfigSysprop() { + LOG(INFO) << __func__ << ": clear all systprop configuration"; #define RESET_CONFIG_O(__NAME__) \ if (FingerprintHalProperties::__NAME__()) FingerprintHalProperties::__NAME__(std::nullopt) #define RESET_CONFIG_V(__NAME__) \ diff --git a/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp b/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp new file mode 100644 index 0000000000..82c5403176 --- /dev/null +++ b/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "FingerprintConfig" + +#include "FingerprintConfig.h" + +#include + +#include + +using namespace ::android::fingerprint::virt; + +namespace aidl::android::hardware::biometrics::fingerprint { + +// Wrapper to system property access functions +#define CREATE_GETTER_SETTER_WRAPPER(_NAME_, _T_) \ + ConfigValue _NAME_##Getter() { \ + return FingerprintHalProperties::_NAME_(); \ + } \ + bool _NAME_##Setter(const ConfigValue& v) { \ + return FingerprintHalProperties::_NAME_(std::get<_T_>(v)); \ + } + +CREATE_GETTER_SETTER_WRAPPER(type, OptString) +CREATE_GETTER_SETTER_WRAPPER(enrollments, OptIntVec) +CREATE_GETTER_SETTER_WRAPPER(enrollment_hit, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(next_enrollment, OptString) +CREATE_GETTER_SETTER_WRAPPER(authenticator_id, OptInt64) +CREATE_GETTER_SETTER_WRAPPER(challenge, OptInt64) +CREATE_GETTER_SETTER_WRAPPER(sensor_id, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(sensor_location, OptString) +CREATE_GETTER_SETTER_WRAPPER(sensor_strength, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_fails, OptBool) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_latency, OptIntVec) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_duration, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_error, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_acquired, OptString) +CREATE_GETTER_SETTER_WRAPPER(operation_enroll_error, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_enroll_latency, OptIntVec) +CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_error, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_latency, OptIntVec) +CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_duration, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_acquired, OptString) +CREATE_GETTER_SETTER_WRAPPER(max_enrollments, OptBool) +CREATE_GETTER_SETTER_WRAPPER(navigation_guesture, OptBool) +CREATE_GETTER_SETTER_WRAPPER(detect_interaction, OptBool) +CREATE_GETTER_SETTER_WRAPPER(display_touch, OptBool) +CREATE_GETTER_SETTER_WRAPPER(control_illumination, OptBool) +CREATE_GETTER_SETTER_WRAPPER(lockout, OptBool) +CREATE_GETTER_SETTER_WRAPPER(lockout_enable, OptBool) +CREATE_GETTER_SETTER_WRAPPER(lockout_timed_threshold, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(lockout_timed_duration, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(lockout_permanent_threshold, OptInt32) + +// Name, Getter, Setter, Parser and default value +#define NGS(_NAME_) #_NAME_, _NAME_##Getter, _NAME_##Setter +static Config::Data configData[] = { + {NGS(type), &Config::parseString, "rear"}, + {NGS(enrollments), &Config::parseIntVec, ""}, + {NGS(enrollment_hit), &Config::parseInt32, "0"}, + {NGS(next_enrollment), &Config::parseString, ""}, + {NGS(authenticator_id), &Config::parseInt64, "0"}, + {NGS(challenge), &Config::parseInt64, ""}, + {NGS(sensor_id), &Config::parseInt32, "5"}, + {NGS(sensor_location), &Config::parseString, ""}, + {NGS(sensor_strength), &Config::parseInt32, "2"}, // STRONG + {NGS(operation_authenticate_fails), &Config::parseBool, "false"}, + {NGS(operation_authenticate_latency), &Config::parseIntVec, ""}, + {NGS(operation_authenticate_duration), &Config::parseInt32, "10"}, + {NGS(operation_authenticate_error), &Config::parseInt32, "0"}, + {NGS(operation_authenticate_acquired), &Config::parseString, "1"}, + {NGS(operation_enroll_error), &Config::parseInt32, "0"}, + {NGS(operation_enroll_latency), &Config::parseIntVec, ""}, + {NGS(operation_detect_interaction_latency), &Config::parseIntVec, ""}, + {NGS(operation_detect_interaction_error), &Config::parseInt32, "0"}, + {NGS(operation_detect_interaction_duration), &Config::parseInt32, "10"}, + {NGS(operation_detect_interaction_acquired), &Config::parseString, "1"}, + {NGS(max_enrollments), &Config::parseInt32, "5"}, + {NGS(navigation_guesture), &Config::parseBool, "false"}, + {NGS(detect_interaction), &Config::parseBool, "false"}, + {NGS(display_touch), &Config::parseBool, "true"}, + {NGS(control_illumination), &Config::parseBool, "false"}, + {NGS(lockout), &Config::parseBool, "false"}, + {NGS(lockout_enable), &Config::parseBool, "false"}, + {NGS(lockout_timed_threshold), &Config::parseInt32, "5"}, + {NGS(lockout_timed_duration), &Config::parseInt32, "10000"}, + {NGS(lockout_permanent_threshold), &Config::parseInt32, "20"}, +}; + +Config::Data* FingerprintConfig::getConfigData(int* size) { + *size = sizeof(configData) / sizeof(configData[0]); + return configData; +} + +} // namespace aidl::android::hardware::biometrics::fingerprint diff --git a/biometrics/fingerprint/aidl/default/include/Fingerprint.h b/biometrics/fingerprint/aidl/default/include/Fingerprint.h index 2bd66d4e0b..1576f0715c 100644 --- a/biometrics/fingerprint/aidl/default/include/Fingerprint.h +++ b/biometrics/fingerprint/aidl/default/include/Fingerprint.h @@ -23,6 +23,7 @@ #include "FakeFingerprintEngineSide.h" #include "FakeFingerprintEngineUdfps.h" +#include "FingerprintConfig.h" #include "Session.h" #include "thread/WorkerThread.h" @@ -40,10 +41,20 @@ class Fingerprint : public BnFingerprint { binder_status_t dump(int fd, const char** args, uint32_t numArgs); binder_status_t handleShellCommand(int in, int out, int err, const char** argv, uint32_t argc); + static FingerprintConfig& cfg() { + static FingerprintConfig* cfg = nullptr; + if (cfg == nullptr) { + cfg = new FingerprintConfig(); + cfg->init(); + } + return *cfg; + } + private: void resetConfigToDefault(); void onHelp(int); void onSimFingerDown(); + void clearConfigSysprop(); std::unique_ptr mEngine; WorkerThread mWorker; diff --git a/biometrics/fingerprint/aidl/default/include/FingerprintConfig.h b/biometrics/fingerprint/aidl/default/include/FingerprintConfig.h new file mode 100644 index 0000000000..bd1ad4c904 --- /dev/null +++ b/biometrics/fingerprint/aidl/default/include/FingerprintConfig.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "config/Config.h" + +namespace aidl::android::hardware::biometrics::fingerprint { + +class FingerprintConfig : public Config { + Config::Data* getConfigData(int* size) override; +}; + +} // namespace aidl::android::hardware::biometrics::fingerprint diff --git a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp index 8b06c8ee50..039f25ea82 100644 --- a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp +++ b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp @@ -21,6 +21,7 @@ #include #include "FakeFingerprintEngine.h" +#include "Fingerprint.h" #include "util/Util.h" using namespace ::android::fingerprint::virt; @@ -125,21 +126,20 @@ class TestSessionCallback : public BnSessionCallback { class FakeFingerprintEngineTest : public ::testing::Test { protected: void SetUp() override { - FingerprintHalProperties::operation_enroll_latency({0}); - FingerprintHalProperties::operation_authenticate_latency({0}); - FingerprintHalProperties::operation_detect_interaction_latency({0}); + Fingerprint::cfg().setopt("operation_enroll_latency", {0}); + Fingerprint::cfg().setopt("operation_authenticate_latency", {0}); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {0}); mCallback = ndk::SharedRefBase::make(); } void TearDown() override { - FingerprintHalProperties::operation_authenticate_error(0); - FingerprintHalProperties::operation_detect_interaction_error(0); - FingerprintHalProperties::operation_authenticate_acquired(""); - FingerprintHalProperties::operation_enroll_latency({}); - FingerprintHalProperties::operation_authenticate_latency({}); - FingerprintHalProperties::operation_detect_interaction_latency({}); - FingerprintHalProperties::operation_authenticate_fails(false); - FingerprintHalProperties::operation_detect_interaction_latency({}); + Fingerprint::cfg().set("operation_authenticate_error", 0); + Fingerprint::cfg().set("operation_detect_interaction_error", 0); + Fingerprint::cfg().set("operation_authenticate_acquired", ""); + Fingerprint::cfg().setopt("operation_enroll_latency", {}); + Fingerprint::cfg().setopt("operation_authenticate_latency", {}); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {}); + Fingerprint::cfg().set("operation_authenticate_fails", false); } FakeFingerprintEngine mEngine; @@ -149,58 +149,58 @@ class FakeFingerprintEngineTest : public ::testing::Test { TEST_F(FakeFingerprintEngineTest, GenerateChallenge) { mEngine.generateChallengeImpl(mCallback.get()); - ASSERT_EQ(FingerprintHalProperties::challenge().value(), mCallback->mLastChallenge); + ASSERT_EQ(Fingerprint::cfg().get("challenge"), mCallback->mLastChallenge); } TEST_F(FakeFingerprintEngineTest, RevokeChallenge) { - auto challenge = FingerprintHalProperties::challenge().value_or(10); + auto challenge = Fingerprint::cfg().get("challenge"); mEngine.revokeChallengeImpl(mCallback.get(), challenge); - ASSERT_FALSE(FingerprintHalProperties::challenge().has_value()); + ASSERT_FALSE((Fingerprint::cfg().getopt("challenge")).has_value()); ASSERT_EQ(challenge, mCallback->mLastChallengeRevoked); } TEST_F(FakeFingerprintEngineTest, ResetLockout) { - FingerprintHalProperties::lockout(true); + Fingerprint::cfg().get("lockout"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mEngine.resetLockoutImpl(mCallback.get(), hat); - ASSERT_FALSE(FingerprintHalProperties::lockout().value_or(true)); + ASSERT_FALSE(Fingerprint::cfg().get("lockout")); } TEST_F(FakeFingerprintEngineTest, AuthenticatorId) { - FingerprintHalProperties::enrollments({1}); - FingerprintHalProperties::authenticator_id(50); + Fingerprint::cfg().setopt("enrollments", {1}); + Fingerprint::cfg().set("authenticator_id", 50); mEngine.getAuthenticatorIdImpl(mCallback.get()); ASSERT_EQ(50, mCallback->mLastAuthenticatorId); ASSERT_FALSE(mCallback->mAuthenticatorIdInvalidated); } TEST_F(FakeFingerprintEngineTest, AuthenticatorIdInvalidate) { - FingerprintHalProperties::authenticator_id(500); + Fingerprint::cfg().set("authenticator_id", 500); mEngine.invalidateAuthenticatorIdImpl(mCallback.get()); - ASSERT_NE(500, FingerprintHalProperties::authenticator_id().value()); + ASSERT_NE(500, Fingerprint::cfg().get("authenticator_id")); ASSERT_TRUE(mCallback->mAuthenticatorIdInvalidated); } TEST_F(FakeFingerprintEngineTest, Enroll) { - FingerprintHalProperties::enrollments({}); - FingerprintHalProperties::next_enrollment("4:0,0:true"); + Fingerprint::cfg().setopt("enrollments", {}); + Fingerprint::cfg().set("next_enrollment", "4:0,0:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kEnroll); mEngine.fingerDownAction(); - ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); - ASSERT_EQ(1, FingerprintHalProperties::enrollments().size()); - ASSERT_EQ(4, FingerprintHalProperties::enrollments()[0].value()); + ASSERT_FALSE(Fingerprint::cfg().getopt("next_enrollment").has_value()); + ASSERT_EQ(1, Fingerprint::cfg().getopt("enrollments").size()); + ASSERT_EQ(4, Fingerprint::cfg().getopt("enrollments")[0].value()); ASSERT_EQ(4, mCallback->mLastEnrolled); ASSERT_EQ(1, mCallback->mLastAcquiredInfo); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kIdle); } TEST_F(FakeFingerprintEngineTest, EnrollCancel) { - FingerprintHalProperties::enrollments({}); + Fingerprint::cfg().setopt("enrollments", {}); auto next = "4:0,0:true"; - FingerprintHalProperties::next_enrollment(next); + Fingerprint::cfg().set("next_enrollment", next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mCancel.set_value(); mEngine.notifyFingerdown(); @@ -208,35 +208,35 @@ TEST_F(FakeFingerprintEngineTest, EnrollCancel) { mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); ASSERT_EQ(-1, mCallback->mLastEnrolled); - ASSERT_EQ(0, FingerprintHalProperties::enrollments().size()); - ASSERT_EQ(next, FingerprintHalProperties::next_enrollment().value_or("")); + ASSERT_EQ(0, Fingerprint::cfg().getopt("enrollments").size()); + ASSERT_EQ(next, Fingerprint::cfg().get("next_enrollment")); } TEST_F(FakeFingerprintEngineTest, EnrollFail) { - FingerprintHalProperties::enrollments({}); + Fingerprint::cfg().setopt("enrollments", {}); auto next = "2:0,0:false"; - FingerprintHalProperties::next_enrollment(next); + Fingerprint::cfg().set("next_enrollment", next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::UNABLE_TO_PROCESS, mCallback->mError); ASSERT_EQ(-1, mCallback->mLastEnrolled); - ASSERT_EQ(0, FingerprintHalProperties::enrollments().size()); - ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); + ASSERT_EQ(0, Fingerprint::cfg().getopt("enrollments").size()); + ASSERT_FALSE(Fingerprint::cfg().getopt("next_enrollment").has_value()); } TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { - FingerprintHalProperties::enrollments({}); - FingerprintHalProperties::next_enrollment("4:0,5-[12,1013]:true"); + Fingerprint::cfg().setopt("enrollments", {}); + Fingerprint::cfg().set("next_enrollment", "4:0,5-[12,1013]:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; int32_t prevCnt = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); - ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); - ASSERT_EQ(1, FingerprintHalProperties::enrollments().size()); - ASSERT_EQ(4, FingerprintHalProperties::enrollments()[0].value()); + ASSERT_FALSE(Fingerprint::cfg().getopt("next_enrollment").has_value()); + ASSERT_EQ(1, Fingerprint::cfg().getopt("enrollments").size()); + ASSERT_EQ(4, Fingerprint::cfg().getopt("enrollments")[0].value()); ASSERT_EQ(4, mCallback->mLastEnrolled); ASSERT_EQ(prevCnt + 3, mCallback->mLastAcquiredCount); ASSERT_EQ(7, mCallback->mLastAcquiredInfo); @@ -244,8 +244,8 @@ TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { } TEST_F(FakeFingerprintEngineTest, Authenticate) { - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kAuthenticate); @@ -257,8 +257,8 @@ TEST_F(FakeFingerprintEngineTest, Authenticate) { } TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { - FingerprintHalProperties::enrollments({2}); - FingerprintHalProperties::enrollment_hit(2); + Fingerprint::cfg().setopt("enrollments", {2}); + Fingerprint::cfg().set("enrollment_hit", 2); mCancel.set_value(); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); @@ -268,8 +268,8 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { } TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit({}); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().setopt("enrollment_hit", std::nullopt); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); @@ -277,8 +277,8 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { } TEST_F(FakeFingerprintEngineTest, AuthenticateNotEnrolled) { - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(3); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 3); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); @@ -287,9 +287,9 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateNotEnrolled) { } TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { - FingerprintHalProperties::enrollments({22, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::lockout(true); + Fingerprint::cfg().setopt("enrollments", {22, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("lockout", true); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); @@ -298,7 +298,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { } TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { - FingerprintHalProperties::operation_authenticate_error(8); + Fingerprint::cfg().set("operation_authenticate_error", 8); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); @@ -307,7 +307,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { } TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { - FingerprintHalProperties::operation_authenticate_error(1009); + Fingerprint::cfg().set("operation_authenticate_error", 1009); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); @@ -316,7 +316,7 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { } TEST_F(FakeFingerprintEngineTest, AuthenticateFails) { - FingerprintHalProperties::operation_authenticate_fails(true); + Fingerprint::cfg().set("operation_authenticate_fails", true); mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); @@ -325,10 +325,10 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateFails) { } TEST_F(FakeFingerprintEngineTest, AuthenticateAcquired) { - FingerprintHalProperties::lockout(false); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::operation_authenticate_acquired("4,1009"); + Fingerprint::cfg().set("lockout", false); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("operation_authenticate_acquired", "4,1009"); int32_t prevCount = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); @@ -341,10 +341,10 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateAcquired) { } TEST_F(FakeFingerprintEngineTest, InteractionDetect) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::operation_detect_interaction_acquired(""); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("operation_detect_interaction_acquired", ""); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kDetectInteract); @@ -355,9 +355,9 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetect) { } TEST_F(FakeFingerprintEngineTest, InteractionDetectCancel) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); mCancel.set_value(); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); @@ -367,9 +367,9 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectCancel) { } TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit({}); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().setopt("enrollment_hit", std::nullopt); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); @@ -377,8 +377,8 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { } TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(25); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 25); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); @@ -386,8 +386,8 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { } TEST_F(FakeFingerprintEngineTest, InteractionDetectError) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::operation_detect_interaction_error(8); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().set("operation_detect_interaction_error", 8); mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); @@ -397,10 +397,10 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectError) { } TEST_F(FakeFingerprintEngineTest, InteractionDetectAcquired) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::operation_detect_interaction_acquired("4,1013"); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("operation_detect_interaction_acquired", "4,1013"); int32_t prevCount = mCallback->mLastAcquiredCount; mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); @@ -412,10 +412,10 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectAcquired) { } TEST_F(FakeFingerprintEngineTest, EnumerateEnrolled) { - FingerprintHalProperties::enrollments({2, 4, 8}); + Fingerprint::cfg().setopt("enrollments", {2, 4, 8}); mEngine.enumerateEnrollmentsImpl(mCallback.get()); ASSERT_EQ(3, mCallback->mLastEnrollmentEnumerated.size()); - for (auto id : FingerprintHalProperties::enrollments()) { + for (auto id : Fingerprint::cfg().getopt("enrollments")) { ASSERT_TRUE(std::find(mCallback->mLastEnrollmentEnumerated.begin(), mCallback->mLastEnrollmentEnumerated.end(), id) != mCallback->mLastEnrollmentEnumerated.end()); @@ -423,9 +423,9 @@ TEST_F(FakeFingerprintEngineTest, EnumerateEnrolled) { } TEST_F(FakeFingerprintEngineTest, RemoveEnrolled) { - FingerprintHalProperties::enrollments({2, 4, 8, 1}); + Fingerprint::cfg().setopt("enrollments", {2, 4, 8, 1}); mEngine.removeEnrollmentsImpl(mCallback.get(), {2, 8}); - auto enrolls = FingerprintHalProperties::enrollments(); + auto enrolls = Fingerprint::cfg().getopt("enrollments"); ASSERT_EQ(2, mCallback->mLastEnrollmentRemoved.size()); for (auto id : {2, 8}) { ASSERT_TRUE(std::find(mCallback->mLastEnrollmentRemoved.begin(), @@ -509,17 +509,17 @@ TEST_F(FakeFingerprintEngineTest, parseEnrollmentCaptureFail) { } TEST_F(FakeFingerprintEngineTest, randomLatency) { - FingerprintHalProperties::operation_detect_interaction_latency({}); - ASSERT_EQ(DEFAULT_LATENCY, - mEngine.getLatency(FingerprintHalProperties::operation_detect_interaction_latency())); - FingerprintHalProperties::operation_detect_interaction_latency({10}); - ASSERT_EQ(10, - mEngine.getLatency(FingerprintHalProperties::operation_detect_interaction_latency())); - FingerprintHalProperties::operation_detect_interaction_latency({1, 1000}); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {}); + ASSERT_EQ(DEFAULT_LATENCY, mEngine.getLatency(Fingerprint::cfg().getopt( + "operation_detect_interaction_latency"))); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {10}); + ASSERT_EQ(10, mEngine.getLatency(Fingerprint::cfg().getopt( + "operation_detect_interaction_latency"))); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {1, 1000}); std::set latencySet; for (int i = 0; i < 100; i++) { latencySet.insert(mEngine.getLatency( - FingerprintHalProperties::operation_detect_interaction_latency())); + Fingerprint::cfg().getopt("operation_detect_interaction_latency"))); } ASSERT_TRUE(latencySet.size() > 95); } diff --git a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp index 5a30db10e4..eb45f987b0 100644 --- a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp +++ b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp @@ -23,6 +23,7 @@ #include "FakeFingerprintEngine.h" #include "FakeFingerprintEngineUdfps.h" +#include "Fingerprint.h" using namespace ::android::fingerprint::virt; using namespace ::aidl::android::hardware::biometrics::fingerprint; @@ -99,7 +100,7 @@ class FakeFingerprintEngineUdfpsTest : public ::testing::Test { void TearDown() override { // reset to default - FingerprintHalProperties::sensor_location(""); + Fingerprint::cfg().set("sensor_location", ""); } FakeFingerprintEngineUdfps mEngine; @@ -113,14 +114,14 @@ bool isDefaultLocation(SensorLocation& sc) { TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationOk) { auto loc = "100:200:30"; - FingerprintHalProperties::sensor_location(loc); + Fingerprint::cfg().set("sensor_location", loc); SensorLocation sc = mEngine.getSensorLocation(); ASSERT_TRUE(sc.sensorLocationX == 100); ASSERT_TRUE(sc.sensorLocationY == 200); ASSERT_TRUE(sc.sensorRadius == 30); loc = "100:200:30:screen1"; - FingerprintHalProperties::sensor_location(loc); + Fingerprint::cfg().set("sensor_location", loc); sc = mEngine.getSensorLocation(); ASSERT_TRUE(sc.sensorLocationX == 100); ASSERT_TRUE(sc.sensorLocationY == 200); @@ -132,7 +133,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationBad) { const std::vector badStr{"", "100", "10:20", "10,20,5", "a:b:c"}; SensorLocation sc; for (const auto& s : badStr) { - FingerprintHalProperties::sensor_location(s); + Fingerprint::cfg().set("sensor_location", s); sc = mEngine.getSensorLocation(); ASSERT_TRUE(isDefaultLocation(sc)); } @@ -158,7 +159,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, enroll) { std::shared_ptr cb = ndk::SharedRefBase::make(); std::promise cancel; keymaster::HardwareAuthToken hat{.mac = {5, 6}}; - FingerprintHalProperties::next_enrollment("5:0,0:true"); + Fingerprint::cfg().set("next_enrollment", "5:0,0:true"); mEngine.notifyFingerdown(); mEngine.enrollImpl(cb.get(), hat, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kEnroll); @@ -169,10 +170,10 @@ TEST_F(FakeFingerprintEngineUdfpsTest, enroll) { } TEST_F(FakeFingerprintEngineUdfpsTest, detectInteraction) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::operation_detect_interaction_acquired(""); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("operation_detect_interaction_acquired", ""); std::shared_ptr cb = ndk::SharedRefBase::make(); std::promise cancel; mEngine.notifyFingerdown(); diff --git a/biometrics/fingerprint/aidl/default/tests/FakeLockoutTrackerTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeLockoutTrackerTest.cpp index 93c6f844ed..3c12b6d97f 100644 --- a/biometrics/fingerprint/aidl/default/tests/FakeLockoutTrackerTest.cpp +++ b/biometrics/fingerprint/aidl/default/tests/FakeLockoutTrackerTest.cpp @@ -21,6 +21,7 @@ #include #include "FakeLockoutTracker.h" +#include "Fingerprint.h" #include "util/Util.h" using namespace ::android::fingerprint::virt; @@ -35,32 +36,33 @@ class FakeLockoutTrackerTest : public ::testing::Test { static constexpr int32_t LOCKOUT_TIMED_DURATION = 100; void SetUp() override { - FingerprintHalProperties::lockout_timed_threshold(LOCKOUT_TIMED_THRESHOLD); - FingerprintHalProperties::lockout_timed_duration(LOCKOUT_TIMED_DURATION); - FingerprintHalProperties::lockout_permanent_threshold(LOCKOUT_PERMANENT_THRESHOLD); + Fingerprint::cfg().set("lockout_timed_threshold", LOCKOUT_TIMED_THRESHOLD); + Fingerprint::cfg().set("lockout_timed_duration", LOCKOUT_TIMED_DURATION); + Fingerprint::cfg().set("lockout_permanent_threshold", + LOCKOUT_PERMANENT_THRESHOLD); } void TearDown() override { // reset to default - FingerprintHalProperties::lockout_timed_threshold(5); - FingerprintHalProperties::lockout_timed_duration(20); - FingerprintHalProperties::lockout_permanent_threshold(10000); - FingerprintHalProperties::lockout_enable(false); - FingerprintHalProperties::lockout(false); + Fingerprint::cfg().set("lockout_timed_threshold", 5); + Fingerprint::cfg().set("lockout_timed_duration", 20); + Fingerprint::cfg().set("lockout_permanent_threshold", 10000); + Fingerprint::cfg().set("lockout_enable", false); + Fingerprint::cfg().set("lockout", false); } FakeLockoutTracker mLockoutTracker; }; TEST_F(FakeLockoutTrackerTest, addFailedAttemptDisable) { - FingerprintHalProperties::lockout_enable(false); + Fingerprint::cfg().set("lockout_enable", false); for (int i = 0; i < LOCKOUT_TIMED_THRESHOLD + 1; i++) mLockoutTracker.addFailedAttempt(); ASSERT_EQ(mLockoutTracker.getMode(), FakeLockoutTracker::LockoutMode::kNone); mLockoutTracker.reset(); } TEST_F(FakeLockoutTrackerTest, addFailedAttemptLockoutTimed) { - FingerprintHalProperties::lockout_enable(true); + Fingerprint::cfg().set("lockout_enable", true); for (int i = 0; i < LOCKOUT_TIMED_THRESHOLD; i++) mLockoutTracker.addFailedAttempt(); ASSERT_EQ(mLockoutTracker.getMode(), FakeLockoutTracker::LockoutMode::kTimed); // time left @@ -77,12 +79,12 @@ TEST_F(FakeLockoutTrackerTest, addFailedAttemptLockoutTimed) { } TEST_F(FakeLockoutTrackerTest, addFailedAttemptPermanent) { - FingerprintHalProperties::lockout_enable(true); + Fingerprint::cfg().set("lockout_enable", true); for (int i = 0; i < LOCKOUT_PERMANENT_THRESHOLD - 1; i++) mLockoutTracker.addFailedAttempt(); ASSERT_NE(mLockoutTracker.getMode(), FakeLockoutTracker::LockoutMode::kPermanent); mLockoutTracker.addFailedAttempt(); ASSERT_EQ(mLockoutTracker.getMode(), FakeLockoutTracker::LockoutMode::kPermanent); - ASSERT_TRUE(FingerprintHalProperties::lockout()); + ASSERT_TRUE(Fingerprint::cfg().get("lockout")); mLockoutTracker.reset(); } -- GitLab From 21999ff48c18cfb179becd471115c435d27ef6a7 Mon Sep 17 00:00:00 2001 From: Aaqib Ismail Date: Thu, 29 Feb 2024 12:14:02 -0800 Subject: [PATCH 391/418] Change HVAC_MAX_DEFROST_ON to front and back row area IDs This helps standardize commands sent by Assistant for using the defroster. Bug: 323101580 Test: m Change-Id: I006ca7fc779e011a3d3be8cac95fe34a3567d4b2 --- .../2.0/default/impl/vhal_v2_0/DefaultConfig.h | 3 ++- .../2.0/default/impl/vhal_v2_0/PropertyUtils.h | 3 +++ .../JsonConfigLoader/src/JsonConfigLoader.cpp | 2 ++ .../default_config/config/DefaultProperties.json | 13 ++----------- .../aidl/impl/utils/common/include/PropertyUtils.h | 2 ++ 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h index 4846bfb00a..f021f7b31d 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h @@ -449,7 +449,8 @@ const ConfigDeclaration kVehicleProperties[]{ {.config = {.prop = toInt(VehicleProperty::HVAC_MAX_DEFROST_ON), .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, - .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, + .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_FRONT_ROW}, + VehicleAreaConfig{.areaId = HVAC_REAR_ROW}}}, .initialValue = {.int32Values = {0}}}, {.config = {.prop = toInt(VehicleProperty::HVAC_RECIRC_ON), diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/PropertyUtils.h b/automotive/vehicle/2.0/default/impl/vhal_v2_0/PropertyUtils.h index f58e09a67d..e866f70337 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/PropertyUtils.h +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/PropertyUtils.h @@ -50,6 +50,9 @@ constexpr int ALL_WHEELS = VehicleAreaWheel::LEFT_REAR | VehicleAreaWheel::RIGHT_REAR); constexpr int SEAT_1_LEFT = (int)(VehicleAreaSeat::ROW_1_LEFT); constexpr int SEAT_1_RIGHT = (int)(VehicleAreaSeat::ROW_1_RIGHT); +constexpr int HVAC_FRONT_ROW = (int)(VehicleAreaSeat::ROW_1_LEFT | VehicleAreaSeat::ROW_1_RIGHT); +constexpr int HVAC_REAR_ROW = (int)(VehicleAreaSeat::ROW_2_LEFT | VehicleAreaSeat::ROW_2_CENTER | + VehicleAreaSeat::ROW_2_RIGHT); constexpr int HVAC_LEFT = (int)(VehicleAreaSeat::ROW_1_LEFT | VehicleAreaSeat::ROW_2_LEFT | VehicleAreaSeat::ROW_2_CENTER); constexpr int HVAC_RIGHT = (int)(VehicleAreaSeat::ROW_1_RIGHT | VehicleAreaSeat::ROW_2_RIGHT); diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp index ea1437ecb1..57af04c2d2 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp @@ -104,6 +104,8 @@ const std::unordered_map CONSTANTS_BY_NAME = { {"HVAC_ALL", HVAC_ALL}, {"HVAC_LEFT", HVAC_LEFT}, {"HVAC_RIGHT", HVAC_RIGHT}, + {"HVAC_FRONT_ROW", HVAC_FRONT_ROW}, + {"HVAC_REAR_ROW", HVAC_REAR_ROW}, {"WINDOW_1_LEFT", WINDOW_1_LEFT}, {"WINDOW_1_RIGHT", WINDOW_1_RIGHT}, {"WINDOW_2_LEFT", WINDOW_2_LEFT}, diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 0a859af695..2d1e9ab7fe 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -2033,19 +2033,10 @@ }, "areas": [ { - "areaId": "Constants::SEAT_1_LEFT" - }, - { - "areaId": "Constants::SEAT_1_RIGHT" + "areaId": "Constants::HVAC_FRONT_ROW" }, { - "areaId": "Constants::SEAT_2_LEFT" - }, - { - "areaId": "Constants::SEAT_2_RIGHT" - }, - { - "areaId": "Constants::SEAT_2_CENTER" + "areaId": "Constants::HVAC_REAR_ROW" } ] }, diff --git a/automotive/vehicle/aidl/impl/utils/common/include/PropertyUtils.h b/automotive/vehicle/aidl/impl/utils/common/include/PropertyUtils.h index 78b61f714e..f2327e1942 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/PropertyUtils.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/PropertyUtils.h @@ -97,6 +97,8 @@ constexpr int ALL_WHEELS = constexpr int HVAC_LEFT = SEAT_1_LEFT | SEAT_2_LEFT | SEAT_2_CENTER; constexpr int HVAC_RIGHT = SEAT_1_RIGHT | SEAT_2_RIGHT; constexpr int HVAC_ALL = HVAC_LEFT | HVAC_RIGHT; +constexpr int HVAC_FRONT_ROW = SEAT_1_LEFT | SEAT_1_RIGHT; +constexpr int HVAC_REAR_ROW = SEAT_2_LEFT | SEAT_2_CENTER | SEAT_2_RIGHT; } // namespace vehicle } // namespace automotive -- GitLab From ab4ac2ea0b4581a65421c0e6d270a5fe1fb6b6a1 Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Mon, 26 Feb 2024 11:39:12 -0800 Subject: [PATCH 392/418] Update client-side remote access test script. Change default launch emulator command to launch_emu to enable easier testing with built images. Add option: "--local-image" to use "aae emulatro run". Test: Manual run Bug: 326991438 Change-Id: I9b8783694e18968250e82b8c22cb02504b2dd08f --- .../test_grpc_server/impl/src/main.cpp | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp b/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp index 63324f3bc5..e1ee3203fe 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp +++ b/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp @@ -33,6 +33,8 @@ #include #include +namespace { + using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_SYSTEM_ENTER_GARAGE_MODE; using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_SYSTEM_REMOTE_ACCESS; using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_USER_POWER_ON; @@ -45,13 +47,18 @@ using ::grpc::ServerWriter; constexpr int SHUTDOWN_REQUEST = 289410889; constexpr int VEHICLE_IN_USE = 287313738; -const char* COMMAND_RUN_EMU = "source ~/.aae-toolbox/bin/bashrc && aae emulator run"; -const char* COMMAND_SET_VHAL_PROP = +constexpr char COMMAND_RUN_EMU_LOCAL_IMAGE[] = + "source ~/.aae-toolbox/bin/bashrc && aae emulator run"; +constexpr char COMMAND_RUN_EMU[] = "./launch_emu.sh -v \"-writable-system -selinux permissive\""; +constexpr char COMMAND_SET_VHAL_PROP[] = "adb -s emulator-5554 wait-for-device && adb -s emulator-5554 root " "&& sleep 1 && adb -s emulator-5554 wait-for-device && adb -s emulator-5554 shell " "dumpsys android.hardware.automotive.vehicle.IVehicle/default --set %d -i %d"; pid_t emuPid = 0; +const char* runEmuCommand = COMMAND_RUN_EMU; + +} // namespace void RunServer(const std::string& serviceAddr, std::shared_ptr service) { ServerBuilder builder; @@ -95,7 +102,7 @@ bool powerOnEmu(ServiceImpl* service, int32_t bootupReason) { return false; } service->setBootupReason(bootupReason); - emuPid = runCommand(COMMAND_RUN_EMU); + emuPid = runCommand(runEmuCommand); printf("Emulator started in process: %d\n", emuPid); return true; } @@ -247,10 +254,16 @@ class MyServiceImpl final : public ServiceImpl { }; }; +// Usage: TestWakeupClientServerHost [--local-image] [service_address_to_start] int main(int argc, char** argv) { std::string serviceAddr = GRPC_SERVICE_ADDRESS; - if (argc > 1) { - serviceAddr = argv[1]; + for (int i = 1; i < argc; i++) { + char* arg = argv[1]; + if (strcmp(arg, "--local-image") == 0) { + runEmuCommand = COMMAND_RUN_EMU_LOCAL_IMAGE; + continue; + } + serviceAddr = arg; } // Let the server thread run, we will force kill the server when we exit the program. std::shared_ptr service = std::make_shared(); -- GitLab From c2b9eaa4e7162316bb07240e4b837883d83b761a Mon Sep 17 00:00:00 2001 From: Yu Shan Date: Thu, 29 Feb 2024 11:21:23 -0800 Subject: [PATCH 393/418] Fill in the missing status field. Fill in the missing status field for VEHICLE_IN_USE and AP_POWER_BOOTUP_REASON property. Test: Presubmit Bug: 327640442 Change-Id: I1320c57da5ec4c7910676a234b9c7bc0d3b6e3ea --- .../aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp index 072aafc2b4..c4bcdb39ab 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp @@ -907,6 +907,7 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::getVehicleInUse( auto result = mValuePool->obtainBoolean(response.isvehicleinuse()); result->prop = toInt(VehicleProperty::VEHICLE_IN_USE); result->areaId = 0; + result->status = VehiclePropertyStatus::AVAILABLE; result->timestamp = elapsedRealtimeNano(); return result; } @@ -924,6 +925,7 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::getApPowerBootupReason auto result = mValuePool->obtainInt32(response.bootupreason()); result->prop = toInt(VehicleProperty::AP_POWER_BOOTUP_REASON); result->areaId = 0; + result->status = VehiclePropertyStatus::AVAILABLE; result->timestamp = elapsedRealtimeNano(); return result; } -- GitLab From 0a36f19c736822382f9bfe7048d0c3a2b8e653d1 Mon Sep 17 00:00:00 2001 From: Liana Kazanova Date: Fri, 1 Mar 2024 19:08:25 +0000 Subject: [PATCH 394/418] Revert "Change HVAC_MAX_DEFROST_ON to front and back row area IDs" This reverts commit 21999ff48c18cfb179becd471115c435d27ef6a7. Reason for revert: DroidMonitor: Potential culprit for b/327699697 - verifying through ABTD before revert submission. Change-Id: I53a278f1317f5307441103dc42dc5be6f20d7075 --- .../2.0/default/impl/vhal_v2_0/DefaultConfig.h | 3 +-- .../2.0/default/impl/vhal_v2_0/PropertyUtils.h | 3 --- .../JsonConfigLoader/src/JsonConfigLoader.cpp | 2 -- .../default_config/config/DefaultProperties.json | 13 +++++++++++-- .../aidl/impl/utils/common/include/PropertyUtils.h | 2 -- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h index f021f7b31d..4846bfb00a 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h @@ -449,8 +449,7 @@ const ConfigDeclaration kVehicleProperties[]{ {.config = {.prop = toInt(VehicleProperty::HVAC_MAX_DEFROST_ON), .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, - .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_FRONT_ROW}, - VehicleAreaConfig{.areaId = HVAC_REAR_ROW}}}, + .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, .initialValue = {.int32Values = {0}}}, {.config = {.prop = toInt(VehicleProperty::HVAC_RECIRC_ON), diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/PropertyUtils.h b/automotive/vehicle/2.0/default/impl/vhal_v2_0/PropertyUtils.h index e866f70337..f58e09a67d 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/PropertyUtils.h +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/PropertyUtils.h @@ -50,9 +50,6 @@ constexpr int ALL_WHEELS = VehicleAreaWheel::LEFT_REAR | VehicleAreaWheel::RIGHT_REAR); constexpr int SEAT_1_LEFT = (int)(VehicleAreaSeat::ROW_1_LEFT); constexpr int SEAT_1_RIGHT = (int)(VehicleAreaSeat::ROW_1_RIGHT); -constexpr int HVAC_FRONT_ROW = (int)(VehicleAreaSeat::ROW_1_LEFT | VehicleAreaSeat::ROW_1_RIGHT); -constexpr int HVAC_REAR_ROW = (int)(VehicleAreaSeat::ROW_2_LEFT | VehicleAreaSeat::ROW_2_CENTER | - VehicleAreaSeat::ROW_2_RIGHT); constexpr int HVAC_LEFT = (int)(VehicleAreaSeat::ROW_1_LEFT | VehicleAreaSeat::ROW_2_LEFT | VehicleAreaSeat::ROW_2_CENTER); constexpr int HVAC_RIGHT = (int)(VehicleAreaSeat::ROW_1_RIGHT | VehicleAreaSeat::ROW_2_RIGHT); diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp index 57af04c2d2..ea1437ecb1 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp @@ -104,8 +104,6 @@ const std::unordered_map CONSTANTS_BY_NAME = { {"HVAC_ALL", HVAC_ALL}, {"HVAC_LEFT", HVAC_LEFT}, {"HVAC_RIGHT", HVAC_RIGHT}, - {"HVAC_FRONT_ROW", HVAC_FRONT_ROW}, - {"HVAC_REAR_ROW", HVAC_REAR_ROW}, {"WINDOW_1_LEFT", WINDOW_1_LEFT}, {"WINDOW_1_RIGHT", WINDOW_1_RIGHT}, {"WINDOW_2_LEFT", WINDOW_2_LEFT}, diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 2d1e9ab7fe..0a859af695 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -2033,10 +2033,19 @@ }, "areas": [ { - "areaId": "Constants::HVAC_FRONT_ROW" + "areaId": "Constants::SEAT_1_LEFT" + }, + { + "areaId": "Constants::SEAT_1_RIGHT" }, { - "areaId": "Constants::HVAC_REAR_ROW" + "areaId": "Constants::SEAT_2_LEFT" + }, + { + "areaId": "Constants::SEAT_2_RIGHT" + }, + { + "areaId": "Constants::SEAT_2_CENTER" } ] }, diff --git a/automotive/vehicle/aidl/impl/utils/common/include/PropertyUtils.h b/automotive/vehicle/aidl/impl/utils/common/include/PropertyUtils.h index f2327e1942..78b61f714e 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/PropertyUtils.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/PropertyUtils.h @@ -97,8 +97,6 @@ constexpr int ALL_WHEELS = constexpr int HVAC_LEFT = SEAT_1_LEFT | SEAT_2_LEFT | SEAT_2_CENTER; constexpr int HVAC_RIGHT = SEAT_1_RIGHT | SEAT_2_RIGHT; constexpr int HVAC_ALL = HVAC_LEFT | HVAC_RIGHT; -constexpr int HVAC_FRONT_ROW = SEAT_1_LEFT | SEAT_1_RIGHT; -constexpr int HVAC_REAR_ROW = SEAT_2_LEFT | SEAT_2_CENTER | SEAT_2_RIGHT; } // namespace vehicle } // namespace automotive -- GitLab From a41f25b14e8d35d2a8a3832e2343ff01e58f8544 Mon Sep 17 00:00:00 2001 From: Mathieu Mandret Date: Wed, 13 Mar 2024 14:51:32 +0100 Subject: [PATCH 395/418] Disable UWB before starting VtsHalUwbTargetTest VtsHalUwbTargetTest opens/closes UWB HAL multiple times. However UWB HAL only accepts 1 client at a time so if UWB is enabled Android Framework will have UWB HAL open and prevent any other client from opening it. Matching NFC VTS behavior from VtsAidlHalNfcTargetTest.cpp, VtsHalUwbTargetTest now disables UWB before running its tests. Test: atest VtsHalUwbTargetTest Bug: 328326697 (cherry picked from https://android-review.googlesource.com/q/commit:6bab73f7eaf9704347cbf5e7a56463b18c5773f9) Merged-In: I4dfff45015232bbd0a4445e42b13db3ff2d9e87c Change-Id: I4dfff45015232bbd0a4445e42b13db3ff2d9e87c --- uwb/aidl/vts/VtsHalUwbTargetTest.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/uwb/aidl/vts/VtsHalUwbTargetTest.cpp b/uwb/aidl/vts/VtsHalUwbTargetTest.cpp index 81d26ba06b..3b0b60657e 100644 --- a/uwb/aidl/vts/VtsHalUwbTargetTest.cpp +++ b/uwb/aidl/vts/VtsHalUwbTargetTest.cpp @@ -216,5 +216,12 @@ int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); ProcessState::self()->setThreadPoolMaxThreadCount(1); ProcessState::self()->startThreadPool(); - return RUN_ALL_TESTS(); + // UWB HAL only allows 1 client, make sure framework + // does not have UWB HAL open before running + std::system("/system/bin/cmd uwb disable-uwb"); + sleep(3); + auto status = RUN_ALL_TESTS(); + sleep(3); + std::system("/system/bin/cmd uwb enable-uwb"); + return status; } -- GitLab From 92e08f938798808aba70be6c6b7a9ca333ddee95 Mon Sep 17 00:00:00 2001 From: jimmyshiu Date: Fri, 15 Mar 2024 16:37:19 +0000 Subject: [PATCH 396/418] VTSHalPowerTarget: check if HintSession supported Igore HintSession testcases while HintSession isn't supported. Test: atest Power/PowerAidl Bug: 322112957 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:8191575b6717e99d00b247c6a21b29cda7eb3a52) Merged-In: Ia1161aeafcd541745e7e0da1bd4c1781dc535460 Change-Id: Ia1161aeafcd541745e7e0da1bd4c1781dc535460 --- power/aidl/vts/VtsHalPowerTargetTest.cpp | 40 +++++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/power/aidl/vts/VtsHalPowerTargetTest.cpp b/power/aidl/vts/VtsHalPowerTargetTest.cpp index 53fcef1a41..67efa7a90e 100644 --- a/power/aidl/vts/VtsHalPowerTargetTest.cpp +++ b/power/aidl/vts/VtsHalPowerTargetTest.cpp @@ -122,10 +122,16 @@ class PowerAidl : public testing::TestWithParam { power = IPower::fromBinder(ndk::SpAIBinder(binder)); auto status = power->getInterfaceVersion(&mServiceVersion); ASSERT_TRUE(status.isOk()); + if (mServiceVersion >= 2) { + status = power->createHintSession(getpid(), getuid(), kSelfTids, 16666666L, &mSession); + mSessionSupport = status.isOk(); + } } std::shared_ptr power; int32_t mServiceVersion; + std::shared_ptr mSession; + bool mSessionSupport = false; }; class HintSessionAidl : public PowerAidl { @@ -135,12 +141,11 @@ class HintSessionAidl : public PowerAidl { if (mServiceVersion < 2) { GTEST_SKIP() << "DEVICE not launching with Power V2 and beyond."; } - - auto status = power->createHintSession(getpid(), getuid(), kSelfTids, 16666666L, &mSession); - ASSERT_TRUE(status.isOk()); + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } ASSERT_NE(nullptr, mSession); } - std::shared_ptr mSession; }; class FMQAidl : public PowerAidl { @@ -239,6 +244,9 @@ TEST_P(PowerAidl, isBoostSupported) { } TEST_P(PowerAidl, getHintSessionPreferredRate) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 2) { GTEST_SKIP() << "DEVICE not launching with Power V2 and beyond."; } @@ -250,6 +258,9 @@ TEST_P(PowerAidl, getHintSessionPreferredRate) { } TEST_P(PowerAidl, createHintSessionWithConfig) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 5) { GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; } @@ -271,6 +282,9 @@ TEST_P(PowerAidl, hasFixedPerformance) { } TEST_P(HintSessionAidl, createAndCloseHintSession) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } ASSERT_TRUE(mSession->pause().isOk()); ASSERT_TRUE(mSession->resume().isOk()); // Test normal destroy operation @@ -279,6 +293,9 @@ TEST_P(HintSessionAidl, createAndCloseHintSession) { } TEST_P(HintSessionAidl, createHintSessionFailed) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } std::shared_ptr session; auto status = power->createHintSession(getpid(), getuid(), kEmptyTids, 16666666L, &session); @@ -288,11 +305,17 @@ TEST_P(HintSessionAidl, createHintSessionFailed) { } TEST_P(HintSessionAidl, updateAndReportDurations) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } ASSERT_TRUE(mSession->updateTargetWorkDuration(16666667LL).isOk()); ASSERT_TRUE(mSession->reportActualWorkDuration(kDurations).isOk()); } TEST_P(HintSessionAidl, sendSessionHint) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 4) { GTEST_SKIP() << "DEVICE not launching with Power V4 and beyond."; } @@ -306,6 +329,9 @@ TEST_P(HintSessionAidl, sendSessionHint) { } TEST_P(HintSessionAidl, setThreads) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 4) { GTEST_SKIP() << "DEVICE not launching with Power V4 and beyond."; } @@ -318,6 +344,9 @@ TEST_P(HintSessionAidl, setThreads) { } TEST_P(HintSessionAidl, setSessionMode) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 5) { GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; } @@ -333,6 +362,9 @@ TEST_P(HintSessionAidl, setSessionMode) { } TEST_P(HintSessionAidl, getSessionConfig) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 5) { GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; } -- GitLab From be7e9756eb79f7083ab7e095074a04196c0aa1cc Mon Sep 17 00:00:00 2001 From: jimmyshiu Date: Tue, 19 Mar 2024 08:56:42 +0000 Subject: [PATCH 397/418] VTSHalPowerTarget: Add condition check for FMQAidl teardown While FMQAidl Setup() was skipped, some uninitialized objects would be used in FMQAidl Teardown() which caused the test failed. Add some condition check to prevent from using uninitialized objects. Test: atest VTSHalPowerTarget Bug: 328330332 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d3753ec91db5416f939e633e5020f50ced84c0e9) Merged-In: I83081cbef66da1d74d87e191f266cb16fb559b85 Change-Id: I83081cbef66da1d74d87e191f266cb16fb559b85 --- power/aidl/vts/VtsHalPowerTargetTest.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/power/aidl/vts/VtsHalPowerTargetTest.cpp b/power/aidl/vts/VtsHalPowerTargetTest.cpp index 67efa7a90e..939deb2966 100644 --- a/power/aidl/vts/VtsHalPowerTargetTest.cpp +++ b/power/aidl/vts/VtsHalPowerTargetTest.cpp @@ -180,8 +180,12 @@ class FMQAidl : public PowerAidl { ASSERT_NE(mEventFlag, nullptr); } virtual void TearDown() { - mSession->close(); - ASSERT_TRUE(power->closeSessionChannel(getpid(), getuid()).isOk()); + if (mSession) { + mSession->close(); + if (mChannel->isValid()) { + ASSERT_TRUE(power->closeSessionChannel(getpid(), getuid()).isOk()); + } + } } protected: -- GitLab From 1fd980454d59b05f1cf60096b38e1e2523a690bf Mon Sep 17 00:00:00 2001 From: Jimmy Shiu Date: Wed, 20 Mar 2024 08:21:22 +0000 Subject: [PATCH 398/418] VTSHalPowerTarget.FMQAidl: Make sure session status OK before running test While PowerHal version >= 5 but devices didn't support HintSession. We should skip the test. Otherwise, it would fail. Test: atest VTSHalPowerTarget Bug: 328330332 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a18a54d5ae1b7fc14709b728a23a7874142f81b9) Merged-In: I0f757ab825020ded02c31231969e13f3375e47f3 Change-Id: I0f757ab825020ded02c31231969e13f3375e47f3 --- power/aidl/vts/VtsHalPowerTargetTest.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/power/aidl/vts/VtsHalPowerTargetTest.cpp b/power/aidl/vts/VtsHalPowerTargetTest.cpp index 939deb2966..272674f194 100644 --- a/power/aidl/vts/VtsHalPowerTargetTest.cpp +++ b/power/aidl/vts/VtsHalPowerTargetTest.cpp @@ -159,7 +159,10 @@ class FMQAidl : public PowerAidl { auto status = power->createHintSessionWithConfig(getpid(), getuid(), kSelfTids, 16666666L, SessionTag::OTHER, &mSessionConfig, &mSession); - ASSERT_TRUE(status.isOk()); + mSessionSupport = status.isOk(); + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } ASSERT_NE(nullptr, mSession); status = power->getSessionChannel(getpid(), getuid(), &mChannelConfig); -- GitLab From f3b86212a5c57996f5888718872434aebde3c69a Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Tue, 19 Mar 2024 11:01:26 +0900 Subject: [PATCH 399/418] Update APF VTS for VSR-14 compliance Modified the VTS to check the APF version is 4 (or higher) as mandated by VSR-14. Test: TH (cherry picked from https://android-review.googlesource.com/q/commit:fe83a98b3e139a0caf7d7f5b64ec3144e26b9b41) Merged-In: I28f6579bf426e5338880fcc6afff33c769f29634 Change-Id: I28f6579bf426e5338880fcc6afff33c769f29634 --- wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 b426cdbf1c..e8b2d5709a 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -180,9 +180,9 @@ TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { EXPECT_TRUE(isFeatureSupported(IWifiStaIface::FeatureSetMask::APF)); StaApfPacketFilterCapabilities apf_caps = {}; EXPECT_TRUE(wifi_sta_iface_->getApfPacketFilterCapabilities(&apf_caps).isOk()); - // The APF version must be 4 and the usable memory must be at least + // The APF version must be 4 or higher and the usable memory must be at least // 1024 bytes. - EXPECT_EQ(apf_caps.version, 4); + EXPECT_GE(apf_caps.version, 4); EXPECT_GE(apf_caps.maxLength, 1024); } } -- GitLab From 9ac9ece25be34015415e4109103057656217b35c Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Mon, 19 Feb 2024 16:55:53 +0900 Subject: [PATCH 400/418] Adapt CheckApfIsSupported for VSR-15 compatibility This commit updates CheckApfIsSupported to align with VSR-15 requirements. APF should have minimum of 2000 bytes usable memory. Bug: 303356901 Test: TH (cherry picked from https://android-review.googlesource.com/q/commit:641f0aed53c80751a8f19e551c522d7c4671691f) Merged-In: I2a2dbc22e1532fcb11ab256830cecba9f6c54446 Change-Id: I2a2dbc22e1532fcb11ab256830cecba9f6c54446 --- .../functional/wifi_sta_iface_aidl_test.cpp | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) 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 e8b2d5709a..c87fe13298 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -176,14 +176,18 @@ TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { } StaApfPacketFilterCapabilities apf_caps = {}; EXPECT_TRUE(wifi_sta_iface_->getApfPacketFilterCapabilities(&apf_caps).isOk()); - } else { - EXPECT_TRUE(isFeatureSupported(IWifiStaIface::FeatureSetMask::APF)); - StaApfPacketFilterCapabilities apf_caps = {}; - EXPECT_TRUE(wifi_sta_iface_->getApfPacketFilterCapabilities(&apf_caps).isOk()); - // The APF version must be 4 or higher and the usable memory must be at least - // 1024 bytes. - EXPECT_GE(apf_caps.version, 4); - EXPECT_GE(apf_caps.maxLength, 1024); + return; + } + + EXPECT_TRUE(isFeatureSupported(IWifiStaIface::FeatureSetMask::APF)); + StaApfPacketFilterCapabilities apf_caps = {}; + EXPECT_TRUE(wifi_sta_iface_->getApfPacketFilterCapabilities(&apf_caps).isOk()); + EXPECT_GE(apf_caps.version, 4); + // Based on VSR-14 the usable memory must be at least 1024 bytes. + EXPECT_GE(apf_caps.maxLength, 1024); + if (vendor_api_level >= __ANDROID_API_V__) { + // Based on VSR-15 the usable memory must be at least 2000 bytes. + EXPECT_GE(apf_caps.maxLength, 2000); } } -- GitLab From 6ec760d3aa4e71f8475b6f269276bcff4ac6c463 Mon Sep 17 00:00:00 2001 From: Doug Ferraz Date: Fri, 22 Mar 2024 19:54:26 -0400 Subject: [PATCH 401/418] Bluetooth HCI: Add VTS requirement for HCI 4.2 Bug: 285456310 Test: atest VtsHalBluetoothTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:83b2267b785037bcb54a904e4eecea1ddb3b0f22) Merged-In: I056b924543ac349beb9b0eddaf039b0aa9187821 Change-Id: I056b924543ac349beb9b0eddaf039b0aa9187821 --- .../aidl/vts/VtsHalBluetoothTargetTest.cpp | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp b/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp index 24eb4d0871..4d32ab2fbc 100644 --- a/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp +++ b/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp @@ -118,6 +118,10 @@ static bool isTv() { testing::deviceSupportsFeature("android.hardware.type.television"); } +static bool isHandheld() { + return testing::deviceSupportsFeature("android.hardware.type.handheld"); +} + class ThroughputLogger { public: explicit ThroughputLogger(std::string task) @@ -1039,6 +1043,47 @@ TEST_P(BluetoothAidlTest, Vsr_Bluetooth5Requirements) { ASSERT_GE(num_resolving_list, kMinLeResolvingListForBt5); } +/** + * Requirements + * + * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. + * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). + */ +TEST_P(BluetoothAidlTest, Vsr_Bluetooth4_2Requirements) { + // test only applies to handheld devices + if (!isHandheld()) { + return; + } + + std::vector version_event; + send_and_wait_for_cmd_complete(ReadLocalVersionInformationBuilder::Create(), + version_event); + auto version_view = ReadLocalVersionInformationCompleteView::Create( + CommandCompleteView::Create(EventView::Create(PacketView( + std::make_shared>(version_event))))); + ASSERT_TRUE(version_view.IsValid()); + ASSERT_EQ(::bluetooth::hci::ErrorCode::SUCCESS, version_view.GetStatus()); + auto version = version_view.GetLocalVersionInformation(); + // Starting with Android 15, Fails when HCI version is lower than 4.2. + ASSERT_GE(static_cast(version.hci_version_), + static_cast(::bluetooth::hci::HciVersion::V_4_2)); + ASSERT_GE(static_cast(version.lmp_version_), + static_cast(::bluetooth::hci::LmpVersion::V_4_2)); + + std::vector le_features_event; + send_and_wait_for_cmd_complete(LeReadLocalSupportedFeaturesBuilder::Create(), + le_features_event); + auto le_features_view = LeReadLocalSupportedFeaturesCompleteView::Create( + CommandCompleteView::Create(EventView::Create(PacketView( + std::make_shared>(le_features_event))))); + ASSERT_TRUE(le_features_view.IsValid()); + ASSERT_EQ(::bluetooth::hci::ErrorCode::SUCCESS, le_features_view.GetStatus()); + auto le_features = le_features_view.GetLeFeatures(); + ASSERT_TRUE(le_features & + static_cast(LLFeaturesBits::LE_EXTENDED_ADVERTISING)); + +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothAidlTest); INSTANTIATE_TEST_SUITE_P(PerInstance, BluetoothAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames( -- GitLab From c09f0cbe5cfd09f29c03d95f3984603dd6d2503f Mon Sep 17 00:00:00 2001 From: Doug Ferraz Date: Mon, 25 Mar 2024 13:03:10 -0400 Subject: [PATCH 402/418] Bluetooth HCI: Add VTS requirement for HCI 4.2 - HIDL version Bug: 285456310 Test: atest VtsHalBluetoothV1_1TargetTest (cherry picked from https://android-review.googlesource.com/q/commit:2984a7509693a85f4ff74f57f672e42cb581b0fe) Merged-In: I0af583e35428f8ec8c9c360d9e28c1c909ad9001 Change-Id: I0af583e35428f8ec8c9c360d9e28c1c909ad9001 --- .../VtsHalBluetoothV1_0TargetTest.cpp | 77 +++++++++++++++++-- .../VtsHalBluetoothV1_1TargetTest.cpp | 67 +++++++++++++++- 2 files changed, 135 insertions(+), 9 deletions(-) diff --git a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp index 945108796a..63d04c2047 100644 --- a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp +++ b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp @@ -43,6 +43,8 @@ using ::android::hardware::bluetooth::V1_0::Status; #define HCI_MINIMUM_HCI_VERSION 5 // Bluetooth Core Specification 3.0 + HS #define HCI_MINIMUM_LMP_VERSION 5 // Bluetooth Core Specification 3.0 + HS +#define HCI_BLUETOOTH4_2_HCI_VERSION 8 // Bluetooth 4.2 +#define HCI_BLUETOOTH4_2_LMP_VERSION 8 // Bluetooth 4.2 #define NUM_HCI_COMMANDS_BANDWIDTH 1000 #define NUM_SCO_PACKETS_BANDWIDTH 1000 #define NUM_ACL_PACKETS_BANDWIDTH 1000 @@ -52,6 +54,7 @@ using ::android::hardware::bluetooth::V1_0::Status; #define WAIT_FOR_ACL_DATA_TIMEOUT std::chrono::milliseconds(1000) #define INTERFACE_CLOSE_DELAY_MS std::chrono::milliseconds(600) +// { OCF, OGF << 2, Length of command parameters} #define COMMAND_HCI_SHOULD_BE_UNKNOWN \ { 0xff, 0x3B, 0x08, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } #define COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION \ @@ -64,6 +67,10 @@ using ::android::hardware::bluetooth::V1_0::Status; { 0x03, 0x0c, 0x00 } #define COMMAND_HCI_WRITE_LOCAL_NAME \ { 0x13, 0x0c, 0xf8 } +#define COMMAND_HCI_READ_LOCAL_SUPPORTED_FEATURES \ + { 0x03, 0x04 << 2, 0x00 } // OGF=0x04, OCF=0x0003 / 7.4 INFORMATIONAL PARAMETERS +#define COMMAND_HCI_LE_READ_LOCAL_SUPPORTED_FEATURES \ + { 0x03, 0x08 << 2, 0x00 } // OGF=0x08, OCF=0x0003 / 7.8 LE CONTROLLER COMMANDS #define HCI_STATUS_SUCCESS 0x00 #define HCI_STATUS_UNKNOWN_HCI_COMMAND 0x01 @@ -85,6 +92,30 @@ using ::android::hardware::bluetooth::V1_0::Status; #define EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE 6 #define EVENT_LOCAL_HCI_VERSION_BYTE EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE #define EVENT_LOCAL_LMP_VERSION_BYTE EVENT_LOCAL_HCI_VERSION_BYTE + 3 +/** + * See Bluetooth Spec 5.4, Vol 2, Part C + * Link Manager Protocol, 3.3 Feature Mask Definition + * + * No | Supported Feature | Byte | Bit | Page + * ... + * 38 | LE Supported (Controller) | 4 | 6 | 0 + * ... + */ +#define EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BYTE \ + (EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE + 0x04) +#define EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BITMASK (0x01 << 6) +/** + * See Bluetooth Spec 5.4, Vol 6, Part B + * 4.6 Feature Support + * + * Bit | Link Layer Feature + * ... + * 5 | LE Data Packet Length Extension + * ... + */ +#define EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_EXTENSION_BYTE \ + (EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE + 0x00) +#define EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_BITMASK (0x01 << 5) #define EVENT_CONNECTION_COMPLETE_PARAM_LENGTH 11 #define EVENT_CONNECTION_COMPLETE_TYPE 11 @@ -209,7 +240,7 @@ class BluetoothHidlTest : public ::testing::TestWithParam { std::vector& acl_handles); void handle_no_ops(); void wait_for_event(bool timeout_is_error); - void wait_for_command_complete_event(hidl_vec cmd); + hidl_vec wait_for_command_complete_event(hidl_vec cmd); int wait_for_completed_packets_event(uint16_t handle); class BluetoothHciDeathRecipient : public hidl_death_recipient { @@ -338,17 +369,19 @@ void BluetoothHidlTest::wait_for_event(bool timeout_is_error = true) { } // Wait until a COMMAND_COMPLETE is received. -void BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { +hidl_vec BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { wait_for_event(); hidl_vec event = event_queue.front(); event_queue.pop(); - ASSERT_GT(event.size(), + EXPECT_GT(event.size(), static_cast(EVENT_COMMAND_COMPLETE_STATUS_BYTE)); - ASSERT_EQ(EVENT_COMMAND_COMPLETE, event[EVENT_CODE_BYTE]); - ASSERT_EQ(cmd[0], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE]); - ASSERT_EQ(cmd[1], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE + 1]); - ASSERT_EQ(HCI_STATUS_SUCCESS, event[EVENT_COMMAND_COMPLETE_STATUS_BYTE]); + EXPECT_EQ(EVENT_COMMAND_COMPLETE, event[EVENT_CODE_BYTE]); + EXPECT_EQ(cmd[0], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE]); + EXPECT_EQ(cmd[1], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE + 1]); + EXPECT_EQ(HCI_STATUS_SUCCESS, event[EVENT_COMMAND_COMPLETE_STATUS_BYTE]); + + return event; } // Send the command to read the controller's buffer sizes. @@ -623,6 +656,36 @@ TEST_P(BluetoothHidlTest, HciVersionTest) { ASSERT_LE(HCI_MINIMUM_LMP_VERSION, event[EVENT_LOCAL_LMP_VERSION_BYTE]); } +/** + * Requirements + * + * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. + * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). + */ +TEST_P(BluetoothHidlTest, Bluetooth4_2) { + // Bluetooth 4.2+ + hidl_vec cmd = COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION; + bluetooth->sendHciCommand(cmd); + auto event = wait_for_command_complete_event(cmd); + + EXPECT_LE(HCI_BLUETOOTH4_2_HCI_VERSION, event[EVENT_LOCAL_HCI_VERSION_BYTE]); + EXPECT_LE(HCI_BLUETOOTH4_2_LMP_VERSION, event[EVENT_LOCAL_LMP_VERSION_BYTE]); + + // BLE + cmd = COMMAND_HCI_READ_LOCAL_SUPPORTED_FEATURES; + bluetooth->sendHciCommand(cmd); + event = wait_for_command_complete_event(cmd); + EXPECT_TRUE(event[EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BYTE] & + EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BITMASK); + + // BLE Data Length Extension + cmd = COMMAND_HCI_LE_READ_LOCAL_SUPPORTED_FEATURES; + bluetooth->sendHciCommand(cmd); + event = wait_for_command_complete_event(cmd); + EXPECT_TRUE(event[EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_EXTENSION_BYTE] & + EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_BITMASK); +} + // Send an unknown HCI command and wait for the error message. TEST_P(BluetoothHidlTest, HciUnknownCommand) { hidl_vec cmd = COMMAND_HCI_SHOULD_BE_UNKNOWN; diff --git a/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp b/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp index 28ac6034cf..5a455bf9f9 100644 --- a/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp +++ b/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp @@ -43,6 +43,8 @@ using ::android::hardware::bluetooth::V1_1::IBluetoothHciCallbacks; #define HCI_MINIMUM_HCI_VERSION 5 // Bluetooth Core Specification 3.0 + HS #define HCI_MINIMUM_LMP_VERSION 5 // Bluetooth Core Specification 3.0 + HS +#define HCI_BLUETOOTH4_2_HCI_VERSION 8 // Bluetooth 4.2 +#define HCI_BLUETOOTH4_2_LMP_VERSION 8 // Bluetooth 4.2 #define NUM_HCI_COMMANDS_BANDWIDTH 1000 #define NUM_SCO_PACKETS_BANDWIDTH 1000 #define NUM_ACL_PACKETS_BANDWIDTH 1000 @@ -52,6 +54,7 @@ using ::android::hardware::bluetooth::V1_1::IBluetoothHciCallbacks; #define WAIT_FOR_ACL_DATA_TIMEOUT std::chrono::milliseconds(1000) #define INTERFACE_CLOSE_DELAY_MS std::chrono::milliseconds(200) +// { OCF, OGF << 2, Length of bytes of command parameters } #define COMMAND_HCI_SHOULD_BE_UNKNOWN \ { 0xff, 0x3B, 0x08, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } #define COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION \ @@ -64,6 +67,10 @@ using ::android::hardware::bluetooth::V1_1::IBluetoothHciCallbacks; { 0x03, 0x0c, 0x00 } #define COMMAND_HCI_WRITE_LOCAL_NAME \ { 0x13, 0x0c, 0xf8 } +#define COMMAND_HCI_READ_LOCAL_SUPPORTED_FEATURES \ + { 0x03, 0x04 << 2, 0x00 } // OGF=0x04, OCF=0x0003 / 7.4 INFORMATIONAL PARAMETERS +#define COMMAND_HCI_LE_READ_LOCAL_SUPPORTED_FEATURES \ + { 0x03, 0x08 << 2, 0x00 } // OGF=0x08, OCF=0x0003 / 7.8 LE CONTROLLER COMMANDS #define HCI_STATUS_SUCCESS 0x00 #define HCI_STATUS_UNKNOWN_HCI_COMMAND 0x01 @@ -85,6 +92,30 @@ using ::android::hardware::bluetooth::V1_1::IBluetoothHciCallbacks; #define EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE 6 #define EVENT_LOCAL_HCI_VERSION_BYTE EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE #define EVENT_LOCAL_LMP_VERSION_BYTE EVENT_LOCAL_HCI_VERSION_BYTE + 3 +/** + * See Bluetooth Spec 5.4, Vol 2, Part C + * Link Manager Protocol, 3.3 Feature Mask Definition + * + * No | Supported Feature | Byte | Bit | Page + * ... + * 38 | LE Supported (Controller) | 4 | 6 | 0 + * ... + */ +#define EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BYTE \ + (EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE + 0x04) +#define EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BITMASK (0x01 << 6) +/** + * See Bluetooth Spec 5.4, Vol 6, Part B + * 4.6 Feature Support + * + * Bit | Link Layer Feature + * ... + * 5 | LE Data Packet Length Extension + * ... + */ +#define EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_EXTENSION_BYTE \ + (EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE + 0x00) +#define EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_BITMASK (0x01 << 5) #define EVENT_CONNECTION_COMPLETE_PARAM_LENGTH 11 #define EVENT_CONNECTION_COMPLETE_TYPE 11 @@ -211,7 +242,7 @@ class BluetoothHidlTest : public ::testing::TestWithParam { std::vector* acl_handles); void handle_no_ops(); void wait_for_event(bool timeout_is_error); - void wait_for_command_complete_event(hidl_vec cmd); + hidl_vec wait_for_command_complete_event(hidl_vec cmd); int wait_for_completed_packets_event(uint16_t handle); class BluetoothHciDeathRecipient : public hidl_death_recipient { @@ -350,7 +381,7 @@ void BluetoothHidlTest::wait_for_event(bool timeout_is_error = true) { } // Wait until a COMMAND_COMPLETE is received. -void BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { +hidl_vec BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { wait_for_event(); hidl_vec event = event_queue.front(); event_queue.pop(); @@ -361,6 +392,8 @@ void BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { EXPECT_EQ(cmd[0], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE]); EXPECT_EQ(cmd[1], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE + 1]); EXPECT_EQ(HCI_STATUS_SUCCESS, event[EVENT_COMMAND_COMPLETE_STATUS_BYTE]); + + return event; } // Send the command to read the controller's buffer sizes. @@ -646,6 +679,36 @@ TEST_P(BluetoothHidlTest, HciVersionTest) { EXPECT_LE(HCI_MINIMUM_LMP_VERSION, event[EVENT_LOCAL_LMP_VERSION_BYTE]); } +/** + * Requirements + * + * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. + * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). + */ +TEST_P(BluetoothHidlTest, Bluetooth4_2) { + // Bluetooth 4.2+ + hidl_vec cmd = COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION; + bluetooth->sendHciCommand(cmd); + auto event = wait_for_command_complete_event(cmd); + + EXPECT_LE(HCI_BLUETOOTH4_2_HCI_VERSION, event[EVENT_LOCAL_HCI_VERSION_BYTE]); + EXPECT_LE(HCI_BLUETOOTH4_2_LMP_VERSION, event[EVENT_LOCAL_LMP_VERSION_BYTE]); + + // BLE + cmd = COMMAND_HCI_READ_LOCAL_SUPPORTED_FEATURES; + bluetooth->sendHciCommand(cmd); + event = wait_for_command_complete_event(cmd); + EXPECT_TRUE(event[EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BYTE] & + EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BITMASK); + + // BLE Data Length Extension + cmd = COMMAND_HCI_LE_READ_LOCAL_SUPPORTED_FEATURES; + bluetooth->sendHciCommand(cmd); + event = wait_for_command_complete_event(cmd); + EXPECT_TRUE(event[EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_EXTENSION_BYTE] & + EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_BITMASK); +} + // Send an unknown HCI command and wait for the error message. TEST_P(BluetoothHidlTest, HciUnknownCommand) { hidl_vec cmd = COMMAND_HCI_SHOULD_BE_UNKNOWN; -- GitLab From 96ea1e059caf81c533b9a03b8749e9890461317e Mon Sep 17 00:00:00 2001 From: Doug Ferraz Date: Mon, 25 Mar 2024 20:04:19 -0400 Subject: [PATCH 403/418] Bluetooth HCI: Add VTS requirement for HCI 4.2 - Annotations Bug: 285456310 Test: atest VtsHalBluetoothV1_1TargetTest Test: atest VtsHalBluetoothV1_0TargetTest Test: atest VtsHalBluetoothTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:eff7b9102fa5353d96822b5e7b401b033bdd4513) Merged-In: I5a910d2a7d778b2e64a524d0a389b911c080e189 Change-Id: I5a910d2a7d778b2e64a524d0a389b911c080e189 --- .../1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp | 4 ++-- .../1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp | 4 ++-- bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp index 63d04c2047..82dda61fbf 100644 --- a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp +++ b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp @@ -657,11 +657,11 @@ TEST_P(BluetoothHidlTest, HciVersionTest) { } /** - * Requirements - * * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). */ +// @VsrTest = 5.3.14-007 +// @VsrTest = 5.3.14-008 TEST_P(BluetoothHidlTest, Bluetooth4_2) { // Bluetooth 4.2+ hidl_vec cmd = COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION; diff --git a/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp b/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp index 5a455bf9f9..687765f113 100644 --- a/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp +++ b/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp @@ -680,11 +680,11 @@ TEST_P(BluetoothHidlTest, HciVersionTest) { } /** - * Requirements - * * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). */ +// @VsrTest = 5.3.14-007 +// @VsrTest = 5.3.14-008 TEST_P(BluetoothHidlTest, Bluetooth4_2) { // Bluetooth 4.2+ hidl_vec cmd = COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION; diff --git a/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp b/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp index 4d32ab2fbc..87f0f112a9 100644 --- a/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp +++ b/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp @@ -1044,11 +1044,11 @@ TEST_P(BluetoothAidlTest, Vsr_Bluetooth5Requirements) { } /** - * Requirements - * * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). */ +// @VsrTest = 5.3.14-007 +// @VsrTest = 5.3.14-008 TEST_P(BluetoothAidlTest, Vsr_Bluetooth4_2Requirements) { // test only applies to handheld devices if (!isHandheld()) { -- GitLab From 07d20c3c431afac48734a21ca90f34dd6949e53a Mon Sep 17 00:00:00 2001 From: Nikolay Elenkov Date: Tue, 9 Apr 2024 02:20:53 +0000 Subject: [PATCH 404/418] Merge "Enable Java backend for ISecretKeeper" into main am: 6e71b471a9 am: 7243db7045 Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3007148 Signed-off-by: Automerger Merge Worker (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ea595e8e4f01272c0d2664bf7d7ec3710a697709) Merged-In: I27e6da54bed1b5fec01ef6f5a7582aedba4e01a9 Change-Id: I27e6da54bed1b5fec01ef6f5a7582aedba4e01a9 --- security/secretkeeper/aidl/Android.bp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/security/secretkeeper/aidl/Android.bp b/security/secretkeeper/aidl/Android.bp index 4975ab9126..d282621270 100644 --- a/security/secretkeeper/aidl/Android.bp +++ b/security/secretkeeper/aidl/Android.bp @@ -28,7 +28,8 @@ aidl_interface { frozen: true, backend: { java: { - enabled: false, + enabled: true, + platform_apis: true, }, ndk: { enabled: true, -- GitLab From a043ca88c480e0f5fd8de17daeca65d1e87ea50b Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Thu, 28 Mar 2024 15:15:44 -0700 Subject: [PATCH 405/418] audio: Fix some VTS issues on real devices 1. Skip testing of stream I/O on certain types of mix ports. 2. Skip testing of connection of BT SCO device. Bug: 300735639 Bug: 326888356 Bug: 328010709 Bug: 331516432 Test: atest VtsHalAudioCoreTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:69d60aa02ccb1fd744750eaa929264b7b433956e) Merged-In: I9b8bbf2014e223375c8f8400ff2af32268803706 Change-Id: I9b8bbf2014e223375c8f8400ff2af32268803706 --- audio/aidl/common/include/Utils.h | 6 +++++ .../vts/VtsHalAudioCoreModuleTargetTest.cpp | 22 ++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/audio/aidl/common/include/Utils.h b/audio/aidl/common/include/Utils.h index ef312d501c..a1008a4d89 100644 --- a/audio/aidl/common/include/Utils.h +++ b/audio/aidl/common/include/Utils.h @@ -174,6 +174,12 @@ constexpr U makeBitPositionFlagMask(std::initializer_list flags) { return result; } +template , + typename = std::enable_if_t::value>> +constexpr bool isAnyBitPositionFlagSet(U mask, std::initializer_list flags) { + return (mask & makeBitPositionFlagMask(flags)) != 0; +} + constexpr int32_t frameCountFromDurationUs(long durationUs, int32_t sampleRateHz) { return (static_cast(durationUs) * sampleRateHz) / 1000000LL; } diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index 7373073cff..4a7bfbde2b 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -56,6 +56,7 @@ using namespace android; using aidl::android::hardware::audio::common::AudioOffloadMetadata; using aidl::android::hardware::audio::common::getChannelCount; +using aidl::android::hardware::audio::common::isAnyBitPositionFlagSet; using aidl::android::hardware::audio::common::isBitPositionFlagSet; using aidl::android::hardware::audio::common::isTelephonyDeviceType; using aidl::android::hardware::audio::common::isValidAudioMode; @@ -85,6 +86,7 @@ using aidl::android::media::audio::common::AudioDeviceDescription; using aidl::android::media::audio::common::AudioDeviceType; using aidl::android::media::audio::common::AudioDualMonoMode; using aidl::android::media::audio::common::AudioFormatType; +using aidl::android::media::audio::common::AudioInputFlags; using aidl::android::media::audio::common::AudioIoFlags; using aidl::android::media::audio::common::AudioLatencyMode; using aidl::android::media::audio::common::AudioMMapPolicy; @@ -1749,8 +1751,13 @@ TEST_P(AudioCoreModule, TryConnectMissingDevice) { for (const auto& port : ports) { // Virtual devices may not require external hardware and thus can always be connected. if (port.ext.get().device.type.connection == - AudioDeviceDescription::CONNECTION_VIRTUAL) + AudioDeviceDescription::CONNECTION_VIRTUAL || + // SCO devices are handled at low level by DSP, may not be able to check actual + // connection. + port.ext.get().device.type.connection == + AudioDeviceDescription::CONNECTION_BT_SCO) { continue; + } AudioPort portWithData = GenerateUniqueDeviceAddress(port), connectedPort; ScopedAStatus status = module->connectExternalDevice(portWithData, &connectedPort); EXPECT_STATUS(EX_ILLEGAL_STATE, status) << "static port " << portWithData.toString(); @@ -3780,6 +3787,19 @@ class AudioStreamIo : public AudioCoreModuleBase, } for (const auto& portConfig : allPortConfigs) { SCOPED_TRACE(portConfig.toString()); + // Certain types of ports can not be used without special preconditions. + if ((IOTraits::is_input && + isAnyBitPositionFlagSet( + portConfig.flags.value().template get(), + {AudioInputFlags::MMAP_NOIRQ, AudioInputFlags::VOIP_TX, + AudioInputFlags::HW_HOTWORD})) || + (!IOTraits::is_input && + isAnyBitPositionFlagSet( + portConfig.flags.value().template get(), + {AudioOutputFlags::MMAP_NOIRQ, AudioOutputFlags::VOIP_RX, + AudioOutputFlags::COMPRESS_OFFLOAD, AudioOutputFlags::INCALL_MUSIC}))) { + continue; + } const bool isNonBlocking = IOTraits::is_input ? false -- GitLab From 5e51445c1d453a557d3d09ade7b9f1364e820e97 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 10 Apr 2024 14:22:13 -0700 Subject: [PATCH 406/418] audio: Use allow list for device connection types in TryConnectMissingDevice Limit the connection types to test to the following: - HDMI* - IP_V4 - USB Only these connection types can be easily checked by the HAL for presence of an external device. Bug: 326888643 Test: atest VtsHalAudioCoreTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:7b9b9e03e5c82e95b017222089b3915817095cef) Merged-In: I659e14a150b3043ead8d844cd89a2c4700d57efd Change-Id: I659e14a150b3043ead8d844cd89a2c4700d57efd --- .../vts/VtsHalAudioCoreModuleTargetTest.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index 4a7bfbde2b..8b08945e89 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -1740,6 +1740,11 @@ TEST_P(AudioCoreModule, SetAudioPortConfigInvalidPortConfigId) { } TEST_P(AudioCoreModule, TryConnectMissingDevice) { + // Limit checks to connection types that are known to be detectable by HAL implementations. + static const std::set kCheckedConnectionTypes{ + AudioDeviceDescription::CONNECTION_HDMI, AudioDeviceDescription::CONNECTION_HDMI_ARC, + AudioDeviceDescription::CONNECTION_HDMI_EARC, AudioDeviceDescription::CONNECTION_IP_V4, + AudioDeviceDescription::CONNECTION_USB}; ASSERT_NO_FATAL_FAILURE(SetUpModuleConfig()); std::vector ports = moduleConfig->getExternalDevicePorts(); if (ports.empty()) { @@ -1748,14 +1753,10 @@ TEST_P(AudioCoreModule, TryConnectMissingDevice) { WithDebugFlags doNotSimulateConnections = WithDebugFlags::createNested(*debug); doNotSimulateConnections.flags().simulateDeviceConnections = false; ASSERT_NO_FATAL_FAILURE(doNotSimulateConnections.SetUp(module.get())); + bool hasAtLeastOneCheckedConnection = false; for (const auto& port : ports) { - // Virtual devices may not require external hardware and thus can always be connected. - if (port.ext.get().device.type.connection == - AudioDeviceDescription::CONNECTION_VIRTUAL || - // SCO devices are handled at low level by DSP, may not be able to check actual - // connection. - port.ext.get().device.type.connection == - AudioDeviceDescription::CONNECTION_BT_SCO) { + if (kCheckedConnectionTypes.count( + port.ext.get().device.type.connection) == 0) { continue; } AudioPort portWithData = GenerateUniqueDeviceAddress(port), connectedPort; @@ -1768,6 +1769,10 @@ TEST_P(AudioCoreModule, TryConnectMissingDevice) { EXPECT_IS_OK(module->disconnectExternalDevice(connectedPort.id)) << "when disconnecting device port ID " << connectedPort.id; } + hasAtLeastOneCheckedConnection = true; + } + if (!hasAtLeastOneCheckedConnection) { + GTEST_SKIP() << "No external devices with connection types that can be checked."; } } -- GitLab From 90d580b735bcdd20aad84cd07e9d0278c9f980ab Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 17 Apr 2024 14:33:59 -0700 Subject: [PATCH 407/418] audio: Fix IStreamIn.getActiveMicrophones test Since "active" means "used by the stream for acquiring data," it was unreasonable to expect the list of active microphones to be non-empty prior to actually starting data acquisition. This change adds running of 'burst' commands before calling 'getActiveMicrophones'. To reuse existing code some refactorings have been made. Added 'AudioInputFlags::HOTWORD_TAP' to the list of port config flags for which I/O testing is not performed. Bug: 328010709 Bug: 328362233 Test: atest VtsHalAudioCoreTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:eee5499ba8381b50a29a541c2077b040a642fa18) Merged-In: I876c0b6d7365e104ec9ed8cf5033a83f822006b6 Change-Id: I876c0b6d7365e104ec9ed8cf5033a83f822006b6 --- .../vts/VtsHalAudioCoreModuleTargetTest.cpp | 338 ++++++++++-------- 1 file changed, 198 insertions(+), 140 deletions(-) diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index 8b08945e89..039695b360 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -2883,6 +2883,177 @@ class StreamFixture { std::unique_ptr> mStream; }; +class StreamLogicDefaultDriver : public StreamLogicDriver { + public: + StreamLogicDefaultDriver(std::shared_ptr commands, size_t frameSizeBytes) + : mCommands(commands), mFrameSizeBytes(frameSizeBytes) { + mCommands->rewind(); + } + + // The three methods below is intended to be called after the worker + // thread has joined, thus no extra synchronization is needed. + bool hasObservablePositionIncrease() const { return mObservablePositionIncrease; } + bool hasRetrogradeObservablePosition() const { return mRetrogradeObservablePosition; } + std::string getUnexpectedStateTransition() const { return mUnexpectedTransition; } + + bool done() override { return mCommands->done(); } + TransitionTrigger getNextTrigger(int maxDataSize, int* actualSize) override { + auto trigger = mCommands->getTrigger(); + if (StreamDescriptor::Command* command = std::get_if(&trigger); + command != nullptr) { + if (command->getTag() == StreamDescriptor::Command::Tag::burst) { + if (actualSize != nullptr) { + // In the output scenario, reduce slightly the fmqByteCount to verify + // that the HAL module always consumes all data from the MQ. + if (maxDataSize > static_cast(mFrameSizeBytes)) { + LOG(DEBUG) << __func__ << ": reducing data size by " << mFrameSizeBytes; + maxDataSize -= mFrameSizeBytes; + } + *actualSize = maxDataSize; + } + command->set(maxDataSize); + } else { + if (actualSize != nullptr) *actualSize = 0; + } + } + return trigger; + } + bool interceptRawReply(const StreamDescriptor::Reply&) override { return false; } + bool processValidReply(const StreamDescriptor::Reply& reply) override { + if (reply.observable.frames != StreamDescriptor::Position::UNKNOWN) { + if (mPreviousFrames.has_value()) { + if (reply.observable.frames > mPreviousFrames.value()) { + mObservablePositionIncrease = true; + } else if (reply.observable.frames < mPreviousFrames.value()) { + mRetrogradeObservablePosition = true; + } + } + mPreviousFrames = reply.observable.frames; + } + + auto expected = mCommands->getExpectedStates(); + if (expected.count(reply.state) == 0) { + std::string s = + std::string("Unexpected transition from the state ") + .append(mPreviousState.has_value() ? toString(mPreviousState.value()) + : "") + .append(" to ") + .append(toString(reply.state)) + .append(" (expected one of ") + .append(::android::internal::ToString(expected)) + .append(") caused by the ") + .append(toString(mCommands->getTrigger())); + LOG(ERROR) << __func__ << ": " << s; + mUnexpectedTransition = std::move(s); + return false; + } + mCommands->advance(reply.state); + mPreviousState = reply.state; + return true; + } + + protected: + std::shared_ptr mCommands; + const size_t mFrameSizeBytes; + std::optional mPreviousState; + std::optional mPreviousFrames; + bool mObservablePositionIncrease = false; + bool mRetrogradeObservablePosition = false; + std::string mUnexpectedTransition; +}; + +// Defined later together with state transition sequences. +std::shared_ptr makeBurstCommands(bool isSync); + +// Certain types of ports can not be used without special preconditions. +static bool skipStreamIoTestForMixPortConfig(const AudioPortConfig& portConfig) { + return (portConfig.flags.value().getTag() == AudioIoFlags::input && + isAnyBitPositionFlagSet(portConfig.flags.value().template get(), + {AudioInputFlags::MMAP_NOIRQ, AudioInputFlags::VOIP_TX, + AudioInputFlags::HW_HOTWORD, AudioInputFlags::HOTWORD_TAP})) || + (portConfig.flags.value().getTag() == AudioIoFlags::output && + isAnyBitPositionFlagSet( + portConfig.flags.value().template get(), + {AudioOutputFlags::MMAP_NOIRQ, AudioOutputFlags::VOIP_RX, + AudioOutputFlags::COMPRESS_OFFLOAD, AudioOutputFlags::INCALL_MUSIC})); +} + +template +class StreamFixtureWithWorker { + public: + explicit StreamFixtureWithWorker(bool isSync) : mIsSync(isSync) {} + + void SetUp(IModule* module, ModuleConfig* moduleConfig, const AudioPort& devicePort) { + mStream = std::make_unique>(); + ASSERT_NO_FATAL_FAILURE( + mStream->SetUpStreamForDevicePort(module, moduleConfig, devicePort)); + MaybeSetSkipTestReason(); + } + + void SetUp(IModule* module, ModuleConfig* moduleConfig, const AudioPort& mixPort, + const AudioPort& devicePort) { + mStream = std::make_unique>(); + ASSERT_NO_FATAL_FAILURE( + mStream->SetUpStreamForPortsPair(module, moduleConfig, mixPort, devicePort)); + MaybeSetSkipTestReason(); + } + + void SendBurstCommands(bool validatePosition = true) { + ASSERT_NO_FATAL_FAILURE(StartWorkerToSendBurstCommands()); + ASSERT_NO_FATAL_FAILURE(JoinWorkerAfterBurstCommands(validatePosition)); + } + + void StartWorkerToSendBurstCommands() { + const StreamContext* context = mStream->getStreamContext(); + mWorkerDriver = std::make_unique(makeBurstCommands(mIsSync), + context->getFrameSizeBytes()); + mWorker = std::make_unique::Worker>( + *context, mWorkerDriver.get(), mStream->getStreamEventReceiver()); + LOG(DEBUG) << __func__ << ": starting " << IOTraits::directionStr << " worker..."; + ASSERT_TRUE(mWorker->start()); + } + + void JoinWorkerAfterBurstCommands(bool validatePosition = true) { + // Must call 'prepareToClose' before attempting to join because the stream may be stuck. + std::shared_ptr common; + ASSERT_IS_OK(mStream->getStream()->getStreamCommon(&common)); + ASSERT_IS_OK(common->prepareToClose()); + LOG(DEBUG) << __func__ << ": joining " << IOTraits::directionStr << " worker..."; + mWorker->join(); + EXPECT_FALSE(mWorker->hasError()) << mWorker->getError(); + EXPECT_EQ("", mWorkerDriver->getUnexpectedStateTransition()); + if (validatePosition) { + if (IOTraits::is_input) { + EXPECT_TRUE(mWorkerDriver->hasObservablePositionIncrease()); + } + EXPECT_FALSE(mWorkerDriver->hasRetrogradeObservablePosition()); + } + mWorker.reset(); + mWorkerDriver.reset(); + } + + void TeardownPatch() { mStream->TeardownPatch(); } + + const AudioDevice& getDevice() const { return mStream->getDevice(); } + Stream* getStream() const { return mStream->getStream(); } + std::string skipTestReason() const { + return !mSkipTestReason.empty() ? mSkipTestReason : mStream->skipTestReason(); + } + + private: + void MaybeSetSkipTestReason() { + if (skipStreamIoTestForMixPortConfig(mStream->getPortConfig())) { + mSkipTestReason = "Mix port config is not supported for stream I/O tests"; + } + } + + const bool mIsSync; + std::string mSkipTestReason; + std::unique_ptr> mStream; + std::unique_ptr mWorkerDriver; + std::unique_ptr::Worker> mWorker; +}; + template class AudioStream : public AudioCoreModule { public: @@ -3288,10 +3459,12 @@ TEST_P(AudioStreamIn, ActiveMicrophones) { if (micDevicePorts.empty()) continue; atLeastOnePort = true; SCOPED_TRACE(port.toString()); - StreamFixture stream; - ASSERT_NO_FATAL_FAILURE(stream.SetUpStreamForPortsPair(module.get(), moduleConfig.get(), - port, micDevicePorts[0])); + StreamFixtureWithWorker stream(true /*isSync*/); + ASSERT_NO_FATAL_FAILURE( + stream.SetUp(module.get(), moduleConfig.get(), port, micDevicePorts[0])); if (!stream.skipTestReason().empty()) continue; + + ASSERT_NO_FATAL_FAILURE(stream.SendBurstCommands(false /*validatePosition*/)); std::vector activeMics; EXPECT_IS_OK(stream.getStream()->getActiveMicrophones(&activeMics)); EXPECT_FALSE(activeMics.empty()); @@ -3305,6 +3478,7 @@ TEST_P(AudioStreamIn, ActiveMicrophones) { EXPECT_NE(0UL, mic.channelMapping.size()) << "No channels specified for the microphone \"" << mic.id << "\""; } + stream.TeardownPatch(); // Now the port of the stream is not connected, check that there are no active microphones. std::vector emptyMics; @@ -3682,85 +3856,6 @@ TEST_P(AudioStreamOut, UpdateOffloadMetadata) { } } -class StreamLogicDefaultDriver : public StreamLogicDriver { - public: - StreamLogicDefaultDriver(std::shared_ptr commands, size_t frameSizeBytes) - : mCommands(commands), mFrameSizeBytes(frameSizeBytes) { - mCommands->rewind(); - } - - // The three methods below is intended to be called after the worker - // thread has joined, thus no extra synchronization is needed. - bool hasObservablePositionIncrease() const { return mObservablePositionIncrease; } - bool hasRetrogradeObservablePosition() const { return mRetrogradeObservablePosition; } - std::string getUnexpectedStateTransition() const { return mUnexpectedTransition; } - - bool done() override { return mCommands->done(); } - TransitionTrigger getNextTrigger(int maxDataSize, int* actualSize) override { - auto trigger = mCommands->getTrigger(); - if (StreamDescriptor::Command* command = std::get_if(&trigger); - command != nullptr) { - if (command->getTag() == StreamDescriptor::Command::Tag::burst) { - if (actualSize != nullptr) { - // In the output scenario, reduce slightly the fmqByteCount to verify - // that the HAL module always consumes all data from the MQ. - if (maxDataSize > static_cast(mFrameSizeBytes)) { - LOG(DEBUG) << __func__ << ": reducing data size by " << mFrameSizeBytes; - maxDataSize -= mFrameSizeBytes; - } - *actualSize = maxDataSize; - } - command->set(maxDataSize); - } else { - if (actualSize != nullptr) *actualSize = 0; - } - } - return trigger; - } - bool interceptRawReply(const StreamDescriptor::Reply&) override { return false; } - bool processValidReply(const StreamDescriptor::Reply& reply) override { - if (reply.observable.frames != StreamDescriptor::Position::UNKNOWN) { - if (mPreviousFrames.has_value()) { - if (reply.observable.frames > mPreviousFrames.value()) { - mObservablePositionIncrease = true; - } else if (reply.observable.frames < mPreviousFrames.value()) { - mRetrogradeObservablePosition = true; - } - } - mPreviousFrames = reply.observable.frames; - } - - auto expected = mCommands->getExpectedStates(); - if (expected.count(reply.state) == 0) { - std::string s = - std::string("Unexpected transition from the state ") - .append(mPreviousState.has_value() ? toString(mPreviousState.value()) - : "") - .append(" to ") - .append(toString(reply.state)) - .append(" (expected one of ") - .append(::android::internal::ToString(expected)) - .append(") caused by the ") - .append(toString(mCommands->getTrigger())); - LOG(ERROR) << __func__ << ": " << s; - mUnexpectedTransition = std::move(s); - return false; - } - mCommands->advance(reply.state); - mPreviousState = reply.state; - return true; - } - - protected: - std::shared_ptr mCommands; - const size_t mFrameSizeBytes; - std::optional mPreviousState; - std::optional mPreviousFrames; - bool mObservablePositionIncrease = false; - bool mRetrogradeObservablePosition = false; - std::string mUnexpectedTransition; -}; - enum { NAMED_CMD_NAME, NAMED_CMD_DELAY_MS, @@ -3792,19 +3887,7 @@ class AudioStreamIo : public AudioCoreModuleBase, } for (const auto& portConfig : allPortConfigs) { SCOPED_TRACE(portConfig.toString()); - // Certain types of ports can not be used without special preconditions. - if ((IOTraits::is_input && - isAnyBitPositionFlagSet( - portConfig.flags.value().template get(), - {AudioInputFlags::MMAP_NOIRQ, AudioInputFlags::VOIP_TX, - AudioInputFlags::HW_HOTWORD})) || - (!IOTraits::is_input && - isAnyBitPositionFlagSet( - portConfig.flags.value().template get(), - {AudioOutputFlags::MMAP_NOIRQ, AudioOutputFlags::VOIP_RX, - AudioOutputFlags::COMPRESS_OFFLOAD, AudioOutputFlags::INCALL_MUSIC}))) { - continue; - } + if (skipStreamIoTestForMixPortConfig(portConfig)) continue; const bool isNonBlocking = IOTraits::is_input ? false @@ -4616,8 +4699,9 @@ static std::vector getRemoteSubmixModuleInstance() { template class WithRemoteSubmix { public: - WithRemoteSubmix() = default; - explicit WithRemoteSubmix(AudioDeviceAddress address) : mAddress(address) {} + WithRemoteSubmix() : mStream(true /*isSync*/) {} + explicit WithRemoteSubmix(AudioDeviceAddress address) + : mStream(true /*isSync*/), mAddress(address) {} WithRemoteSubmix(const WithRemoteSubmix&) = delete; WithRemoteSubmix& operator=(const WithRemoteSubmix&) = delete; @@ -4637,57 +4721,31 @@ class WithRemoteSubmix { void SetUp(IModule* module, ModuleConfig* moduleConfig) { auto devicePort = getRemoteSubmixAudioPort(moduleConfig, mAddress); ASSERT_TRUE(devicePort.has_value()) << "Device port for remote submix device not found"; - ASSERT_NO_FATAL_FAILURE(SetUp(module, moduleConfig, *devicePort)); + ASSERT_NO_FATAL_FAILURE(mStream.SetUp(module, moduleConfig, *devicePort)); + mAddress = mStream.getDevice().address; } - void SendBurstCommandsStartWorker() { - const StreamContext* context = mStream->getStreamContext(); - mWorkerDriver = std::make_unique(makeBurstCommands(true), - context->getFrameSizeBytes()); - mWorker = std::make_unique::Worker>( - *context, mWorkerDriver.get(), mStream->getStreamEventReceiver()); - LOG(DEBUG) << __func__ << ": starting " << IOTraits::directionStr << " worker..."; - ASSERT_TRUE(mWorker->start()); + void StartWorkerToSendBurstCommands() { + ASSERT_NO_FATAL_FAILURE(mStream.StartWorkerToSendBurstCommands()); } - void SendBurstCommandsJoinWorker() { - // Must call 'prepareToClose' before attempting to join because the stream may be - // stuck due to absence of activity from the other side of the remote submix pipe. - std::shared_ptr common; - ASSERT_IS_OK(mStream->getStream()->getStreamCommon(&common)); - ASSERT_IS_OK(common->prepareToClose()); - LOG(DEBUG) << __func__ << ": joining " << IOTraits::directionStr << " worker..."; - mWorker->join(); - EXPECT_FALSE(mWorker->hasError()) << mWorker->getError(); - EXPECT_EQ("", mWorkerDriver->getUnexpectedStateTransition()); - if (IOTraits::is_input) { - EXPECT_TRUE(mWorkerDriver->hasObservablePositionIncrease()); - } - EXPECT_FALSE(mWorkerDriver->hasRetrogradeObservablePosition()); - mWorker.reset(); - mWorkerDriver.reset(); + void JoinWorkerAfterBurstCommands() { + ASSERT_NO_FATAL_FAILURE(mStream.JoinWorkerAfterBurstCommands()); } void SendBurstCommands() { - ASSERT_NO_FATAL_FAILURE(SendBurstCommandsStartWorker()); - ASSERT_NO_FATAL_FAILURE(SendBurstCommandsJoinWorker()); + ASSERT_NO_FATAL_FAILURE(mStream.StartWorkerToSendBurstCommands()); + ASSERT_NO_FATAL_FAILURE(mStream.JoinWorkerAfterBurstCommands()); } std::optional getAudioDeviceAddress() const { return mAddress; } - std::string skipTestReason() const { return mStream->skipTestReason(); } + std::string skipTestReason() const { return mStream.skipTestReason(); } private: - void SetUp(IModule* module, ModuleConfig* moduleConfig, const AudioPort& devicePort) { - mStream = std::make_unique>(); - ASSERT_NO_FATAL_FAILURE( - mStream->SetUpStreamForDevicePort(module, moduleConfig, devicePort)); - mAddress = mStream->getDevice().address; - } + void SetUp(IModule* module, ModuleConfig* moduleConfig, const AudioPort& devicePort) {} + StreamFixtureWithWorker mStream; std::optional mAddress; - std::unique_ptr> mStream; - std::unique_ptr mWorkerDriver; - std::unique_ptr::Worker> mWorker; }; class AudioModuleRemoteSubmix : public AudioCoreModule { @@ -4737,10 +4795,10 @@ TEST_P(AudioModuleRemoteSubmix, OutputAndInput) { ASSERT_EQ("", streamIn.skipTestReason()); // Start writing into the output stream. - ASSERT_NO_FATAL_FAILURE(streamOut.SendBurstCommandsStartWorker()); + ASSERT_NO_FATAL_FAILURE(streamOut.StartWorkerToSendBurstCommands()); // Simultaneously, read from the input stream. ASSERT_NO_FATAL_FAILURE(streamIn.SendBurstCommands()); - ASSERT_NO_FATAL_FAILURE(streamOut.SendBurstCommandsJoinWorker()); + ASSERT_NO_FATAL_FAILURE(streamOut.JoinWorkerAfterBurstCommands()); } TEST_P(AudioModuleRemoteSubmix, OpenInputMultipleTimes) { @@ -4758,15 +4816,15 @@ TEST_P(AudioModuleRemoteSubmix, OpenInputMultipleTimes) { ASSERT_EQ("", streamIns[i]->skipTestReason()); } // Start writing into the output stream. - ASSERT_NO_FATAL_FAILURE(streamOut.SendBurstCommandsStartWorker()); + ASSERT_NO_FATAL_FAILURE(streamOut.StartWorkerToSendBurstCommands()); // Simultaneously, read from input streams. for (size_t i = 0; i < streamInCount; i++) { - ASSERT_NO_FATAL_FAILURE(streamIns[i]->SendBurstCommandsStartWorker()); + ASSERT_NO_FATAL_FAILURE(streamIns[i]->StartWorkerToSendBurstCommands()); } for (size_t i = 0; i < streamInCount; i++) { - ASSERT_NO_FATAL_FAILURE(streamIns[i]->SendBurstCommandsJoinWorker()); + ASSERT_NO_FATAL_FAILURE(streamIns[i]->JoinWorkerAfterBurstCommands()); } - ASSERT_NO_FATAL_FAILURE(streamOut.SendBurstCommandsJoinWorker()); + ASSERT_NO_FATAL_FAILURE(streamOut.JoinWorkerAfterBurstCommands()); // Clean up input streams in the reverse order because the device connection is owned // by the first one. for (size_t i = streamInCount; i != 0; --i) { -- GitLab From 4f2111e7faf5cccb23f3a02adee5dc2c5afb525e Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Thu, 18 Apr 2024 14:17:47 -0700 Subject: [PATCH 408/418] audio: Update 'PauseSync' scenario in AudioStreamIoOutTest According to the definition of the 'PAUSED' state in StreamDescriptor.aidl, s/w (the client) stops writing once the buffer is filled up. That means, it is allowed for an output stream not to consume data from the MQ while in the paused state, so allow that in the test. Also, update the state transition sequence in the test to flush any data after making a burst while in the 'PAUSED' state. Bug: 328010709 Test: atest VtsHalAudioCoreTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:22e17d43bd9a56785b9c56a65500c6b6f1e56494) Merged-In: Icb5fd02ca4ede63d7ae33613ab66cb96f3e6df29 Change-Id: Icb5fd02ca4ede63d7ae33613ab66cb96f3e6df29 --- audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index 039695b360..e26b81ba0b 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -1040,7 +1040,9 @@ class StreamWriterLogic : public StreamCommonLogic { << ": received invalid byte count in the reply: " << reply.fmqByteCount; return Status::ABORT; } - if (getDataMQ()->availableToWrite() != getDataMQ()->getQuantumCount()) { + // It is OK for the implementation to leave data in the MQ when the stream is paused. + if (reply.state != StreamDescriptor::State::PAUSED && + getDataMQ()->availableToWrite() != getDataMQ()->getQuantumCount()) { LOG(ERROR) << __func__ << ": the HAL module did not consume all data from the data MQ: " << "available to write " << getDataMQ()->availableToWrite() << ", total size: " << getDataMQ()->getQuantumCount(); @@ -4550,9 +4552,8 @@ std::shared_ptr makePauseCommands(bool isInput, bool isSync) { std::make_pair(State::PAUSED, kStartCommand), std::make_pair(State::ACTIVE, kPauseCommand), std::make_pair(State::PAUSED, kBurstCommand), - std::make_pair(State::PAUSED, kStartCommand), - std::make_pair(State::ACTIVE, kPauseCommand)}, - State::PAUSED); + std::make_pair(State::PAUSED, kFlushCommand)}, + State::IDLE); if (!isSync) { idle.children().push_back( d->makeNodes({std::make_pair(State::TRANSFERRING, kPauseCommand), -- GitLab From 003f10c01c4259180ffc7e3dc2bf6d5ac80c69ad Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 17 Apr 2024 17:10:31 -0700 Subject: [PATCH 409/418] audio: Skip stream I/O test for "echo reference" input device This is aligned with the HIDL implementation VTS. The echo reference device can't provide any input until certain preconditions are met, and modeling these preconditions in the test is not trivial. Also, add the information into the mix port into the trace scope for easier identification on test failure. Bug: 328010709 Test: atest VtsHalAudioCoreTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:a62c5df181b37bb7a066cbd154cb13a59a596345) Merged-In: I737479d8ef1961791ac3bd82aeb779453d2e49f4 Change-Id: I737479d8ef1961791ac3bd82aeb779453d2e49f4 --- audio/aidl/vts/ModuleConfig.cpp | 5 +++++ audio/aidl/vts/ModuleConfig.h | 2 ++ audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp | 10 ++++++++++ 3 files changed, 17 insertions(+) diff --git a/audio/aidl/vts/ModuleConfig.cpp b/audio/aidl/vts/ModuleConfig.cpp index 2b86271361..d24c4c843e 100644 --- a/audio/aidl/vts/ModuleConfig.cpp +++ b/audio/aidl/vts/ModuleConfig.cpp @@ -551,6 +551,11 @@ std::vector ModuleConfig::generateAudioDevicePortConfigs( return result; } +std::optional ModuleConfig::getPort(int32_t portId) { + auto portsIt = findById(mPorts, portId); + return portsIt != mPorts.end() ? std::optional(*portsIt) : std::nullopt; +} + ndk::ScopedAStatus ModuleConfig::onExternalDeviceConnected(IModule* module, const AudioPort& port) { RETURN_STATUS_IF_ERROR(module->getAudioPorts(&mPorts)); RETURN_STATUS_IF_ERROR(module->getAudioRoutes(&mRoutes)); diff --git a/audio/aidl/vts/ModuleConfig.h b/audio/aidl/vts/ModuleConfig.h index 4a87f8cbd2..27286e5da7 100644 --- a/audio/aidl/vts/ModuleConfig.h +++ b/audio/aidl/vts/ModuleConfig.h @@ -166,6 +166,8 @@ class ModuleConfig { return *config.begin(); } + std::optional getPort(int32_t portId); + ndk::ScopedAStatus onExternalDeviceConnected( aidl::android::hardware::audio::core::IModule* module, const aidl::android::media::audio::common::AudioPort& port); diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index e26b81ba0b..c677e1bd89 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -2980,6 +2980,11 @@ static bool skipStreamIoTestForMixPortConfig(const AudioPortConfig& portConfig) AudioOutputFlags::COMPRESS_OFFLOAD, AudioOutputFlags::INCALL_MUSIC})); } +// Certain types of devices can not be used without special preconditions. +static bool skipStreamIoTestForDevice(const AudioDevice& device) { + return device.type.type == AudioDeviceType::IN_ECHO_REFERENCE; +} + template class StreamFixtureWithWorker { public: @@ -3888,6 +3893,9 @@ class AudioStreamIo : public AudioCoreModuleBase, GTEST_SKIP() << "No mix ports have attached devices"; } for (const auto& portConfig : allPortConfigs) { + auto port = moduleConfig->getPort(portConfig.portId); + ASSERT_TRUE(port.has_value()); + SCOPED_TRACE(port->toString()); SCOPED_TRACE(portConfig.toString()); if (skipStreamIoTestForMixPortConfig(portConfig)) continue; const bool isNonBlocking = @@ -3970,6 +3978,7 @@ class AudioStreamIo : public AudioCoreModuleBase, StreamFixture stream; ASSERT_NO_FATAL_FAILURE( stream.SetUpStreamForMixPortConfig(module.get(), moduleConfig.get(), portConfig)); + if (skipStreamIoTestForDevice(stream.getDevice())) return; ASSERT_EQ("", stream.skipTestReason()); StreamLogicDefaultDriver driver(commandsAndStates, stream.getStreamContext()->getFrameSizeBytes()); @@ -3998,6 +4007,7 @@ class AudioStreamIo : public AudioCoreModuleBase, StreamFixture stream; ASSERT_NO_FATAL_FAILURE( stream.SetUpPatchForMixPortConfig(module.get(), moduleConfig.get(), portConfig)); + if (skipStreamIoTestForDevice(stream.getDevice())) return; ASSERT_EQ("", stream.skipTestReason()); ASSERT_NO_FATAL_FAILURE(stream.TeardownPatchSetUpStream(module.get())); StreamLogicDefaultDriver driver(commandsAndStates, -- GitLab From 538537bc51458e808169dc13fd3e8e43b6a00156 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Thu, 18 Apr 2024 13:18:09 -0700 Subject: [PATCH 410/418] audio: Fix AudioPatchTest/AudioModulePatch#UpdateInvalidPatchId VTS test The test was using '0' as an "invalid" patch ID value, however this value is valid in the context of 'IModule.setAudioPatch' method and means "create a new patch and allocate and ID for it". Bug: 328010709 Test: atest VtsHalAudioCoreTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:8dd96d4c417f309824ac006cedc15118fd7a1363) Merged-In: Icd33f3cbd1602ec5aa162fa72fc3ddd59ccffbef Change-Id: Icd33f3cbd1602ec5aa162fa72fc3ddd59ccffbef --- .../vts/VtsHalAudioCoreModuleTargetTest.cpp | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index c677e1bd89..c26c0c896c 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -133,13 +133,23 @@ auto findAny(const std::vector& v, const std::set& ids) { } template -std::vector GetNonExistentIds(const C& allIds) { +std::vector GetNonExistentIds(const C& allIds, bool includeZero = true) { if (allIds.empty()) { - return std::vector{-1, 0, 1}; + return includeZero ? std::vector{-1, 0, 1} : std::vector{-1, 1}; } std::vector nonExistentIds; - nonExistentIds.push_back(*std::min_element(allIds.begin(), allIds.end()) - 1); - nonExistentIds.push_back(*std::max_element(allIds.begin(), allIds.end()) + 1); + if (auto value = *std::min_element(allIds.begin(), allIds.end()) - 1; + includeZero || value != 0) { + nonExistentIds.push_back(value); + } else { + nonExistentIds.push_back(value - 1); + } + if (auto value = *std::max_element(allIds.begin(), allIds.end()) + 1; + includeZero || value != 0) { + nonExistentIds.push_back(value); + } else { + nonExistentIds.push_back(value + 1); + } return nonExistentIds; } @@ -4206,7 +4216,7 @@ class AudioModulePatch : public AudioCoreModule { // Then use the same patch setting, except for having an invalid ID. std::set patchIds; ASSERT_NO_FATAL_FAILURE(GetAllPatchIds(&patchIds)); - for (const auto patchId : GetNonExistentIds(patchIds)) { + for (const auto patchId : GetNonExistentIds(patchIds, false /*includeZero*/)) { AudioPatch patchWithNonExistendId = patch.get(); patchWithNonExistendId.id = patchId; EXPECT_STATUS(EX_ILLEGAL_ARGUMENT, -- GitLab From 4f3d6de4e26593097233534814ec5b92af766237 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Fri, 19 Apr 2024 14:30:58 -0700 Subject: [PATCH 411/418] audio: Use more bursts in audio I/O VTS tests Some audio outputs use A/V sync and requre mode bursts in order to start reporting the presentation position. Bug: 300735639 Bug: 328010709 Test: atest VtsHalAudioCoreTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:a2a9fa50039d69643527020ab6706b319f0e6c62) Merged-In: Icad0942f2ba1dcd6f030a7dc4f37e22fdbd6dd71 Change-Id: Icad0942f2ba1dcd6f030a7dc4f37e22fdbd6dd71 --- .../vts/VtsHalAudioCoreModuleTargetTest.cpp | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index c26c0c896c..d576c7c826 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -791,6 +791,13 @@ struct StateDag : public Dag { }; return helper(v.begin(), helper); } + Node makeNodes(StreamDescriptor::State s, TransitionTrigger t, size_t count, Node last) { + auto helper = [&](size_t c, auto&& h) -> Node { + if (c == 0) return last; + return makeNode(s, t, h(--c, h)); + }; + return helper(count, helper); + } Node makeNodes(const std::vector& v, StreamDescriptor::State f) { return makeNodes(v, makeFinalNode(f)); } @@ -4399,17 +4406,22 @@ std::shared_ptr makeBurstCommands(bool isSync) { using State = StreamDescriptor::State; auto d = std::make_unique(); StateDag::Node last = d->makeFinalNode(State::ACTIVE); - // Use a couple of bursts to ensure that the driver starts reporting the position. - StateDag::Node active2 = d->makeNode(State::ACTIVE, kBurstCommand, last); - StateDag::Node active = d->makeNode(State::ACTIVE, kBurstCommand, active2); - StateDag::Node idle = d->makeNode(State::IDLE, kBurstCommand, active); - if (!isSync) { + if (isSync) { + StateDag::Node idle = d->makeNode( + State::IDLE, kBurstCommand, + // Use several bursts to ensure that the driver starts reporting the position. + d->makeNodes(State::ACTIVE, kBurstCommand, 10, last)); + d->makeNode(State::STANDBY, kStartCommand, idle); + } else { + StateDag::Node active2 = d->makeNode(State::ACTIVE, kBurstCommand, last); + StateDag::Node active = d->makeNode(State::ACTIVE, kBurstCommand, active2); + StateDag::Node idle = d->makeNode(State::IDLE, kBurstCommand, active); // Allow optional routing via the TRANSFERRING state on bursts. active2.children().push_back(d->makeNode(State::TRANSFERRING, kTransferReadyEvent, last)); active.children().push_back(d->makeNode(State::TRANSFERRING, kTransferReadyEvent, active2)); idle.children().push_back(d->makeNode(State::TRANSFERRING, kTransferReadyEvent, active)); + d->makeNode(State::STANDBY, kStartCommand, idle); } - d->makeNode(State::STANDBY, kStartCommand, idle); return std::make_shared(std::move(d)); } static const NamedCommandSequence kReadSeq = -- GitLab From 656b47d3c3516de107dbe5799e3abb746d9c481f Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Thu, 7 Mar 2024 20:15:51 +0000 Subject: [PATCH 412/418] Effect AIDL: remove placeholder effect from default implementation Bug: 328330990 Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f84adb0fade1dbbf5b56a3cd06e0bb27a9fc6945) Merged-In: Icf15e349a2ad36eeefa1e3eb46428c04ae164ad1 Change-Id: Icf15e349a2ad36eeefa1e3eb46428c04ae164ad1 --- audio/aidl/default/audio_effects_config.xml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/audio/aidl/default/audio_effects_config.xml b/audio/aidl/default/audio_effects_config.xml index 827ff80a8a..e859a0e083 100644 --- a/audio/aidl/default/audio_effects_config.xml +++ b/audio/aidl/default/audio_effects_config.xml @@ -72,10 +72,7 @@ - - - - + @@ -86,16 +83,10 @@ - - - - + - - - - + -- GitLab From aa8d40e5a17db5a3b66172c7b96eb74004d45571 Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Thu, 14 Mar 2024 01:54:58 +0000 Subject: [PATCH 413/418] Effect AIDL VTS: skip data path testing for offloading effects Bug: 328330990 Test: atest VtsHalBassBoostTargetTest Test: atest VtsHalDownmixTargetTest Test: atest VtsHalLoudnessEnhancerTargetTest Test: atest VtsHalVolumeTargetTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f0cb5ec61f757edefe0a63dade94a774712077bd) Merged-In: Ic720e74cf25f5282dfa52dca354a5eccf9071f61 Change-Id: Ic720e74cf25f5282dfa52dca354a5eccf9071f61 --- audio/aidl/vts/TestUtils.h | 12 +++++++----- audio/aidl/vts/VtsHalBassBoostTargetTest.cpp | 6 +++++- audio/aidl/vts/VtsHalDownmixTargetTest.cpp | 6 +++++- audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp | 6 +++++- audio/aidl/vts/VtsHalVolumeTargetTest.cpp | 10 ++++++++-- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/audio/aidl/vts/TestUtils.h b/audio/aidl/vts/TestUtils.h index 515b8a2a2f..0a5addc84c 100644 --- a/audio/aidl/vts/TestUtils.h +++ b/audio/aidl/vts/TestUtils.h @@ -104,11 +104,13 @@ inline ::testing::AssertionResult assertResultOrUnknownTransaction( EXPECT_PRED_FORMAT2(::android::hardware::audio::common::testing::detail::assertResult, \ expected, ret) -#define SKIP_TEST_IF_DATA_UNSUPPORTED(flags) \ - ({ \ - if ((flags).hwAcceleratorMode == Flags::HardwareAccelerator::TUNNEL || (flags).bypass) { \ - GTEST_SKIP() << "Skip data path for offload"; \ - } \ +#define SKIP_TEST_IF_DATA_UNSUPPORTED(flags) \ + ({ \ + if ((flags).hwAcceleratorMode == \ + aidl::android::hardware::audio::effect::Flags::HardwareAccelerator::TUNNEL || \ + (flags).bypass) { \ + GTEST_SKIP() << "Skip data path for offload"; \ + } \ }) // Test that the transaction status 'isOk' if it is a known transaction diff --git a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp index b54b44233f..4cb1f496d4 100644 --- a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp +++ b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp @@ -166,6 +166,7 @@ class BassBoostDataTest : public ::testing::TestWithParamgetInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) { @@ -173,7 +174,10 @@ class BassBoostDataTest : public ::testing::TestWithParam& testFrequencies, diff --git a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp index 360bf2671f..ef77f4d51e 100644 --- a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp +++ b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp @@ -230,6 +230,7 @@ class DownmixFoldDataTest : public ::testing::TestWithParamgetInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) { @@ -241,7 +242,10 @@ class DownmixFoldDataTest : public ::testing::TestWithParam(mOpenEffectReturn.outputDataMQ); } - void TearDown() override { TearDownLoudnessEnhancer(); } + void TearDown() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + TearDownLoudnessEnhancer(); + } // Fill inputBuffer with random values between -kMaxAudioSample to kMaxAudioSample void generateInputBuffer() { diff --git a/audio/aidl/vts/VtsHalVolumeTargetTest.cpp b/audio/aidl/vts/VtsHalVolumeTargetTest.cpp index 059d6ab984..1c1489deb5 100644 --- a/audio/aidl/vts/VtsHalVolumeTargetTest.cpp +++ b/audio/aidl/vts/VtsHalVolumeTargetTest.cpp @@ -163,8 +163,14 @@ class VolumeDataTest : public ::testing::TestWithParam, // Convert Decibel value to Percentage int percentageDb(float level) { return std::round((1 - (pow(10, level / 20))) * 100); } - void SetUp() override { ASSERT_NO_FATAL_FAILURE(SetUpVolumeControl()); } - void TearDown() override { TearDownVolumeControl(); } + void SetUp() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + ASSERT_NO_FATAL_FAILURE(SetUpVolumeControl()); + } + void TearDown() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + TearDownVolumeControl(); + } static constexpr int kMaxAudioSample = 1; static constexpr int kTransitionDuration = 300; -- GitLab From 6461a099b73e30de8e66696dc822b77cea5ed83b Mon Sep 17 00:00:00 2001 From: Shunkai Yao Date: Fri, 29 Mar 2024 23:09:04 +0000 Subject: [PATCH 414/418] Effect AIDL VTS: relax dynamics processing effect parameter validations relaxing several parameter checking to align with HIDL - no need to have stage in use to set bands/channels - band settings no need to be sorted by frequency Bug: 328012516 Test: atest VtsHalDynamicsProcessingTargetTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:53238b1afd9bd940ab0f567ce28f67cde20bad34) Merged-In: If12d978ee69ee7f087a7e8758513a9c6bacf817f Change-Id: If12d978ee69ee7f087a7e8758513a9c6bacf817f --- audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp index 3f7a76dae6..e95bd4d1d1 100644 --- a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp +++ b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp @@ -195,48 +195,42 @@ const std::set> template bool DynamicsProcessingTestHelper::isBandConfigValid(const std::vector& cfgs, int bandCount) { - std::vector freqs(cfgs.size(), -1); + std::unordered_set freqs; for (auto cfg : cfgs) { if (cfg.channel < 0 || cfg.channel >= mChannelCount) return false; if (cfg.band < 0 || cfg.band >= bandCount) return false; - freqs[cfg.band] = cfg.cutoffFrequencyHz; + // duplicated band index + if (freqs.find(cfg.band) != freqs.end()) return false; + freqs.insert(cfg.band); } - if (std::count(freqs.begin(), freqs.end(), -1)) return false; - return std::is_sorted(freqs.begin(), freqs.end()); + return true; } bool DynamicsProcessingTestHelper::isParamValid(const DynamicsProcessing::Tag& tag, const DynamicsProcessing& dp) { switch (tag) { case DynamicsProcessing::preEq: { - if (!mEngineConfigApplied.preEqStage.inUse) return false; return isChannelConfigValid(dp.get()); } case DynamicsProcessing::postEq: { - if (!mEngineConfigApplied.postEqStage.inUse) return false; return isChannelConfigValid(dp.get()); } case DynamicsProcessing::mbc: { - if (!mEngineConfigApplied.mbcStage.inUse) return false; return isChannelConfigValid(dp.get()); } case DynamicsProcessing::preEqBand: { - if (!mEngineConfigApplied.preEqStage.inUse) return false; return isBandConfigValid(dp.get(), mEngineConfigApplied.preEqStage.bandCount); } case DynamicsProcessing::postEqBand: { - if (!mEngineConfigApplied.postEqStage.inUse) return false; return isBandConfigValid(dp.get(), mEngineConfigApplied.postEqStage.bandCount); } case DynamicsProcessing::mbcBand: { - if (!mEngineConfigApplied.mbcStage.inUse) return false; return isBandConfigValid(dp.get(), mEngineConfigApplied.mbcStage.bandCount); } case DynamicsProcessing::limiter: { - if (!mEngineConfigApplied.limiterInUse) return false; return isChannelConfigValid(dp.get()); } case DynamicsProcessing::inputGain: { -- GitLab From e28ad975dfae1fe8396eef64b8d0d86f1c5cd3a6 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Wed, 12 Jun 2024 17:45:17 +0300 Subject: [PATCH 415/418] Revert "Reapply "Set min_sdk_version:34"" Reason for revert: Not present in QPR3 This reverts commit 04a70e8c3f055e7ba663d41f53628fd4ee9925c6. Change-Id: I00d18bb281de976efce708c07aad734cf652db3e --- wifi/aidl/Android.bp | 3 --- wifi/aidl/default/Android.bp | 1 - wifi/common/aidl/Android.bp | 3 --- 3 files changed, 7 deletions(-) diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp index 1a7c6d8335..ac95f85c2b 100644 --- a/wifi/aidl/Android.bp +++ b/wifi/aidl/Android.bp @@ -48,9 +48,6 @@ aidl_interface { cpp: { enabled: false, }, - ndk: { - min_sdk_version: "34", - }, }, versions_with_info: [ { diff --git a/wifi/aidl/default/Android.bp b/wifi/aidl/default/Android.bp index 2e3af1924a..31a3531046 100644 --- a/wifi/aidl/default/Android.bp +++ b/wifi/aidl/default/Android.bp @@ -67,7 +67,6 @@ cc_library_static { name: "android.hardware.wifi-service-lib", defaults: ["android.hardware.wifi-service-cppflags-defaults"], proprietary: true, - min_sdk_version: "34", compile_multilib: "first", cppflags: [ "-Wall", diff --git a/wifi/common/aidl/Android.bp b/wifi/common/aidl/Android.bp index 6ee2f42903..1913451fd7 100644 --- a/wifi/common/aidl/Android.bp +++ b/wifi/common/aidl/Android.bp @@ -43,8 +43,5 @@ aidl_interface { cpp: { enabled: false, }, - ndk: { - min_sdk_version: "34", - }, }, } -- GitLab From a52042ed1eb022ce5c2c32917a96997c4b5a0872 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Wed, 12 Jun 2024 17:45:23 +0300 Subject: [PATCH 416/418] Revert "Set min_sdk_version for supplicant/hostapd aidl_interface" Reason for revert: Not present in QPR3 This reverts commit 430b1bd7e6d9b477b14802d1a3f7400a705ac1b3. Change-Id: I769b5a251eba06d4701891cf833af09bbb4d3e23 --- wifi/hostapd/aidl/Android.bp | 1 - wifi/supplicant/aidl/Android.bp | 1 - 2 files changed, 2 deletions(-) diff --git a/wifi/hostapd/aidl/Android.bp b/wifi/hostapd/aidl/Android.bp index ef7e36e1ea..cdc94bb036 100644 --- a/wifi/hostapd/aidl/Android.bp +++ b/wifi/hostapd/aidl/Android.bp @@ -42,7 +42,6 @@ aidl_interface { }, ndk: { gen_trace: true, - min_sdk_version: "34", }, cpp: { enabled: false, diff --git a/wifi/supplicant/aidl/Android.bp b/wifi/supplicant/aidl/Android.bp index 317d528490..632927d714 100644 --- a/wifi/supplicant/aidl/Android.bp +++ b/wifi/supplicant/aidl/Android.bp @@ -47,7 +47,6 @@ aidl_interface { }, ndk: { gen_trace: true, - min_sdk_version: "34", }, cpp: { enabled: false, -- GitLab From c225acbee098509b0f0ce319ecee561e8c1e40fa Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Fri, 14 Jun 2024 03:51:47 +0300 Subject: [PATCH 417/418] Restore q/android-4.9 again This time in target-level 5 since 4 is gone. Change-Id: Ib2523b6e85d483a59d05faf4e228202515cad4a0 --- compatibility_matrices/Android.bp | 1 + 1 file changed, 1 insertion(+) diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp index 2b694427fb..b227d15edd 100644 --- a/compatibility_matrices/Android.bp +++ b/compatibility_matrices/Android.bp @@ -28,6 +28,7 @@ vintf_compatibility_matrix { "compatibility_matrix.5.xml", ], kernel_configs: [ + "kernel_config_q_4.9", "kernel_config_r_4.14", "kernel_config_r_4.19", "kernel_config_r_5.4", -- GitLab From 9679b6bdcc4603fea050a8705f6d02c44d77f0ed Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Sat, 15 Jun 2024 23:34:12 +0300 Subject: [PATCH 418/418] compatibility_matrices: Add p/android-4.4 into FCM 5 FCM 4 is gone, so just add it there. Change-Id: I1781cf5a26f0e7dfe42d30857937e1934bb36911 --- compatibility_matrices/Android.bp | 1 + 1 file changed, 1 insertion(+) diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp index b227d15edd..8ecefd7ecb 100644 --- a/compatibility_matrices/Android.bp +++ b/compatibility_matrices/Android.bp @@ -28,6 +28,7 @@ vintf_compatibility_matrix { "compatibility_matrix.5.xml", ], kernel_configs: [ + "kernel_config_p_4.4", "kernel_config_q_4.9", "kernel_config_r_4.14", "kernel_config_r_4.19", -- GitLab